自动避障小车
来源:互联网 发布:qq模仿哪个软件 编辑:程序博客网 时间:2024/04/30 19:35
#include <Servo.h>//include Servo libraryServo panMotor;int left1=4;int left2=5;int right1=6;int right2=7;const int TrigPin = 2;const int EchoPin = 3; float cm;float cm_1;float cm_2;int ledLeftpin=9;int ledRightpin=10;//int photocellPin = 1; //定义变量photocellsh=2,为电压读取端口。int ledPin = 12; //定义变量ledPin=12,为led电平输出端口int val = 0; //定义val变量的起始值//int servopin = 8; //定义舵机接口数字接口7void servopulse(int angle)//定义一个脉冲函数{ int pulsewidth=(angle*11)+500; //将角度转化为500-2480的脉宽值 digitalWrite(servopin,HIGH); //将舵机接口电平至高 delayMicroseconds(pulsewidth); //延时脉宽值的微秒数 digitalWrite(servopin,LOW); //将舵机接口电平至低 delayMicroseconds(20000-pulsewidth);}void setup(){ Serial.begin(9600); pinMode(ledPin, OUTPUT); //使ledPin为输出模式pinMode(TrigPin, OUTPUT);pinMode(EchoPin, INPUT); pinMode(ledLeftpin,OUTPUT);pinMode(ledRightpin,OUTPUT);panMotor.attach(8); //将电机安装在适当管脚上panMotor.write(90); //将PING)))焊盘设为中央for (int pinindex = 4; pinindex <=7; pinindex++) { pinMode(pinindex, OUTPUT); // set pins 3 to 10 as outputs}}void loop(){cm=ping();Serial.print(cm);Serial.print("cm");Serial.println();val = analogRead(photocellPin); //从传感器读取值 if(val<=512){ //512=2.5V,想让传感器敏感一些的时候,把数值调高,想让传感器迟钝的时候把数值调低。 digitalWrite(ledPin, HIGH); //当val小于512(2.5V)的时候,led亮。 } else{ digitalWrite(ledPin, LOW); }if(cm<=50.0){ digitalWrite(left1,LOW); digitalWrite(left2, LOW); digitalWrite(right1, LOW); digitalWrite(right2, LOW); //stopdelay(1000);panMotor.write(0);delay(500);cm_1=ping();delay(500);panMotor.write(180);delay(700);cm_2=ping();delay(500);panMotor.write(90); //回到中央delay(1000);delay(500);if(cm_1<=20.0&&cm_2<=20.0) //backward{ digitalWrite(ledLeftpin,HIGH); digitalWrite(ledRightpin,HIGH); digitalWrite(left1, HIGH); digitalWrite(left2, LOW); digitalWrite(right1, HIGH); digitalWrite(right2, LOW); delay(2000); digitalWrite(ledLeftpin,LOW); digitalWrite(ledRightpin,LOW);}else{ if(cm_1>cm_2){ digitalWrite(ledRightpin,HIGH); digitalWrite(left1,HIGH); digitalWrite(left2, LOW); digitalWrite(right1, LOW); digitalWrite(right2, HIGH); delay(2000); digitalWrite(ledRightpin,LOW); } else { digitalWrite(ledLeftpin,HIGH); digitalWrite(left1,LOW); digitalWrite(left2, HIGH); digitalWrite(right1, HIGH); digitalWrite(right2, LOW); delay(2000); digitalWrite(ledLeftpin,LOW); }}}else{ digitalWrite(left1, LOW); digitalWrite(left2, HIGH); digitalWrite(right1, LOW); digitalWrite(right2, HIGH);}} float ping(){ float c;digitalWrite(TrigPin, LOW); //低高低电平发一个短时间脉冲去TrigPindelayMicroseconds(2);digitalWrite(TrigPin, HIGH);delayMicroseconds(10);digitalWrite(TrigPin, LOW);c = pulseIn(EchoPin, HIGH) / 58.0; //将回波时间换算成cmc = (int(c * 100.0)) / 100.0; //保留两位小数return c;}
0 0
- 自动避障小车
- 【arduino】KitteBlock自动避障小车
- 制作树莓派wifi遥控和自动避障小车
- 51单片机智能小车C程序 蓝牙遥控+避障+自动寻迹
- 智能避障小车顺利结束
- Arduino综合实例之一_避障小车
- 17.5.9——智能避障小车
- Arduino智能小车——超声波避障
- PVCBOT【7号A版】疯狂小强二代--避障小车
- VREP探索(二)——构建避障小车模型
- 触须避障程序
- 超声波避障
- 多机器人避障
- 避障算法
- 基于并行遗传算法的无人驾驶(自动驾驶)避障算法和安全性研究
- 苹果自动驾驶避障专利曝光,能够每秒60次扫描路况
- 自动小车7279a程序
- 红外线避障测试程序
- View的touch事件分发。
- Directx11 HelloWorld之HLSL的Effect框架的使用
- UUID of GATT descriptor
- Android 等待进度条
- LeetCode(123) Best Time to Buy and Sell Stock III
- 自动避障小车
- 黑马程序员--面试题(1)交通灯系统
- Spring Security教程(12)---- 使用数据库来管理方法
- Eclipse怎样把文件系统形式的项目作为工程直接导入?
- 高性能单例模式
- java通过web配置监听启动定时任务
- JavaScript原型及原型链详解
- 5.Android 开发工具ADT下载
- 奇酷360 手机中怎么跳转安全中心中指定包名App的权限管理页面