所谓纸上得来终觉浅,须知此事要躬行。学完ARDUINO自己动手做几个感兴趣的小项目可以提高学习兴趣同时将知识应用
硬件部分可参考我的另一篇文章蓝牙遥控小车
由于时间问题我只用了最简单的HCSR04和舵机实现最简单的功能,感兴趣的可以加上蜂鸣器作为运行提醒和LCD显示障碍物距离。我这个程序有个很明显的缺点就是当走进一个胡同时走不出来,可以加上一个掉头,当前方以及左右都有障碍物时掉头即可。
这里介绍一下我的控制程序就可以了
首先有个很重要的东西:BUTTON接到中断口,用外部中断作为小车运动开关,按下开关,小车开始运行,再次按下开关小车停止。不知道中断怎么回事的看这里
外部中断使用
接通电源,按下开关小车开始运行同时检测前方距离,当距离小于30厘米时刹车并停止,舵机右转测右边距离,舵机左转测左边距离,若右大于左:右转反之左转
#include "SR04.h"
#include <Servo.h>
#define FILTER_N 3
#define leftmotor1 3
#define leftmotor2 4 // to control the left motor
#define leftpwm 5
#define rightmotor1 7
#define rightmotor2 8
#define rightpwm 6 //to control right motor
#define servopin 9 //to control servo
#define trigpin 10 //sr04
#define echopin 11
#define myspeed 85//setup the speed of car
bool button_state = false;
int frontdis,leftdis,rightdis;
SR04 mysr04 = SR04(10,11);
Servo myservo;
void setup() {
// put your setup code here, to run once:
pinMode(leftmotor1,OUTPUT);
pinMode(leftmotor2,OUTPUT);
pinMode(rightmotor1,OUTPUT);
pinMode(rightmotor2