エンコーダというのはモータがどれくらい回転しているのかをチェックする代物です.エンコーダを使うと,モータの回転数を正確に制御できます.そのため,ロボットなどの精密を要する機器には必要不可欠になります.
今回しようするものは,初めからモータにエンコーダが取り付けられているものを使用します.
必要なもの:
・12Pエンコーダ+ギアヘッド付DCモータ RDO-29B50G(減速比)A
減速比1/54のものを購入しました.
・12V出力電池(筆者は1.5V電池を8個使用し,直列に繋げました.)
まずはエンコーダーを使用せずにモーターを回転させてみましょう.
1.モータの配線に気を付けて以下の回路を製作してください.
モーター配線図名称
回路図
**Vcc1,Vcc2はそれぞれ電源を分けます.
2.以下のプログラムをatmega64に書き込みます.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
#include<avr/io.h> #include<stdio.h> #include<util/delay.h> void avr_init(void) { DDRA =0b11111111; DDRB =0b11111111; DDRC =0b11111111; DDRG =0b11111111; } void PWM_init(void) { TCCR1A=0b10100001; TCCR1B=0b00001001; } int main(void) { avr_init(); PWM_init(); OCR1A=255; for(;;) { PORTA=0b00000001; _delay_ms(3000); PORTA=0b00000010; _delay_ms(3000); } } |
3.電源を付けると,3秒間隔で正回転,逆回転を繰り返します.
次はまだ配線していないモータの白及び黄色の線を使って,エンコーダから出力される信号を読み取ってみましょう.
15 エンコーダ付きモータを使ってみよう2 に続く.
おすすめ図書(よかったらどうぞ)