سلام!!
یه مداره دستگاه نوره که یه استپ موتور داره که 5 تا سیم داره!!!
4 تا سیم ها خورده به ULN2803A و یکی دیگش رو نمیدونم کجا خورده!!!!
فکر کنم باید بخوره به منفی!!!!
من تا حالا استپ موتور کار نکردم!!!
دوستان طریقه برنامه نویسیش رو به صورت روان اگه ممکنه کم کم توضیح بدن تا من و بقیه دوستانی که بلد نیسیتم یاد بگیریم!!!
طریقه اتصالش ؟؟؟
تو کتاب کاهه چهار تا خروجی ULN رو با 4 مقاومت 4.7 کیلو به مثبت داده بود چرا؟؟
یه کم توضیح برای برنامه نویسیش با بسکام!!!
اون سیم پنجم به برق مثبت باید وصل شده باشه !!!
موتورهای پله ای:
نوع دیگری از موتورهای الکتریکی موتور پله ای است، که در آن یک روتور درونی، شامل آهنرباهای دائمی توسط یک دسته از آهنرباهای خارجی که به صورت الکترونیکی روشن و خاموش می شوند ، کنترل می شود. یک موتور پله ای ترکیبی از یک موتور الکتریکی DC و یک سلونویید است.
موتورهای پله ای ساده توسط بخشی از یک سیستم دنده ای در حالت های موقعیتی معینی قرار می گیرند، اما موتورهای پله ای نسبتا کنترل شده، می توانند بسیار آرام بچرخند. در زیر ساختمان یک موتور پله ای ساده را مشاهده میکنید:
نحوه عمل کرد یک موتور پله ای با موتور DC تفاوت چندانی ندارد ، برای راه اندازی این نوع موتور کافی است به ترتیب به سیم پیچ ها ولتاژ دهید ، در اکثر موتور ها سیم های گراند از داخل به هم متصل میباشند ،جدول زیر شما را در مورد طریقه دادن پالس راه نمایی میکند:
در زیر برنامه ای برای راه اندازی یک موتور پله ای 5 سیمه اورده شده است:
کد php:
$regfile = "M8DEF.DAT" : $crystal = 8000000
Config Portb = Output
Do
Portb = &B00000001 : WAITMS 900
Portb = &B00000010 : WAITMS 900
Portb = &B00000100 : WAITMS 900
Portb = &B00001000 : WAITMS 900
Loop
End
برای کنترل دقیق تر زاویه حرکت موتور ، ان را به صورت نیم پله راه اندازی میکنند ، در جدول زیر طریقه پالس دهی را مشاهده میکنید:
در زیر برنامه برای راه اندازی موتور به صورت نیم پله را مشاهده میکنید:
کد php:
$regfile = "M8DEF.DAT" : $crystal = 8000000
Config Portb = Output
Do
Portb = &B00000001 : Waitms 50
Portb = &B00000011 : Waitms 50
Portb = &B00000010 : Waitms 50
Portb = &B00000110 : Waitms 50
Portb = &B00000100 : Waitms 50
Portb = &B00001100 : Waitms 50
Portb = &B00001000 : Waitms 50
Portb = &B00001001 : Waitms 50
Loop
End
تاخیر زمانی سرعت موتور را معین میکند ( چقدر طول میکشد تا موتور یک پله حرکت کند) .
برای راه اندازی موتور های قوی به یک راه انداز نیاز است ( حداکثر جریان دهی میکرو 200 میلی امپر است) شما میتوانید از درایو های ULNXXXX یا ترانزیستورهای bjt یا fet استفاده کنید:
اون سیمه اتصال کوتاه با پایه 10 uln هست×××!!! منفیه فک کنم!!!
علی این استپ موتور باید 13 تا منشور رو بیاره جلوی نور و رد کنه!!!
مقدار چرخشش رو از کجا بفهمم!!!
اخه باید دقیق بیاد جلو نور!!!!
البته فکر کنم برا دستور مداوم بشه از shiftکردنم استفاده کرد درسته؟
نه !
دستور rotate استفاده میشه !
اون لینک پروژه ای رو که گذاشتم رو یه نگاه بنداز !!!
(۲۲-مهر-۱۳۸۹, ۲۱:۲۷:۲۹)ebka نوشته است: [ -> ]اون سیمه اتصال کوتاه با پایه 10 uln هست×××!!! منفیه فک کنم!!!
علی این استپ موتور باید 13 تا منشور رو بیاره جلوی نور و رد کنه!!!
مقدار چرخشش رو از کجا بفهمم!!!
اخه باید دقیق بیاد جلو نور!!!!
میبینم که زدین کار دنس و نایت کلوب :)
به ازاء هر پالس ببین موتورت چقدر گردش داره... مثلا اگه یه موتور معمولی 1.8 درجه باشه با 200 پالس یک دور کامل 360درجه ای میزنه
تقسیم کن ....
برای شروع نیاز به نقطه 0 و رفرنس گیری داری
ابراهیم جان روی موتورت چی نوشته؟
توی مشخصاتش زاویه گردشش هست
ما 33 یا 66هگز رو rotate میکردیم
زمانهای بین مقدار دهیت هم باید یه کم کم باشه که گردش نورو منشور پیوسته و خطی باشه و پله و ریپل زنشو با چشم نشه دید
اگ این کارو بخوای بکنی میشه نیم پله
همون طوری که علی جون گفت
توی هر بار مقدار داردن به موتوردو تا سیم پیچاش 1 و دوتاش صفره
اگر میخوای موتورت پله های کوتاه تر بشه باید مثلا 8 هگز رو rotate کنی تا هربار فقط یکی از سیم پیچهای موتور تحریک بشه
اینم میشه نیم پله
همون طور که جوکر جون گفت باید از یه جا شروع کنی مثلا یکی از منشورا رو در نظر بگیر یا با ماژیک شافت موتور علامت بزنی
مقدار بدی به موتور تا یه دور کامل بزنه
بعد باد ببینی چند تا پله خورده تا یه دور چرخیده و نیم پله بوده یا تمام پله
زاویه پلش به دست میاد
بسته به دقتی که نیاز داری باید مد تحریکو انتخاب کنی
نکته ای که هست تاخیر های بین مقدار دهی ومتوره
اگر از یه حدی کمتر بشه(فرض کن 20میلی ثانیه) موتور درجا میزنه.سیم پیچاش اشباع میشه
اگر دیدی با این درایور مشکل داری به نظر من با توجه به توان این درایور بهترین گزینه L298خودمونه
تنها وقتی از این آی سی استفاده میکنی اون سیم پنجم نباید به هیچ جایی اتصال داشته اشه
نه 0 و نه 1
کد:
$regfile = "M8DEF.dat" : $crystal = 1000000
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 : Lcd "WWW.IRANLED.COM" : Wait 3
Config Portc = Output , Portd = Input
پورت c رو خروجی و d رو ورودی
Dim B As Byte , A As Byte , Speed As Byte , Rotat As Byte , C As Byte
B = 17 : Portd = 255 : Rotat = 10 : Speed = 5
مقادیر گذاشتی
Star:
Cls : Lcd "ROTATE = " ; Rotat ; " " : Portc = 63
Home L : Lcd "MOTOR STOP"
نمایش متغییر ها
Do
Debounce Pind.6 , 0 , Set_speed
Debounce Pind.5 , 0 , Decr_rotate , Gosub
Debounce Pind.4 , 0 , Incr_rotate , Gosub
کم و زیاد کردنشون
Loop
Incr_rotate:
Incr Rotat
Home : Lcd "ROTATE = " ; Rotat ; " "
Return
Decr_rotate:
Decr Rotat
Home : Lcd "ROTATE = " ; Rotat ; " "
Return
'=============================================================================== WWW.IRANLED.COM
تا اینجا که برای نمایش بود ومتغییر ها و کم وزیاد کردنشون!!
Set_speed:
Cls : Lcd "SPEED = " ; Speed ; " "
Home L : Lcd "MOTOR STOP"
Do
Debounce Pind.7 , 0 , Star
Debounce Pind.6 , 0 , Move
Debounce Pind.5 , 0 , Decr_speed , Gosub
Debounce Pind.4 , 0 , Incr_speed , Gosub
Loop
Incr_speed:
Incr Speed
Home : Lcd "SPEED = " ; Speed ; " "
Return
Decr_speed:
Decr Speed
Home : Lcd "SPEED = " ; Speed ; " "
Return
'=============================================================================== WWW.IRANLED.COM
اینجا رو میفهمم ولی دلیلش رو نمیدونم!!! که چه جوری استپ موتور میچرخه!!
این قسمت رو توضیح میدی!!!
Move:
If Rotat = 0 Then Goto Star
Cls : Home L : Lcd "SPEED=" ; Speed ; " "
For C = 1 To Rotat
Home : Lcd "ROTATE=" ; C ; "/" ; Rotat
For A = 1 To 200
Portc = B
If Pind.3 = 1 Then : Rotate B , Left
Else : Rotate B , Right
End If
Waitms Speed
Debounce Pind.7 , 0 , Star
Next A
Next C
Goto Star
ممنون میشم یه کم در مورد زیر برنامه MOVE توضسح بدی