Robofun 機器人論壇
標題:
紅外線避障
[打印本頁]
作者:
mjm2246
時間:
2012-3-12 22:01
標題:
紅外線避障
現在沒有頭緒再用紅外線寫出避障的程式下面是試寫的,好像有問題
請教高手指教
int IR_right=9;//定義右側避障傳感器接口
int IR_left=8;//定義左側避障傳感器接口
int E_right =5; //連接電機1的使能端口到數字接口5
int M_right =4; //連接電機1的轉向端口到數字接口4
int E_left = 6;//連接電機2的使能端口到數字接口6
int M_left=7; //連接電機2的轉向端口到數字接口5
int Right=0;
int Left=0;
int pwm_a = 3;
int pwm_b = 11;
void setup()
{
//給各數字接口設置輸入輸出狀態
pinMode (M_right, OUTPUT);
pinMode(E_right, OUTPUT);
pinMode(M_left, OUTPUT);
pinMode(E_left, OUTPUT);
pinMode(IR_right,INPUT);
pinMode(IR_left, INPUT);
analogWrite(pwm_a, 100);
analogWrite(pwm_b, 100);
}
void advance()//前進
{
digitalWrite(M_right,HIGH);
digitalWrite(M_left,HIGH);
}
void back()//後退
{
digitalWrite(M_right,HIGH);
digitalWrite(M_left,LOW);
}
void right()//右轉
{
digitalWrite(M_right,LOW) ;
digitalWrite(M_left,HIGH);
;
}
void left()//左 ??轉
{
digitalWrite(M_right,HIGH);
digitalWrite(M_left,LOW);
}
void Stop()//停止
{
digitalWrite(E_right, LOW); //右電機停
digitalWrite(E_left, LOW); //左電機停
}
void loop()
{
//讀紅外蔽障傳感器的信號
Right=digitalRead(IR_right);
Left=digitalRead(IR_left);
//左右為高電位
if(Right==HIGH && Left==HIGH)
advance(); //前進
//如果左紅外低電平,左邊有障礙
if(Right==HIGH && Left==LOW )
right(); //右轉
//如果左紅外為低電平,左邊有障礙
if(Right==LOW && Left==HIGH )
left(); //左轉
if(Right==HIGH && Left==LOW)
Stop(); //停止
}
作者:
pizg
時間:
2012-3-13 18:12
我很難想像沒有電路圖就直接寫程式, 這樣好嗎?
作者:
g921002
時間:
2012-3-13 22:54
如果沒硬體,要不要先用RobotBASIC模擬過再說。
歡迎光臨 Robofun 機器人論壇 (https://robofun.net/forum/)
Powered by Discuz! X3.2