版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上 基于Arduino的超声波壁障小车源程序 河南大学 王艺/ L = 左/ R = 右/ F = 前/ B = 後#include <Servo.h> 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 Lsp
2、eedd = 0; / 左速int directionn = 0; Servo myservo; /myservoint 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(inputPin, I
3、NPUT); 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); delay
4、(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); digitalWrite(p
5、inRB,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); digitalWrite
6、(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); analogWrit
7、e(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); digitalWrite(pi
8、nLF,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 < 25) stopp(1); ask_pin_L(); delay(delay_time); ask_pin_R(); delay(d
9、elay_time); if(Lspeedd > Rspeedd) directionn = Rgo; /向右走 if(Lspeedd <= Rspeedd) directionn = Lgo; /向左走 if (Lspeedd < 10 && Rspeedd < 10) directionn = Bgo; else directionn = Fgo; /向前走 void ask_pin_F() / 量出前方距离 myservo.write(90); digitalWrite(outputPin, LOW); delayMicroseconds(2);
10、digitalWrite(outputPin, HIGH); delayMicroseconds(10); digitalWrite(outputPin, LOW); float Fdistance = pulseIn(inputPin, HIGH); Fdistance= Fdistance/5.8/10; Serial.print("F distance:"); /输出距离 单位公分 Serial.println(Fdistance); Fspeedd = Fdistance; void ask_pin_L() /测出左边距离 myservo.write(5); del
11、ay(delay_time); digitalWrite(outputPin, LOW); delayMicroseconds(2); digitalWrite(outputPin, HIGH); delayMicroseconds(10); digitalWrite(outputPin, LOW); float Ldistance = pulseIn(inputPin, HIGH); Ldistance= Ldistance/5.8/10; / 将时间转化为距离 Serial.print("L distance:"); Serial.println(Ldistance);
12、 Lspeedd = Ldistance; void ask_pin_R() / 量出右边距离 myservo.write(177); delay(delay_time); digitalWrite(outputPin, LOW); delayMicroseconds(2); digitalWrite(outputPin, HIGH); delayMicroseconds(10); digitalWrite(outputPin, LOW); float Rdistance = pulseIn(inputPin, HIGH); Rdistance= Rdistance/5.8/10; Seria
13、l.print("R distance:"); Serial.println(Rdistance); Rspeedd = Rdistance; void loop() myservo.write(90); /舵机初次位置 detection(); /测量角度,判断往哪边转动 if(directionn = 2) /假如directionn(方向) = 2(倒车) back(8); / 倒退 turnL(2); / Serial.print(" Reverse "); if(directionn = 6) /假如directionn(方向) = 6(右) back(1); turnR(6); / 右 Serial.print(" Right "); if(directionn = 4) /假如direct
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年药一试题与答案全公开
- 防水工应试试题及答案
- 2026年导游资格证(中文)考试模拟题试卷及答案详解
- 2026汽车智能驾驶辅助系统发展分析及用户接受度与推广策略研究报告
- 2026年城管笔模拟题目及答案详解
- 新冠肺炎知识题库及答案详解
- 2026年医疗护理事业编刷题题库(含答案)
- 2026年中国大数据行业深度调研与行业竞争对手分析报告
- 基础消毒试题及正确答案公布
- 《电势差》(教学)课件
- 混凝土搅拌站风险分级管控清单
- 活塞泵培训课件
- 市政道路维修培训课件
- 心脏康复中心建设经验
- 2025北京市事业单位就业援藏专项招聘21人(公共基础知识)测试题附答案解析
- GB/T 9869.3-2025橡胶用硫化仪测定硫化特性第3部分:无转子硫化仪
- (正式版)DB65∕T 3952-2016 《反恐怖防范设置规范 学校》
- 检验科复检复查管理制度详解
- 德士古气化炉和主要设备煤炭气化工艺与操作51课件
- DB31/T 1330-2021专职消防队、微型消防站建设要求
- OA审批流程管理办法
评论
0/150
提交评论