循跡小車Arduino程序.doc
//循跡小車Arduino 程序:
// R是右(right),L是左(left) 小車對(duì)著自己看時(shí) 分的左右
int MotorRight1=14; //A0 IN1
int MotorRight2=15; //A1 IN2
int MotorLeft1=16; //A2 IN3
int MotorLeft2=17; //A3 IN4
int MotorRPWM=5; //PWM 5
int MotorLPWM=3; //PWM 3
const int SensorLeft = 2; //左感測(cè)器輸入腳
const int SensorRight = 6; //右感測(cè)器輸入腳
int SL; //左感測(cè)器狀態(tài)
int SR; //右感測(cè)器狀態(tài)
void setup()
{
Serial.begin(9600);
pinMode(MotorRight1, OUTPUT); // 腳位 14 (PWM)
pinMode(MotorRight2, OUTPUT); // 腳位 15 (PWM)
pinMode(MotorLeft1, OUTPUT); // 腳位 16 (PWM)
pinMode(MotorLeft2, OUTPUT); // 腳位 17 (PWM)
pinMode(MotorLPWM, OUTPUT); // 腳位 3 (PWM)
pinMode(MotorRPWM, OUTPUT); // 腳位 5 (PWM)
pinMode(SensorLeft, INPUT); //定義左感測(cè)器
pinMode(SensorRight, INPUT); //定義右感測(cè)器
}
void loop()
{
SL = digitalRead(SensorLeft);
SR = digitalRead(SensorRight);
if (SL == LOW&&SR==LOW)// 前進(jìn)
{
digitalWrite(MotorRight1,LOW);//IN1 右電機(jī) 高電平反轉(zhuǎn)
digitalWrite(MotorRight2,HIGH);//IN2 右電機(jī) 高電平正轉(zhuǎn)
analogWrite(MotorRPWM,130); //0---100--250
digitalWrite(MotorLeft1,LOW);//IN3 左電機(jī) 高電平正轉(zhuǎn)
digitalWrite(MotorLeft2,HIGH);//IN4 左電機(jī) 高電平反轉(zhuǎn)
analogWrite(MotorLPWM,130);
}
else // R是右(right),L是左(left) 小車對(duì)著自己看時(shí) 分的左右
{
if (SL == HIGH & SR == LOW)// 左白右黑, 快速左轉(zhuǎn)
{
delay(1);
digitalWrite(MotorRight1,HIGH);//IN1 右電機(jī) 高電平反轉(zhuǎn)
digitalWrite(MotorRight2,LOW);//IN2 右電機(jī) 高電平正轉(zhuǎn)
analogWrite(MotorRPWM,130);
digitalWrite(MotorLeft1,LOW);//IN3 左電機(jī) 高電平正轉(zhuǎn)
digitalWrite(MotorLeft2,HIGH);//IN4 左電機(jī) 高電平反轉(zhuǎn)
analogWrite(MotorLPWM,130);
}
else if (SR == HIGH & SL == LOW) // 右白左黑, 快速右轉(zhuǎn)
{
delay(1);
digitalWrite(MotorRight1,LOW);//IN1 右電機(jī) 高電平反轉(zhuǎn)
digitalWrite(MotorRight2,HIGH);//IN2 右電機(jī) 高電平正轉(zhuǎn)
analogWrite(MotorRPWM,130);
digitalWrite(MotorLeft1,HIGH);//IN3 左電機(jī) 高電平正轉(zhuǎn)
digitalWrite(MotorLeft2,LOW);//IN4 左電機(jī) 高電平反轉(zhuǎn)
analogWrite(MotorLPWM,130);
}
else // 都是白色, 停止
{
digitalWrite(MotorRight1,LOW);
digitalWrite(MotorRight2,LOW);
analogWrite(MotorRPWM,0);
digitalWrite(MotorLeft1,LOW);
digitalWrite(MotorLeft2,LOW);;
analogWrite(MotorLPWM,0);
}}}
收藏
編號(hào):6700882
類型:共享資源
大小:16.50KB
格式:DOC
上傳時(shí)間:2020-01-08
15
積分
- 關(guān) 鍵 詞:
-
小車
Arduino
程序
- 資源描述:
-
//循跡小車Arduino 程序:
// R是右(right),L是左(left) 小車對(duì)著自己看時(shí) 分的左右
int MotorRight1=14; //A0 IN1
int MotorRight2=15; //A1 IN2
int MotorLeft1=16; //A2 IN3
int MotorLeft2=17; //A3 IN4
int MotorRPWM=5; //PWM 5
int MotorLPWM=3; //PWM 3
const int SensorLeft = 2; //左感測(cè)器輸入腳
const int SensorRight = 6; //右感測(cè)器輸入腳
int SL; //左感測(cè)器狀態(tài)
int SR; //右感測(cè)器狀態(tài)
void setup()
{
Serial.begin(9600);
pinMode(MotorRight1, OUTPUT); // 腳位 14 (PWM)
pinMode(MotorRight2, OUTPUT); // 腳位 15 (PWM)
pinMode(MotorLeft1, OUTPUT); // 腳位 16 (PWM)
pinMode(MotorLeft2, OUTPUT); // 腳位 17 (PWM)
pinMode(MotorLPWM, OUTPUT); // 腳位 3 (PWM)
pinMode(MotorRPWM, OUTPUT); // 腳位 5 (PWM)
pinMode(SensorLeft, INPUT); //定義左感測(cè)器
pinMode(SensorRight, INPUT); //定義右感測(cè)器
}
void loop()
{
SL = digitalRead(SensorLeft);
SR = digitalRead(SensorRight);
if (SL == LOW&&SR==LOW)// 前進(jìn)
{
digitalWrite(MotorRight1,LOW);//IN1 右電機(jī) 高電平反轉(zhuǎn)
digitalWrite(MotorRight2,HIGH);//IN2 右電機(jī) 高電平正轉(zhuǎn)
analogWrite(MotorRPWM,130); //0---100--250
digitalWrite(MotorLeft1,LOW);//IN3 左電機(jī) 高電平正轉(zhuǎn)
digitalWrite(MotorLeft2,HIGH);//IN4 左電機(jī) 高電平反轉(zhuǎn)
analogWrite(MotorLPWM,130);
}
else // R是右(right),L是左(left) 小車對(duì)著自己看時(shí) 分的左右
{
if (SL == HIGH & SR == LOW)// 左白右黑, 快速左轉(zhuǎn)
{
delay(1);
digitalWrite(MotorRight1,HIGH);//IN1 右電機(jī) 高電平反轉(zhuǎn)
digitalWrite(MotorRight2,LOW);//IN2 右電機(jī) 高電平正轉(zhuǎn)
analogWrite(MotorRPWM,130);
digitalWrite(MotorLeft1,LOW);//IN3 左電機(jī) 高電平正轉(zhuǎn)
digitalWrite(MotorLeft2,HIGH);//IN4 左電機(jī) 高電平反轉(zhuǎn)
analogWrite(MotorLPWM,130);
}
else if (SR == HIGH & SL == LOW) // 右白左黑, 快速右轉(zhuǎn)
{
delay(1);
digitalWrite(MotorRight1,LOW);//IN1 右電機(jī) 高電平反轉(zhuǎn)
digitalWrite(MotorRight2,HIGH);//IN2 右電機(jī) 高電平正轉(zhuǎn)
analogWrite(MotorRPWM,130);
digitalWrite(MotorLeft1,HIGH);//IN3 左電機(jī) 高電平正轉(zhuǎn)
digitalWrite(MotorLeft2,LOW);//IN4 左電機(jī) 高電平反轉(zhuǎn)
analogWrite(MotorLPWM,130);
}
else // 都是白色, 停止
{
digitalWrite(MotorRight1,LOW);
digitalWrite(MotorRight2,LOW);
analogWrite(MotorRPWM,0);
digitalWrite(MotorLeft1,LOW);
digitalWrite(MotorLeft2,LOW);;
analogWrite(MotorLPWM,0);
}}}
展開閱讀全文
- 溫馨提示:
1: 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
裝配圖網(wǎng)所有資源均是用戶自行上傳分享,僅供網(wǎng)友學(xué)習(xí)交流,未經(jīng)上傳用戶書面授權(quán),請(qǐng)勿作他用。