久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2622|回復: 0
打印 上一主題 下一主題
收起左側

超聲波避障小車源程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:217919 發表于 2017-7-7 15:44 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
#include <Servo.h>
int motorL1=6; //左邊輪子
int motorL2=5;
int motorR1=9; //右邊輪子
int motorR2=11;
int ledL=7; //轉彎燈
int ledR=8;
int ledB=12; //倒車燈
int ledG=13; //大燈
Servo s; //超聲波轉向舵機
int trig=4; //發射信號
int echo=2; //接收信號
unsigned int S; //距離存儲
void setup() {
Serial.begin(9600); //設置波特率
pinMode(trig,OUTPUT); //設置引腳模式
pinMode(echo,INPUT);
pinMode(motorL1,OUTPUT);
pinMode(motorL2,OUTPUT);
pinMode(motorR1,OUTPUT);
pinMode(motorR2,OUTPUT);
pinMode(ledL,OUTPUT);
pinMode(ledR,OUTPUT);
pinMode(ledB,OUTPUT);
pinMode(ledG,OUTPUT);
//pinMode(12,OUTPUT);
s.attach(3); //定義舵機所用引腳
s.write(90); //初始化舵機角度
tone(12,800,500);
delay(2000); //開機延時
}


void loop() { //主函數
s.write(90); //舵機中位
range(); //執行測距函數
if(S<20){ //判斷障礙物距離,距離太近
back(); //后退
delay(1000); //后退時間
}
if(S<=50&&S>20){ //距離中等
turn(); //運行轉向判斷函數
}
if(S>50){ //距離充足
line(); //運行直行函數
}
}


void turn(){ //判斷轉向函數
lull(); //停止所用電機
s.write(170); //舵機轉到170度既左邊(角度與安裝方式有關)
delay(1000); //留時間給舵機轉向
range(); //運行測距函數
s.write(90); //測距完成,舵機回到中位
delay(1000); //留時間給舵機轉向
if (S>40) {L();} //判斷左邊障礙物距離,如果距離充足,運行左轉
else {
s.write(10); //否則,舵機轉動到10度,測右邊距離
delay(1000);
range(); //測距
s.write(90); //中位
delay(1000);
if(S>40){ R();
} //右轉
else{ back(); //判斷右邊距離,距離充足右轉否則后退
int x=random(1); //產生一個0到1的隨機數
if (x=0){R();}
else{L();} //判斷隨機數
} //否則后退,并隨機轉向
}
}


void range(){ //測距函數
digitalWrite(trig,LOW); //測距
delayMicroseconds(2); //延時2微秒
digitalWrite(trig,HIGH);
delayMicroseconds(20);
digitalWrite(trig,LOW);
int distance = pulseIn(echo,HIGH); //讀取高電平時間
distance = distance/58; //按照公式計算
S = distance; //把值賦給S
Serial.println(S); //向串口發送S的值,可以在顯示器上顯示距離
if (S<40){
tone(12,800,50);
delay(50); //延時
}
}


void line(){
ledoff(); //關閉所有LED
ledg(); //運行大燈函數
digitalWrite(motorR1,HIGH); //啟動所有電機向前
digitalWrite(motorL1,HIGH);
digitalWrite(motorR2,LOW);
digitalWrite(motorL2,LOW);
}

void L(){
ledoff();
digitalWrite(motorL1,LOW);
digitalWrite(motorR2,LOW);
analogWrite(motorL2,100);
analogWrite(motorR1,100);
for (int x=0;x<5;x++){ //執行5次
ledl(); //右邊LED函數
}
lull(); //暫停所有電機
}
void R(){
ledoff();
digitalWrite(motorL2,LOW);
digitalWrite(motorR1,LOW);
analogWrite(motorL1,100);
analogWrite(motorR2,100);
for (int x=0;x<5;x++){
ledr();
}
lull();
}


void back(){ //后退函數
ledoff();
ledb();
digitalWrite(motorL1,LOW);
digitalWrite(motorR1,LOW);
analogWrite(motorL2,100);
analogWrite(motorR2,100);
ledb();
}

void lull(){
digitalWrite(motorL1,LOW);
digitalWrite(motorL2,LOW);
digitalWrite(motorR1,LOW);
digitalWrite(motorR2,LOW);
}


void ledl(){
digitalWrite(ledL,HIGH);
delay(50);
digitalWrite(ledL,LOW);
delay(50);
}


void ledr(){
digitalWrite(ledR,HIGH);
delay(50);
digitalWrite(ledR,LOW);
delay(50);
}


void ledb(){
digitalWrite(ledB,HIGH);
}


void ledg(){
digitalWrite(ledG,HIGH);
}


void ledoff(){
digitalWrite(ledL,LOW);
digitalWrite(ledL,LOW);
digitalWrite(ledL,LOW);
digitalWrite(ledL,LOW);
}


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品免费一区二区三区四区 | 国产精品视频在线观看 | 日韩欧美国产精品一区 | 欧美日韩视频一区二区 | 欧美精品一区在线发布 | 亚洲欧美一区二区三区视频 | www.国产| 免费看黄色视屏 | 欧美极品在线 | 日韩在线一区二区三区 | 成人午夜免费网站 | av一级一片 | 久久大全 | 亚洲精品一二三区 | 国产精品中文字幕在线 | 欧美久 | 欧美综合在线视频 | 二区中文字幕 | 三级在线视频 | 天天曰夜夜 | 久久av网站 | 看真人视频一级毛片 | 精品成人一区二区 | 国产精品美女www爽爽爽 | 精品91视频 | 91视频a | 黄色片免费看 | 精品一级电影 | 久久国产99 | 先锋资源站 | 成av在线 | 日韩欧美在线不卡 | 欧美亚洲一区二区三区 | 欧美日韩视频在线播放 | 一区二区三区精品视频 | 日本三级视频 | 97视频成人 | av网站免费观看 | 久久久精| 五月天婷婷狠狠 | 成人综合伊人 |