【備忘録】マイコンによるサーボモータの制御
サーボモータとは,サーボ機構において位置、速度等を制御する用途に使用するモーターである. ATmega168でPWM制御によりサーボモータを動かす. 極力シンプルにソースコードを書いた.
#include<avr/io.h> #include<util/delay.h> void delay_ms(double t) { while (t--) _delay_ms(0.13);//delay_ms関数を実時間に合わせる } void delay_us(double t) { //delay_us関数を実時間に合わせる int tt; tt = 8*t/100; while (tt--) _delay_us(1); } int i; main(){ DDRB = 0xff; for(;;){ for(i = 0; i< 16; i++){ PORTB = 0b00000010; delay_ms(2); PORTB = 0b00000000; delay_ms(18); } for(i = 0; i< 16; i++){ PORTB = 0b00000010; delay_ms(1); PORTB = 0b00000000; delay_ms(19); } } }