امتیاز موضوع:
  • 1 رأی - میانگین امتیازات: 3
  • 1
  • 2
  • 3
  • 4
  • 5
چپ گرد راست گرد موتور در بسکام
نویسنده پیام
aidin112 آفلاین
تازه وارد

ارسال‌ها: 2
موضوع‌ها: 1
تاریخ عضویت: تير ۱۳۹۲

تشکرها : 1
( 1 تشکر در 1 ارسال )
ارسال: #1
چپ گرد راست گرد موتور در بسکام
سلام دوستان
من یک پروژه درایو موتور توی بسکام دارم که باهاش سرعت موتور کم و زیاد می کنم می خواهم چپگرد و راست گرد موتورهم به برنامه اضافه کنم(به وسیله فشردن کلیدی متصل به PB.1 ). باید چه کار کنم؟ من به زبان بیسک مسلط نیستم. کسی می تونه کمک کنه؟
اصل برنامه هم اینه
کد:
$crystal = 8000000
Config Portd = Output
Config Porta = Output
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7 = Portc.7,_  
E = Portc.3 , Rs = Portc.2
Muxled Alias Porta.0
Minled Alias Porta.1
En1 Alias Portd.6
Aled Alias Porta.2
Config Timer1 = Pwm , Pwm = 10 , Prescale = 8 , Compare A Pwm = Clear Down,_  
Compare B Pwm = Clear Down
Config Timer0 = Counter , Edge = Rising
Config Timer2 = Timer , Prescale = 1024
Enable Counter0
Enable Interrupts
Enable Timer0
Enable Timer2
Cls
Home
"Lcd " dc motor speed
Home Lower
"Lcd "   controling  
Wait 2
On Ovf0 Sh
On Ovf2 Edd
Dim A As Word , B As Byte , C As Word , I As Long
'//////////////////////
Enable Timer1
A = 500
Start Timer1
En1 = 1
B = 0
Start Timer2
Main:
Counter0 = 0
Start Timer2
Pwm1a = A
Pwm1b = 0                                                   'Used for 2 PWM channels                                    
Do
:Main1
If Pinb.4 = 0 Then Goto Afzayesh
If Pinb.3 = 0 Then Goto Kahesh
If Pinb.2 = 0 Then Goto Change
Loop



'////////////////////////
:Afzayesh
If A = 50 Then A = 0
A = A + 100
If A >= 1000 Then
A = 1000
Muxled = 1
Home
Cls
"Lcd " muximum range  
Wait 1
End If
If Minled = 1 Then Minled = 0
Aled = 1
Waitms 500
Aled = 0
B = 0
Goto Main
'///////////////////////
:Kahesh
If A > 100 Then
A = A - 100
If Muxled = 1 Then Muxled = 0
Aled = 1
Waitms 500
Aled = 0
B = 0
Goto Main
End If
A = 50
Minled = 1
Cls
Home
"Lcd " minimum range  
Aled = 1
Waitms 500
Aled = 0
Wait 1
Goto Main
'/////////////////////
:Change
Toggle En1
Aled = 1
Waitms 500
Aled = 0
Goto Main
End

:Edd
Incr I
If I > 30 Then
Stop Timer2
Cls : Home
C = 0
If B > 2 Then B = 1
C = B * 256
C = C + Counter0
C = C / 7
C = C * 60
"Lcd "speed is:" ; C ; "rpm
B = 0
I = 0
Counter0 = 0
Start Timer2
End If
Return

:Sh
Incr B
Counter0 = 0
Return
(آخرین ویرایش در این ارسال: ۱۱-تير-۱۳۹۲, ۱۵:۰۷:۱۳، توسط aKaReZa75.)
۱۱-تير-۱۳۹۲, ۱۴:۴۱:۲۷
ارسال‌ها
پاسخ
helma آفلاین
(✿◕‿◕)
*****

ارسال‌ها: 284
موضوع‌ها: 16
تاریخ عضویت: مرداد ۱۳۸۹

تشکرها : 22884
( 14662 تشکر در 5220 ارسال )
ارسال: #2
RE: چپ گرد راست گرد موتور در بسکام
من این برنامرو نوشتم ولی زیاد مطمئن نیستم درست باشه
فقط با فشردن کلیدی متصل به B.1 به راست و B.2 به چپ میره
کد:
Config Portb.0 = Output
  Config Portb.3 = Output
   Config Portd.6 = Output
    Config Portd.7 = Output
     Config Portb.1 = Output
     Config Portb.2 = Output
    Do
    Main:
    If Pinb.1 = 1 Then Goto R2
    If Pinb.2 = 1 Then Goto L2
    If Pinb.1 = 0 And Pinb.2 = 0 Then Goto F
    Loop

  F:
Set Portb.0
Reset Portd.7

Set Portb.3
Reset Portd.6

Pwm1a = 1023
Pwm1b = 1023
Goto Main

L1:

Set Portb.0
Reset Portd.7

Set Portb.3
Reset Portd.6

Pwm1a = 600
Pwm1b = 1023
Goto Main

R1:
Set Portb.0
Reset Portd.7

Set Portb.3
Reset Portd.6

Pwm1a = 1023
Pwm1b = 600
Goto Main

بلندترین ساختمان ها، از یک سنگ شروع میشوند (جان شیفته.رومن رولان)
۱۱-تير-۱۳۹۲, ۱۵:۵۳:۳۸
ارسال‌ها
پاسخ
تشکر شده توسط : رسول, aidin112, Ambassador, babyy, aKaReZa75, omid_phoenix
aidin112 آفلاین
تازه وارد

ارسال‌ها: 2
موضوع‌ها: 1
تاریخ عضویت: تير ۱۳۹۲

تشکرها : 1
( 1 تشکر در 1 ارسال )
ارسال: #3
RE: چپ گرد راست گرد موتور در بسکام
(۱۱-تير-۱۳۹۲, ۱۵:۵۳:۳۸)helma نوشته است: من این برنامرو نوشتم ولی زیاد مطمئن نیستم درست باشه
فقط با فشردن کلیدی متصل به B.1 به راست و B.2 به چپ میره
کد:
Config Portb.0 = Output
  Config Portb.3 = Output
   Config Portd.6 = Output
    Config Portd.7 = Output
     Config Portb.1 = Output
     Config Portb.2 = Output
    Do
    Main:
    If Pinb.1 = 1 Then Goto R2
    If Pinb.2 = 1 Then Goto L2
    If Pinb.1 = 0 And Pinb.2 = 0 Then Goto F
    Loop

  F:
Set Portb.0
Reset Portd.7

Set Portb.3
Reset Portd.6

Pwm1a = 1023
Pwm1b = 1023
Goto Main

L1:

Set Portb.0
Reset Portd.7

Set Portb.3
Reset Portd.6

Pwm1a = 600
Pwm1b = 1023
Goto Main

R1:
Set Portb.0
Reset Portd.7

Set Portb.3
Reset Portd.6

Pwm1a = 1023
Pwm1b = 600
Goto Main
ممنون از پاسختون
راستش به PB1 PB2 PB3 PB4 کلید وصل هست که یکی برای افزایش سرعت، یکی برای کاهش ،یکی برای روشن و خاموش شدن موتور ویکی هم برای چپ گرد راست گرد هست. ضمن اینکه قسمتی از برنامه مربوط به اندازه گیری دور موتور بوسیلهopto counter هست.چون PCB مدارش رو زدم کلید دیگه نمی تونم بهش اضافه کنم.
۱۱-تير-۱۳۹۲, ۱۷:۰۰:۱۸
ارسال‌ها
پاسخ
تشکر شده توسط : Ambassador
mahboob2 آفلاین
تازه وارد

ارسال‌ها: 8
موضوع‌ها: 1
تاریخ عضویت: فروردین ۱۳۹۲

تشکرها : 5
( 2 تشکر در 2 ارسال )
ارسال: #4
RE: چپ گرد راست گرد موتور در بسکام
(۱۱-تير-۱۳۹۲, ۱۵:۵۳:۳۸)helma نوشته است: من این برنامرو نوشتم ولی زیاد مطمئن نیستم درست باشه
فقط با فشردن کلیدی متصل به B.1 به راست و B.2 به چپ میره
کد:
Config Portb.0 = Output
  Config Portb.3 = Output
   Config Portd.6 = Output
    Config Portd.7 = Output
     Config Portb.1 = Output
     Config Portb.2 = Output
    Do
    Main:
    If Pinb.1 = 1 Then Goto R2
    If Pinb.2 = 1 Then Goto L2
    If Pinb.1 = 0 And Pinb.2 = 0 Then Goto F
    Loop

  F:
Set Portb.0
Reset Portd.7

Set Portb.3
Reset Portd.6

Pwm1a = 1023
Pwm1b = 1023
Goto Main

L1:

Set Portb.0
Reset Portd.7

Set Portb.3
Reset Portd.6

Pwm1a = 600
Pwm1b = 1023
Goto Main

R1:
Set Portb.0
Reset Portd.7

Set Portb.3
Reset Portd.6

Pwm1a = 1023
Pwm1b = 600
Goto Main

یک سوال: این که در تموم حلقه ها (r1, l1, f) برنامه یکسانه. نباید برای راستگرد و چپگرد پینها به صورت برعکس set, reset بشن؟
۰۸-شهریور-۱۳۹۲, ۱۰:۲۶:۳۴
ارسال‌ها
پاسخ
hadikh73 آفلاین
مدیــر کـل سایـت
*******

ارسال‌ها: 1,219
موضوع‌ها: 43
تاریخ عضویت: شهریور ۱۳۹۱

تشکرها : 13642
( 14739 تشکر در 4686 ارسال )
ارسال: #5
RE: چپ گرد راست گرد موتور در بسکام
این برنامه با استفاده از سرعت موتور ها کار میکنه یعنی برای چزخش به چپ سرعت موتور چپ کم میشه سرعت مور راست زیاد میشه و برای گردش به راست سرعت موتور راست کم میشه و سرعت موتور چپ کم میشه و روبات میتونه به راحتی به یک سمت بپیچه

۰۸-شهریور-۱۳۹۲, ۱۱:۲۶:۱۷
ارسال‌ها
پاسخ
تشکر شده توسط : mahboob2, omid_phoenix, babyy, helma
mahboob2 آفلاین
تازه وارد

ارسال‌ها: 8
موضوع‌ها: 1
تاریخ عضویت: فروردین ۱۳۹۲

تشکرها : 5
( 2 تشکر در 2 ارسال )
ارسال: #6
RE: چپ گرد راست گرد موتور در بسکام
(۰۸-شهریور-۱۳۹۲, ۱۱:۲۶:۱۷)hadikh73 نوشته است: این برنامه با استفاده از سرعت موتور ها کار میکنه یعنی برای چزخش به چپ سرعت موتور چپ کم میشه سرعت مور راست زیاد میشه و برای گردش به راست سرعت موتور راست کم میشه و سرعت موتور چپ کم میشه و روبات میتونه به راحتی به یک سمت بپیچه

اگر بخوام کاملا به یک سمت بچرخه یعنی در جهت مخالف دیگه نچرخه میتونم جای set , reset رو عوض کنم و اصلا روی سرعت مانور ندم. چون سرعت برام مهم نیست . و اصلا از pwm استفاده نکنم؟
۰۸-شهریور-۱۳۹۲, ۱۱:۵۲:۲۵
ارسال‌ها
پاسخ
hadikh73 آفلاین
مدیــر کـل سایـت
*******

ارسال‌ها: 1,219
موضوع‌ها: 43
تاریخ عضویت: شهریور ۱۳۹۱

تشکرها : 13642
( 14739 تشکر در 4686 ارسال )
ارسال: #7
RE: چپ گرد راست گرد موتور در بسکام
بله شما می تونید کلا بی خیال PWM بشین و
اگر می خواهین به صورت کاملا معمولی بچرخین یکی از موتور ها رو خاموش کنین و با دیگری بچرخین
اگر می خواهین با سرعت زیاد بچرخین می تونید یک از موتور ها رو بر عکس کنین و با سرعت به جهت مخلف بچرخین

۰۸-شهریور-۱۳۹۲, ۱۲:۲۴:۳۰
ارسال‌ها
پاسخ
تشکر شده توسط : babyy, helma, omid_phoenix
mahboob2 آفلاین
تازه وارد

ارسال‌ها: 8
موضوع‌ها: 1
تاریخ عضویت: فروردین ۱۳۹۲

تشکرها : 5
( 2 تشکر در 2 ارسال )
ارسال: #8
RE: چپ گرد راست گرد موتور در بسکام
(۰۸-شهریور-۱۳۹۲, ۱۲:۲۴:۳۰)hadikh73 نوشته است: بله شما می تونید کلا بی خیال PWM بشین و
اگر می خواهین به صورت کاملا معمولی بچرخین یکی از موتور ها رو خاموش کنین و با دیگری بچرخین
اگر می خواهین با سرعت زیاد بچرخین می تونید یک از موتور ها رو بر عکس کنین و با سرعت به جهت مخلف بچرخین
پس با این رروش که گفتم درست کار میکنه دیگه؟ جابجا کردن set , reset?
نیازی به استفاده از تایمر هست؟
۰۸-شهریور-۱۳۹۲, ۱۲:۲۹:۲۶
ارسال‌ها
پاسخ
hadikh73 آفلاین
مدیــر کـل سایـت
*******

ارسال‌ها: 1,219
موضوع‌ها: 43
تاریخ عضویت: شهریور ۱۳۹۱

تشکرها : 13642
( 14739 تشکر در 4686 ارسال )
ارسال: #9
RE: چپ گرد راست گرد موتور در بسکام
بله میشه
بستگی داره چطور بخواهین برنامه بنویسین در حالت عادی نه نیازی به تایمر نداره

۰۸-شهریور-۱۳۹۲, ۱۲:۳۹:۴۷
ارسال‌ها
پاسخ
تشکر شده توسط : mahboob2, babyy, omid_phoenix


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  [سوال] خواندن داده های یک فایل روی هارد در برنامه بسکام Ambassador 1 739 ۲۸-تير-۱۳۹۹, ۱۶:۱۴:۱۴
آخرین ارسال: Ambassador
  مدار دور موتور خودرو HPower 15 8,332 ۲۷-آبان-۱۳۹۷, ۲۱:۵۱:۱۷
آخرین ارسال: 1نفر
Question [سوال] کمک در برنامه نویسی دور موتور خودرو HPower 6 2,592 ۲۵-آبان-۱۳۹۷, ۲۲:۰۳:۵۷
آخرین ارسال: alimogmov
  راهنمایی در مورد کنترل دور موتور کولر sinastar 12 23,448 ۱۰-آبان-۱۳۹۷, ۱۰:۱۸:۵۹
آخرین ارسال: alimogmov
  مشکل با eeprom بسکام کمک sky_man847 2 4,380 ۱۲-مهر-۱۳۹۷, ۰۰:۴۷:۰۸
آخرین ارسال: lrn1380
  [سوال] کانتر در بسکام questnet 7 3,486 ۱۲-مرداد-۱۳۹۷, ۰۱:۵۵:۵۴
آخرین ارسال: questnet
  مشکل در کار با تایمر 1 در بسکام klick 3 4,535 ۳۰-بهمن-۱۳۹۵, ۰۴:۰۴:۴۲
آخرین ارسال: omid_phoenix
  افکت کم نور و پر نور شدن تدریجی با بسکام؟ رسول21 19 18,305 ۲۱-بهمن-۱۳۹۵, ۱۴:۲۹:۴۲
آخرین ارسال: hadikh73
  راهنمایی برای حل مشکل برنامه در بسکام fedagh 2 3,420 ۱۲-دى-۱۳۹۵, ۱۸:۳۰:۵۹
آخرین ارسال: fedagh
Question [فوری] اتصال lcd گرافیکی به پایه های دلخواه میکرو در بسکام behzadsen 4 4,337 ۰۵-دى-۱۳۹۵, ۱۵:۲۵:۳۰
آخرین ارسال: behzadsen

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS