سلام . من میخوام با میکرو atmega8 با زبان کدویژن دو عدد سروو موتور رو کنترل کنم بدین صورت که مقدار زاویه رو از بیرون خودم بهش بدم(با ولوم مثلا). اگه کسی برنامه ای مناسب این پروژه داره به اشتراک بذاره که خیلی از دوستان دنبال همچین پروژه ای هستن و همچنین از توضیحات مختلف برای رفع اشکال کار استقبال میکنم . ایشالا به صورت یه pdf کوچیک با توضیحات کافی درش بیاریم و داخل سایت بذاریم که این مشکل یبار برای همیشه حل بشه.
اطلاعیه
Collapse
No announcement yet.
راه اندازی کامل سروو موتور(servo motor) با میکرو avr به زبان کدویژن
Collapse
X
-
پاسخ : راه اندازی کامل سروو موتور(servo motor) با میکرو avr به زبان کدویژن
این خیلی بده که دوستان تو این سایت عادت کردند لقمه حاضر آماده کسی تحویلشون بده. کسانی که اینجا میان بیکار نیستند هیچ کدوم. من خودم به شخصه اگه ببینم طرف تلاشی کرده و داره میکنه خیلی خوشحال هم میشم در راستای تلاشش کمکش کنم. اما وقتی میبینم چیزهای بسیار ساده که با یک سرچ کوچیک هم میشه بهش رسید رو دوستان می پرسند جواب دادن بهشون رو توهین به شعور جواب دهنده می دونم.
-
پاسخ : راه اندازی کامل سروو موتور(servo motor) با میکرو avr به زبان کدویژن
نوشته اصلی توسط ariahopeاین خیلی بده که دوستان تو این سایت عادت کردند لقمه حاضر آماده کسی تحویلشون بده. کسانی که اینجا میان بیکار نیستند هیچ کدوم. من خودم به شخصه اگه ببینم طرف تلاشی کرده و داره میکنه خیلی خوشحال هم میشم در راستای تلاشش کمکش کنم. اما وقتی میبینم چیزهای بسیار ساده که با یک سرچ کوچیک هم میشه بهش رسید رو دوستان می پرسند جواب دادن بهشون رو توهین به شعور جواب دهنده می دونم.
اضافه شده در تاریخ :
36 بازدید وفقط یک پاسخ؟؟؟؟!!!!!!!!!!!!!!oo:
دیدگاه
-
پاسخ : راه اندازی کامل سروو موتور(servo motor) با میکرو avr به زبان کدویژن
خسته نباشید خدمت همگی..من با atmega16 میخوام که دو تا سروو رو درایو کنم...کدشو نوشتم و به نظرم مشکلی نباید داشته باشه...اما مشکلی که هست اینه که وقتی یکی از سروو هارو وصل میکنم به میکرو کد کامل و بی عیب اجرا میشه و سروو درست کار میکنه اما وقتی که جفت سرووهامو وصل میکنم این طور نیست....به کسی نشون دادم گفتن که انگار وقتی دو تا سروو رو به میکرو وصل میکنم جریان کشی از میکرو زیاد میشه و باعث میشه میکرو هی ریست شه...ولی اون بنده خدا هم راه حلی برای این مشکل نداشت...دیدم این تاپیک بی ربط نیس به مشکل من واسه همین اینجا مشکلمو نوشتم....خیلی ممنون میشم اگر تجربه ای اینچنینی دارید تو حل مشکلش به من کمک کنید
اینم کد برنامه ام:
کد:[CPP] [URL="http://www.eca.ir/forums/usertag.php?do=list&action=hash&hash=include"]#include[/URL] <mega16a.h> [URL="http://www.eca.ir/forums/usertag.php?do=list&action=hash&hash=include"]#include[/URL] <delay.h> void main(void) { // Declare your local variables hereunsigned int pwm1 , pwm2; pwm1=750; pwm2=750; // Input/Output Ports initialization // Port A initialization // Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In DDRA=(0<<DDA7) | (0<<DDA6) | (0<<DDA5) | (0<<DDA4) | (0<<DDA3) | (0<<DDA2) | (0<<DDA1) | (0<<DDA0); // State: Bit7=T Bit6=T Bit5=T Bit4=T Bit3=P Bit2=P Bit1=P Bit0=P PORTA=(0<<PORTA7) | (0<<PORTA6) | (0<<PORTA5) | (0<<PORTA4) | (1<<PORTA3) | (1<<PORTA2) | (1<<PORTA1) | (1<<PORTA0); // Port B initialization // Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In DDRB=(0<<DDB7) | (0<<DDB6) | (0<<DDB5) | (0<<DDB4) | (0<<DDB3) | (0<<DDB2) | (0<<DDB1) | (0<<DDB0); // State: Bit7=T Bit6=T Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T PORTB=(0<<PORTB7) | (0<<PORTB6) | (0<<PORTB5) | (0<<PORTB4) | (0<<PORTB3) | (0<<PORTB2) | (0<<PORTB1) | (0<<PORTB0); // Port C initialization // Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In DDRC=(0<<DDC7) | (0<<DDC6) | (0<<DDC5) | (0<<DDC4) | (0<<DDC3) | (0<<DDC2) | (0<<DDC1) | (0<<DDC0); // State: Bit7=T Bit6=T Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T PORTC=(0<<PORTC7) | (0<<PORTC6) | (0<<PORTC5) | (0<<PORTC4) | (0<<PORTC3) | (0<<PORTC2) | (0<<PORTC1) | (0<<PORTC0); // Port D initialization // Function: Bit7=In Bit6=In Bit5=Out Bit4=Out Bit3=In Bit2=In Bit1=In Bit0=In DDRD=(0<<DDD7) | (0<<DDD6) | (1<<DDD5) | (1<<DDD4) | (0<<DDD3) | (0<<DDD2) | (0<<DDD1) | (0<<DDD0); // State: Bit7=T Bit6=T Bit5=0 Bit4=0 Bit3=T Bit2=T Bit1=T Bit0=T PORTD=(0<<PORTD7) | (0<<PORTD6) | (0<<PORTD5) | (0<<PORTD4) | (0<<PORTD3) | (0<<PORTD2) | (0<<PORTD1) | (0<<PORTD0); // Timer/Counter 1 initialization // Clock source: System Clock // Clock value: 1000.000 kHz // Mode: Ph. & fr. cor. pwm top=ICR1 // OC1A output: Non-Inverted pwm // OC1B output: Non-Inverted pwm // Noise Canceler: Off // Input Capture on Falling Edge // Timer Period: 19.998 ms // Output Pulse(s): // OC1A Period: 19.998 ms Width: 0 us // OC1B Period: 19.998 ms Width: 0 us // Timer1 Overflow Interrupt: Off // Input Capture Interrupt: Off // Compare A Match Interrupt: Off // Compare B Match Interrupt: Off TCCR1A=(1<<COM1A1) | (0<<COM1A0) | (1<<COM1B1) | (0<<COM1B0) | (0<<WGM11) | (0<<WGM10); TCCR1B=(0<<ICNC1) | (0<<ICES1) | (1<<WGM13) | (0<<WGM12) | (0<<CS12) | (1<<CS11) | (0<<CS10); TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x27; ICR1L=0x0F; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00; // Timer(s)/Counter(s) Interrupt(s) initialization TIMSK=(0<<OCIE2) | (0<<TOIE2) | (0<<TICIE1) | (0<<OCIE1A) | (0<<OCIE1B) | (0<<TOIE1) | (0<<OCIE0) | (0<<TOIE0); OCR1AH=pwm1>>8; OCR1AL=pwm1&0xff; OCR1BH=pwm2>>8; OCR1BL=pwm2&0xff; while (1) { if(PINA.0&&PINA.1&&PINA.2&&PINA.3){if(OCR1A<750)OCR1A++; if(OCR1A>750) OCR1A--;if(OCR1B<750)OCR1B++; if(OCR1B>750) OCR1B--; delay_ms(10);} if(PINA.0==0){ if(OCR1A>300) OCR1A--; if(OCR1B>300) OCR1B--; delay_ms(10); } if(PINA.1==0){ if(OCR1A>300) OCR1A--; if(OCR1B<1200) OCR1B++; delay_ms(10); } if(PINA.2==0){ if(OCR1A<1200) OCR1A++; if(OCR1B>300) OCR1B--; delay_ms(10); } if(PINA.3==0){ if(OCR1A<1200) OCR1A++; if(OCR1B<1200) OCR1B++; delay_ms(10); }[/CPP]
جدیدترین ویرایش توسط اشکان غفارزاده; ۲۳:۳۹ ۱۳۹۶/۰۵/۱۷.
دیدگاه
-
پاسخ : راه اندازی کامل سروو موتور(servo motor) با میکرو avr به زبان کدویژن
سلام من میخوام یک سروو موتور را با اتمگا 328 راه اندازی کنم
و یک برنامه بدم که هر یک ساعت 45درجه ازچه به راست و 45 درجه از راست به چپ بچرخه
لطفا راهنمایی کنید
دلیل: ادغام دو پست برای جلوگیری از اسپم
سلام
لطفا کمک کنید
سلام من میخوام یک سروو موتور را با اتمگا 328 راه اندازی کنم
و یک برنامه بدم که هر یک ساعت 45درجه ازچه به راست و 45 درجه از راست به چپ بچرخه
لطفا راهنمایی کنید
دیدگاه
-
پاسخ : راه اندازی کامل سروو موتور(servo motor) با میکرو avr به زبان کدویژن
نوشته اصلی توسط ariahope نمایش پست هااین خیلی بده که دوستان تو این سایت عادت کردند لقمه حاضر آماده کسی تحویلشون بده. کسانی که اینجا میان بیکار نیستند هیچ کدوم. من خودم به شخصه اگه ببینم طرف تلاشی کرده و داره میکنه خیلی خوشحال هم میشم در راستای تلاشش کمکش کنم. اما وقتی میبینم چیزهای بسیار ساده که با یک سرچ کوچیک هم میشه بهش رسید رو دوستان می پرسند جواب دادن بهشون رو توهین به شعور جواب دهنده می دونم.
اره واقعا.....
دلیل: ادغام دو پست برای جلوگیری از اسپم
نوشته اصلی توسط ariahope نمایش پست هااین خیلی بده که دوستان تو این سایت عادت کردند لقمه حاضر آماده کسی تحویلشون بده. کسانی که اینجا میان بیکار نیستند هیچ کدوم. من خودم به شخصه اگه ببینم طرف تلاشی کرده و داره میکنه خیلی خوشحال هم میشم در راستای تلاشش کمکش کنم. اما وقتی میبینم چیزهای بسیار ساده که با یک سرچ کوچیک هم میشه بهش رسید رو دوستان می پرسند جواب دادن بهشون رو توهین به شعور جواب دهنده می دونم.
اره واقعا.....
دیدگاه
دیدگاه