用Ameba实现倒车雷达
倒车雷达已经非常普遍,这个专案做一个倒车雷达系统。将这个倒车雷达系统整合到遥控车里,就可以实现自动倒车的功能。
硬件方面,我们使用的开发板是webduino,webduino的优点是可以因为web的开发模式简单达成跨平台的需求,亦可以因为网络联机而能遥控操作,缺点则是也受限于网络联机,若无网络则无法运作。
开发工具
Ameba 8195AM
N条连接线蜂鸣器*1
超音波模块*1
超音波链接库(library)
面包版
系统连接如下图
程序代码如下
#include
#define TRIGGER_PIN 12 // 定义模块triger端为数字接脚12
#define ECHO_PIN 13 // 定义模块echo端为数字接脚11
int spk=8; // 定义扬声器为数位接脚13
Ultrasonic ultrasonic(TRIGGER_PIN,ECHO_PIN); //设定HC-SR04初始化参数
void setup()
{
Serial.begin(9600);
pinMode(spk, OUTPUT);
}
void loop()
{
float cmMsec; // 定义浮动数
long microsec = ultrasonic.timing(); //测距,返回的是一个时间单位(microsec)
cmMsec =ultrasonic.convert(microsec,Ultrasonic::CM); //将测得的时间单位计算为距离单位
Serial.print(" CM: ");
Serial.println(cmMsec);
if( cmMsec >= 80 && cmMsec <=100){ // 假设距离介于80~100之间
for(int i = 0; i < 12000; i++) // 循环重复
digitalWrite(spk, 0);
digitalWrite(spk, 1);
delay(300);
}
else if (cmMsec >= 60 && cmMsec<= 79){ // 假设距离介于60~79之间
for(int i = 0; i < 12000; i++) // 循环重复
digitalWrite(spk, 1);
digitalWrite(spk, 0);
delay(100);
}
else if (cmMsec >= 40 && cmMsec<= 59){ // 假设距离介于40~59之间
for(int i = 0; i < 12000; i++) // 循环重复
digitalWrite(spk, 1);
digitalWrite(spk, 0);
delay(50);
}
else if (cmMsec >= 30 && cmMsec<= 39){ // 假设距离介于30~39之间
for(int i = 0; i < 12000; i++) // 循环重复
digitalWrite(spk, 1);
digitalWrite(spk, 0);
delay(20);
}
else if (cmMsec >= 20 && cmMsec<= 29){ // 假设距离介于20~29之间
for(int i = 0; i < 6000; i++) // 循环重复
digitalWrite(spk, 1);
digitalWrite(spk, 0);
delay(10);
}
else if (cmMsec<19){ // 假设距离小于19
digitalWrite(spk, 1);
delay(10);
}
else
digitalWrite(spk, 0);
}
下载程序到Ameba板,完成
作者:Tsao Bruce

最新活动更多
-
12月31日立即参与>> 【100%中奖】有奖竞答转转乐
-
即日-6.30立即预约>> 【莎益博在线研讨会】PCB翘曲建模分析
-
7月14日立即报名>> 【在线研讨会】工业移动AGV/AMR,加速整厂智能化升级
-
即日-7.31立即报名>> 维科杯· OFweek 2022(第七届)AIoT行业年度评选
-
精彩回顾立即查看>> 【捷迈展台】传感技术展翼新能源应用创新
-
精彩回顾立即查看>> OFweek 2022(第二期)工程师系列在线大会-半导体技术在线会议
推荐专题
发表评论
请输入评论内容...
请输入评论/评论长度6~500个字
暂无评论
暂无评论