小车实现壁障功能
来源:互联网 发布:文件强力删除软件 编辑:程序博客网 时间:2024/04/28 04:49
1.所用材料:L298N电机驱动模块、LM2596、HC-SR04、舵机、小车底盘、18650电池等。
2.接线图:
3.需要注意的是:准备一块LM2596,舵机电源应取于LM2596(否则会有干扰)。
4.Arduino代码:
#include <Servo.h>
Servo servoone;
Servo servoone;
char state=' ';
int midDist;
int leftDist;
int rightDist;
int midDist;
int leftDist;
int rightDist;
#define echoPin 12
#define trigPin 13
#define trigPin 13
void goAhead() {
analogWrite(3,0);
analogWrite(5,128);
analogWrite(6,0);
analogWrite(11,118);
}
analogWrite(3,0);
analogWrite(5,128);
analogWrite(6,0);
analogWrite(11,118);
}
void goBack() {
analogWrite(3,128);
analogWrite(5,0);
analogWrite(6,118);
analogWrite(11,0);
}
analogWrite(3,128);
analogWrite(5,0);
analogWrite(6,118);
analogWrite(11,0);
}
void turnRight() {
analogWrite(3,72);
analogWrite(5,0);
analogWrite(6,0);
analogWrite(11,65);
}
analogWrite(3,72);
analogWrite(5,0);
analogWrite(6,0);
analogWrite(11,65);
}
void turnLeft() {
analogWrite(3,0);
analogWrite(5,72);
analogWrite(6,65);
analogWrite(11,0);
}
analogWrite(3,0);
analogWrite(5,72);
analogWrite(6,65);
analogWrite(11,0);
}
void allStop() {
analogWrite(3,0);
analogWrite(5,0);
analogWrite(6,0);
analogWrite(11,0);
}
analogWrite(3,0);
analogWrite(5,0);
analogWrite(6,0);
analogWrite(11,0);
}
float checkdistance(){
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
float distance = pulseIn(echoPin, HIGH) / 58.00;
return distance;
}
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
float distance = pulseIn(echoPin, HIGH) / 58.00;
return distance;
}
void turn(){
allStop();
servoone.write(170);
delay(500);
leftDist = checkdistance();
servoone.write(90);
delay(600);
if(leftDist>20){turnLeft();}else{
goBack();
}
servoone.write(10);
delay(600);
rightDist = checkdistance();
servoone.write(90);
delay(600);
if(rightDist>20){turnRight();}else{
goBack();
}
}
allStop();
servoone.write(170);
delay(500);
leftDist = checkdistance();
servoone.write(90);
delay(600);
if(leftDist>20){turnLeft();}else{
goBack();
}
servoone.write(10);
delay(600);
rightDist = checkdistance();
servoone.write(90);
delay(600);
if(rightDist>20){turnRight();}else{
goBack();
}
}
void setup(){
Serial2.begin(9600);
Serial.begin(9600);
servoone.attach(8);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
}
Serial2.begin(9600);
Serial.begin(9600);
servoone.attach(8);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
}
void loop(){
servoone.write(90);
midDist=checkdistance();
if(midDist<10){
goBack();
delay(300);
}
if(midDist<=20&&midDist>10){
turn();
}
if(midDist>20){
goAhead();
}
}
servoone.write(90);
midDist=checkdistance();
if(midDist<10){
goBack();
delay(300);
}
if(midDist<=20&&midDist>10){
turn();
}
if(midDist>20){
goAhead();
}
}
阅读全文
0 0
- 小车实现壁障功能
- 51单片机实现智能小车的寻轨避障功能
- 两小车跟随功能
- 蓝牙远程控制小车实现
- C++多线程:实现小车前行
- 纯CSS实现小车动画
- Js实现小车的跑
- 自动避障小车
- ---------------小车
- 小车
- 在ASP中实现购物小车
- JSP实现最简单的购物小车
- Android自定义摇杆实现蓝牙控制小车
- 【java】java实现运动的小车
- C++多线程:实现小车复杂运行
- 实现自己的仿真小车移动
- 做一个app功能,监控智能小车蓄电池电量
- 智能避障小车顺利结束
- mybatis Integer值传0问题
- DETECTED ERROR IN APPLICATION: JNI GetMethodID called with pending exception java.lang.NoSuchMethodE
- iOS 阿拉伯数字转汉字
- Linux的命令
- 手把手教你NDK入门篇
- 小车实现壁障功能
- IDEA maven 项目打包报Could not resolve dependencies for project
- 2144: 2017年6月月赛-暨中南大学暑期集训选拔赛第二场
- CF 813F 可撤销并查集+分治
- Sqoop原理
- java中instanceof用法
- Day10-JDBC基础
- LeetCode38. Count and Say
- docker服务重启后自动重启容器