コントローラでロボットを操縦するプログラム
押しボタンスイッチをつかったコントローラで、ロボットの
運動を操縦するプログラムをつくった。
コントローラには上、下、右、左の4つのボタンがある。
ロボットは、上ボタンを押すと前へ、下ボタンを押すと後へ進む。
左ボタンを押すとその場で左回転し、右ボタンを押すと右回転する。

コントローラとマイコンカー
プログラムは以下。押しボタンスイッチの入力信号はD0~D3、モータードライバへの出力信号はC0~C3を使用。
#include <avr/io.h>
#include <util/delay.h>
////////////////////////////////////////////////
////////////////////////////////////////////////
////////////////////////////////////////////////
////////////////////////////////////////////////
int main(void)
{
DDRB=0xff;
DDRD=0;
DDRC=0xff;
PORTB=0xff;
PORTD=0xff;
while(1){
if( (0b00000001 & ~PIND) == 0b00000001 ){
migi();
}
else if( (0b00000010 & ~PIND) == 0b00000010 ){
ushiro();
}
else if( (0b00000100 & ~PIND) == 0b00000100 ){
mae();
}
else if( (0b00001000 & ~PIND) == 0b00001000 ){
hidari();
}
else {
PORTC=0;
}
}
return 0;
}
////////////////////////////////////////////////
////////////////////////////////////////////////
///////////ものづくりツール ////////////////////
////////////////////////////////////////////////
////////////////////////////////////////////////
void delay_ms(double t) {
while (t--) _delay_ms(0.13);
}
void delay_us(double t) {
int tt;
tt = 8*t/100;
while (tt--) _delay_us(1);
}
void migi(void)
{
PORTC=0b00000101;
}
void hidari(void)
{
PORTC=0b000001010;
}
void mae(void)
{
PORTC=0b000001001;
}
void ushiro(void)
{
PORTC=0b000000110;
}



