ايران ويج

نسخه‌ی کامل: Servo???
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
صفحه‌ها: 1 2 3 4
[تصویر:  0c39ssy9a0ut13yoqa4s_thumb.jpg]


ممکنه خواهش کنم شما با بیسکام خودتون همین برنامه WAITUS رو تست کنید؟؟؟

این هم شماتیک (ال سی دی رو بیخیال شین و با اسکوپ طول موج رو ببینید):

http://www.dehcadeh.com/upload/images/88...hvg6lf.jpg
صد سال بعد و ما همچنان منتظر یاری سبزتان هستیم!
خوب موضوع WAITUS با کمک دوستان دیگری روشن شد ، اینجا مینویسم تا بقیه هم بدونند:

این دستور متغیر نمیگیرد و فقط عدد ثابت قبول میکند به HELP بیسکام توجه کنید:

[تصویر:  koz9wwk2wsdmaxlu9kct.jpg]

خیلی ساده

ولی در جلوی دستور WAITMS چنین مطلبی رو ننوشته پس یعنی امکان متغر دادن وجود دارد

با این تفاصیر من باید برم سراغ PWM و تایمرها! حالا کسی هست در این باره توضیح بده؟
خوب فرکانس کریستال رو هزار برابر تو بسکام بنویس و از میلی ثانیه استفاده کن .
اینطوری دستور میلی ثانیه در حد میکرو ثانیه طول می کشه !!!
یعنی کلک رشتی بزنم؟

ببینم چی میشه!

تو پروگرام کردن چکار کنم ؟ کدوم کریستالو بزارم؟ حتما همونیکه تو پروتئوس براش درنظر گرفتمو!
ممنون تست کردم جواب داد ولی فرکانس رو هزار برابر نکردم بلکه یکصدم کردم: و اعداد عجیب و قریب هم دادم:
ممکنه شما تغییراتتونو بفرمایید؟؟

$regfile = "m8def.dat"
$crystal = 80000

Config Lcdpin = Pin , Db4 = Pinb.3 , Db5 = Pinb.2 , Db6 = Pinb.1 , Db7 = Pinb.0 , E = Pinb.4 , Rs = Pinb.5
Config Lcd = 16 * 2 : Cursor Off : Cls

Config Portd = Output
Dim A As Word
Dim B As Single
Config Adc = Single , Prescaler = Auto , Reference = Avcc

Start Adc
Do
A = Getadc(1)

A = A / 9
A = A + 85

Waitms 1550
Set Portd.0
Waitms A
Reset Portd.0
A = A - 9
B = A / 10
B = B + 1
Locate 1 , 1 : Lcd "WaitMs " ; B ; " "
Loop
End
آره دیگه
تو برنامه بنویس cristal = 1000000000 $ ولی تو واقعیت رو یه مگ بذار . ( البته من خودم هنوز وقت نکردم تست کنم )

فقط شاید LCD کار نکنه .
علی جان تست کردم ولی برعکس قضیه ایکه میفرمایی یعنی تو برنامه باید فرکانس تقسیم بر 1000 بشه و عددت در دستور WAITMS ضرب در 1000 یعنی هرچی کریستالو تقسیم کردی حالا در عدد WAITMS ضرب کنی

که اینطوری سه رقم از اعشارت میپره تو اعداد صحیح و سر WAITMS گول مالیده میشه که برا من تقسیم بر 100 کافی بود که دو رقم بپره تو اعداد صحیح ...

در ضمن هرچی کمتر با واقعی اختلاف داشته باشه کریستال برنامه ، برنامه بهتر کار میکنه مثلا من تقسیم بر 1000 کردم کار نکرد و یا LCD کار نکرد ولی تقسیم بر 100 کردم مشکلی نداشت!!!

راستی این کارا تو کار میکرو در واقعیت موردی پیش نمیاره؟؟؟!!!
خوب من ی 4 نوع برنامه برای کنترل سروو با کمک دوستان نوشتم اگر کسی لازم داشت بگه بزارم اینجا که دیگران راه رفته من رو دوباره نرن بلکه ادامه بدن
خوب همه رو بذار .

نیکی و پرسش ؟؟
خوب همونطور که قبلا گفته شد برای کنترل سروو باید سیگنال زیر ساخته و کنترل شود:

[تصویر:  157jfyix3pzih449uroi.jpg]

4 نوع برنامه مختلف که با استفاده از یک پتانسیومتر از طریق ADC سروو کنترل میشود نوشته شده که اولیش زیاد جالب نیست:
(فایلهای پروتئوس ورژن 7.4 میباشد)

که ما هنوزم منتظریم تا یک نفر پیدا شه این برنامه رو با تایمر یا PWM میکرو بنویسه!
صفحه‌ها: 1 2 3 4