【備忘録】マイコンによるサーボモータの制御
サーボモータとは,サーボ機構において位置、速度等を制御する用途に使用するモーターである. 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);
}
}
}



