۱۷-شهریور-۱۳۸۸, ۱۱:۵۵:۲۲
۱۸-شهریور-۱۳۸۸, ۱۳:۳۸:۵۲
۱۸-شهریور-۱۳۸۸, ۱۳:۴۰:۴۹
از کتاب آقای یه نفر :
سروو ها نوعی موتور بسیار پرقدرت است که میتواند حول یک زاویه خاص با دقت بالا بچرخند ، از سروو ها برای بازوی ربات و باز و بسته کردن درب و دریچه و ... استفاده میشود .
سروو ها دارای سه سیم میباشند که دوتای انها تغذیه و دیگری برای کنترل درجه چرخش مورد استفاده قرار میگیرد ( در صورتی که سررو شما دارای 5 سیم است ، دو تا از انها برای تغذیه مدار داخلی سروو و دوتای دیگر برای تغذیه خود سروو و سیم اخر برای کنترل میباشد .( بهتر است دیتا شیت سروو را از فروشنده دریافت کنید )
راه اندازی سروو در بسکام با دستور زیر انجام میشود:
Config Servos = X : نشان دهنده تعداد سروو های استفاده شده میباشد که بیشترین تعداد میتواند 14 باشد.(به جای x تعداد گذاشته میشود مانند : Config Servos = 3 )
Servo1 = Portx.y :.پایه کنترل سروو به یکی از پین های میکرو که با Portx.y مشخص شده متصل میشود.
Reload : نشان دهنده زمانی است که میکرو دوباره اطلاعات مربوط به سرو ها را روی پین مورد نظر میفرستد(این زمان برحسب میکروثانیه است
نکته:
این دستور از تایمر صفر برای راه اندازی (تولید زمان روشن بودن سروو) استفاده میکن و هنگامی که سروو را پیکربندی کردید دیگر نمیتوانید از تایمر صفر استفاده کنید.
بعد از پیکر بندی سروو نوبت به راه اندازی ان است برای این کار از دستور زیر استفاده میشود:
X شماره سروو است که میتواند از 1 تا14 باشد و y ضرب در 10 زمان روشن بودن سروو را نشان میدهد، که میتواند یک متغییر یا عدد صحیح باشد.مانند
در مثال بالا تعداد 14 عدد سروو به میکرو مگا 16 متصل شده است ، مدت زمان روشن بودن سروو ها به ترتیب از سروو 1 به این شرح است:
10 و 50 و100 و150 و 200 و250 و 300 و 350 و 400 و450 و500 و550 و600 و650 میکرو ثانیه است.) یک سروو فقط در یک زاویه خاص میچرخد ، مثلا از 0 تا 270 درجه یا از 0 تا 360 درجه، زمان که در بالا گفته شد ، بیان میکند که چقدر طول میکشد تا سررو به یک زاویه خاص برسد ، برای فهمیدن این زمان باید به دیتاشیت سروو مراجعه کنید ،
مثلا نوعی سررو در هر 10 میکرو ثانیه .1 درجه حرکت میکند و زاویه چرخش ان از 0 تا 10 است، بنابراین برای رسیدن به زاویه 120 درجه باید به جای y عدد 120 را قرار دهیم، در صورتی که به جای y عدد بیشتر از 180قرار دهیم سروو روی 180 قفل میشود.بیشتر مقداری که به جای y میتوانید قرار دهید 255 است.
مدار مثال بالا:
http://forum.iranled.com/attachment.php?aid=2189
سروو موتور:
سروو ها نوعی موتور بسیار پرقدرت است که میتواند حول یک زاویه خاص با دقت بالا بچرخند ، از سروو ها برای بازوی ربات و باز و بسته کردن درب و دریچه و ... استفاده میشود .
سروو ها دارای سه سیم میباشند که دوتای انها تغذیه و دیگری برای کنترل درجه چرخش مورد استفاده قرار میگیرد ( در صورتی که سررو شما دارای 5 سیم است ، دو تا از انها برای تغذیه مدار داخلی سروو و دوتای دیگر برای تغذیه خود سروو و سیم اخر برای کنترل میباشد .( بهتر است دیتا شیت سروو را از فروشنده دریافت کنید )
راه اندازی سروو در بسکام با دستور زیر انجام میشود:
کد php:
Config Servos = X , Servo1 = Portx.y , Servo2 = Portx.y , Servon = Portx.y , Reload = Rl
Config Servos = X : نشان دهنده تعداد سروو های استفاده شده میباشد که بیشترین تعداد میتواند 14 باشد.(به جای x تعداد گذاشته میشود مانند : Config Servos = 3 )
Servo1 = Portx.y :.پایه کنترل سروو به یکی از پین های میکرو که با Portx.y مشخص شده متصل میشود.
Reload : نشان دهنده زمانی است که میکرو دوباره اطلاعات مربوط به سرو ها را روی پین مورد نظر میفرستد(این زمان برحسب میکروثانیه است
نکته:
این دستور از تایمر صفر برای راه اندازی (تولید زمان روشن بودن سروو) استفاده میکن و هنگامی که سروو را پیکربندی کردید دیگر نمیتوانید از تایمر صفر استفاده کنید.
بعد از پیکر بندی سروو نوبت به راه اندازی ان است برای این کار از دستور زیر استفاده میشود:
کد php:
Servo(x) = y
X شماره سروو است که میتواند از 1 تا14 باشد و y ضرب در 10 زمان روشن بودن سروو را نشان میدهد، که میتواند یک متغییر یا عدد صحیح باشد.مانند
کد php:
$regfile = "m16def.dat"
$crystal = 12000000
Config Servos = 14 , Servo1 = Portd.0 , Servo2 = Portd.1 , Servo3 = Portd.2_
, Servo4 = Portd.3 , Servo5 = Portd.4 , Servo6 = Portd.5 , Servo7 = Portd.6_
, Servo8 = Portd.7 , Servo9 = Portc.7 , Servo10 = Portc.6 , Servo11 = Portc.5_
, Servo12 = Portc.4 , Servo13 = Portc.3 , Servo14 = Portc.2 , Reload = 100
Config Portd = Output , Portc = Output
Enable Interrupts
Dim A As Word
A=10
Do
Servo(1) = 1 : Wait 1
Servo(2) = 5 : Wait 1
Servo(3) = a : Wait 1
Servo(4) = 15 : Wait 1
Servo(5) = 20 : Wait 1
Servo(6) = 25 : Wait 1
Servo(7) = 30 : Wait 1
Servo(8) = 35 : Wait 1
Servo(9) = 40 : Wait 1
Servo(10) = 45 : Wait 1
Servo(11) = 50 : Wait 1
Servo(12) = 55 : Wait 1
Servo(13) = 60 : Wait 1
Servo(14) = 65 : Wait 1
Loop
End
در مثال بالا تعداد 14 عدد سروو به میکرو مگا 16 متصل شده است ، مدت زمان روشن بودن سروو ها به ترتیب از سروو 1 به این شرح است:
10 و 50 و100 و150 و 200 و250 و 300 و 350 و 400 و450 و500 و550 و600 و650 میکرو ثانیه است.) یک سروو فقط در یک زاویه خاص میچرخد ، مثلا از 0 تا 270 درجه یا از 0 تا 360 درجه، زمان که در بالا گفته شد ، بیان میکند که چقدر طول میکشد تا سررو به یک زاویه خاص برسد ، برای فهمیدن این زمان باید به دیتاشیت سروو مراجعه کنید ،
مثلا نوعی سررو در هر 10 میکرو ثانیه .1 درجه حرکت میکند و زاویه چرخش ان از 0 تا 10 است، بنابراین برای رسیدن به زاویه 120 درجه باید به جای y عدد 120 را قرار دهیم، در صورتی که به جای y عدد بیشتر از 180قرار دهیم سروو روی 180 قفل میشود.بیشتر مقداری که به جای y میتوانید قرار دهید 255 است.
مدار مثال بالا:
http://forum.iranled.com/attachment.php?aid=2189
۲۱-شهریور-۱۳۸۸, ۱۶:۰۶:۲۷
مرسی
مثال با کد ویژن ندارید
مثال با کد ویژن ندارید
۲۱-شهریور-۱۳۸۸, ۱۶:۱۴:۴۵
بنده كدويژن كار نيستم و دليل براي استفاده از كدويژن نديدم ولي ديدم دوستان با كدويژن و تايمرها و PWM تونستن سرو رو راه اندازي كنن !
۰۲-مهر-۱۳۸۸, ۲۳:۵۶:۵۱
چند تا سروو رو می خواین راه بندازین ؟ اگر یکی هست، از دستورات وقفه استفاده کنین، اگر بیشتر از یکی هست، باید کمی کار با تایمر ها رو وارد باشین
۱۴-مهر-۱۳۸۸, ۲۲:۴۹:۴۹
من جواب گرفتم اما ی مشکل کچیک دارم
این که وقتی دیتا به راست می دم گام به گام حرکت می کنه اما وقتی به چپ میدم تا 3 بار به راست میره بعدا بر می گرده
کسی میدونه مشکل از کجاست
این که وقتی دیتا به راست می دم گام به گام حرکت می کنه اما وقتی به چپ میدم تا 3 بار به راست میره بعدا بر می گرده
کسی میدونه مشکل از کجاست
۰۸-آبان-۱۳۸۸, ۱۸:۰۱:۰۵
موتور پله ای نیست که حرکت کنه ! شما زاویه رو می دین، سریع می ره اونجا بایسته، احتمالا پالس ها رو اشتباه می دین