基于Arduino的超声波壁障小车源程序.docx

上传人:小飞机 文档编号:3384978 上传时间:2023-03-12 格式:DOCX 页数:7 大小:37.72KB
返回 下载 相关 举报
基于Arduino的超声波壁障小车源程序.docx_第1页
第1页 / 共7页
基于Arduino的超声波壁障小车源程序.docx_第2页
第2页 / 共7页
基于Arduino的超声波壁障小车源程序.docx_第3页
第3页 / 共7页
基于Arduino的超声波壁障小车源程序.docx_第4页
第4页 / 共7页
基于Arduino的超声波壁障小车源程序.docx_第5页
第5页 / 共7页
亲,该文档总共7页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《基于Arduino的超声波壁障小车源程序.docx》由会员分享,可在线阅读,更多相关《基于Arduino的超声波壁障小车源程序.docx(7页珍藏版)》请在三一办公上搜索。

1、基于Arduino的超声波壁障小车源程序基于Arduino的超声波壁障小车源程序 河南大学 王艺 / L = 左 / R = 右 / F = 前 / B = 後 #include int pinLF=14; / 定义6脚位 左后 int pinLB=15; / 定义9脚位 左前 int pinRF=16; / 定义10脚位 右前 int pinRB=17; / 定义11脚位 右后 int inputPin = 9; / 定义超音波接受脚位 int outputPin =8; / 定义超音波发送脚位 int Fspeedd = 0; / 前速 int Rspeedd = 0; / 右速 int

2、Lspeedd = 0; / 左速 int directionn = 0; Servo myservo; /myservo int delay_time = 250; / 舵机的稳定时间 int Fgo = 8; / 前进 int Rgo = 6; / 右转 int Lgo = 4; / 左转 int Bgo = 2; / 倒车 void setup Serial.begin(9600); pinMode(pinLB,OUTPUT); pinMode(pinLF,OUTPUT); pinMode(pinRB,OUTPUT); pinMode(pinRF,OUTPUT); pinMode(inp

3、utPin, INPUT); pinMode(outputPin, OUTPUT); myservo.attach(10); / 定义舵机第5脚位(PWM) void advance(int a) / 前进 digitalWrite(pinRF,HIGH); digitalWrite(pinRB,LOW); /analogWrite(pinRF,100); /analogWrite(pinRB, 0); digitalWrite(pinLF,HIGH); digitalWrite(pinLB,LOW); /analogWrite(pinLF,100); /analogWrite(pinLB,0

4、); delay(a * 100); void right(int b) digitalWrite(pinRF,LOW); digitalWrite(pinRB,LOW); /analogWrite(pinRF,0); / analogWrite(pinRB, 0); digitalWrite(pinLF,HIGH); digitalWrite(pinLB,LOW); /analogWrite(pinLF,100); / analogWrite(pinLB,0); delay(b * 100); void left(int c) digitalWrite(pinRF,HIGH); digita

5、lWrite(pinRB,LOW); /analogWrite(pinRF,100); /analogWrite(pinRB, 0); digitalWrite(pinLF,LOW); digitalWrite(pinLB,LOW); /analogWrite(pinLF,0); /analogWrite(pinLB,0); delay(c * 100); void turnR(int d) digitalWrite(pinRF,LOW); digitalWrite(pinRB,HIGH); analogWrite(pinRF,0); analogWrite(pinRB, 100); digi

6、talWrite(pinLF,HIGH); digitalWrite(pinLB,LOW); analogWrite(pinLF,100); analogWrite(pinLB,0); delay(d * 100); void turnL(int e) digitalWrite(pinRF,HIGH); digitalWrite(pinRB,LOW); analogWrite(pinRF,100); analogWrite(pinRB, 0); digitalWrite(pinLF,LOW); digitalWrite(pinLB,HIGH); analogWrite(pinLF,0); an

7、alogWrite(pinLB,100); delay(e * 100); void stopp(int f) /停止 digitalWrite(pinRB,LOW); digitalWrite(pinRF,LOW); digitalWrite(pinLB,LOW); digitalWrite(pinLF,LOW); delay(f * 100); void back(int g) digitalWrite(pinRF,LOW); digitalWrite(pinRB,HIGH); /analogWrite(pinRF,0); /analogWrite(pinRB, 150); digital

8、Write(pinLF,LOW); digitalWrite(pinLB,HIGH); /analogWrite(pinLF,0); /analogWrite(pinLB,150); delay(g * 100); void detection /测量三个角度(0.90.179) int delay_time = 250; / 舵机稳定时间 ask_pin_F; if(Fspeedd 10) stopp(1); back(2); if(Fspeedd Rspeedd) directionn = Rgo; /向右走 if(Lspeedd = Rspeedd) directionn = Lgo;

9、/向左走 if (Lspeedd 10 & Rspeedd 10) directionn = Bgo; else directionn = Fgo; /向前走 void ask_pin_F / 量出前方距离 myservo.write(90); digitalWrite(outputPin, LOW); delayMicroseconds(2); digitalWrite(outputPin, HIGH); delayMicroseconds(10); digitalWrite(outputPin, LOW); float Fdistance = pulseIn(inputPin, HIGH)

10、; Fdistance= Fdistance/5.8/10; Serial.print(F distance:); /输出距离 单位公分 Serial.println(Fdistance); Fspeedd = Fdistance; void ask_pin_L /测出左边距离 myservo.write(5); delay(delay_time); digitalWrite(outputPin, LOW); delayMicroseconds(2); digitalWrite(outputPin, HIGH); delayMicroseconds(10); digitalWrite(outp

11、utPin, LOW); float Ldistance = pulseIn(inputPin, HIGH); Ldistance= Ldistance/5.8/10; / 将时间转化为距离 Serial.print(L distance:); Serial.println(Ldistance); Lspeedd = Ldistance; void ask_pin_R / 量出右边距离 myservo.write(177); delay(delay_time); digitalWrite(outputPin, LOW); delayMicroseconds(2); digitalWrite(o

12、utputPin, HIGH); delayMicroseconds(10); digitalWrite(outputPin, LOW); float Rdistance = pulseIn(inputPin, HIGH); Rdistance= Rdistance/5.8/10; Serial.print(R distance:); Serial.println(Rdistance); Rspeedd = Rdistance; void loop myservo.write(90); /舵机初次位置 detection; /测量角度,判断往哪边转动 if(directionn = 2) /假

13、如directionn(方向) = 2(倒车) back(8); / 倒退 turnL(2); / Serial.print( Reverse ); if(directionn = 6) /假如directionn(方向) = 6(右) back(1); turnR(6); / 右 Serial.print( Right ); if(directionn = 4) /假如directionn(方向) = 4(左) back(1); turnL(6); Serial.print( Left ); if(directionn = 8) advance(1); Serial.print( Advance ); Serial.print( ); / 左 /假如directionn(方向) = 8(前) / 正常前

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号