用Ameba实现倒车雷达

易心STEAM编程
关注

倒车雷达已经非常普遍,这个专案做一个倒车雷达系统。将这个倒车雷达系统整合到遥控车里,就可以实现自动倒车的功能。

硬件方面,我们使用的开发板是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

声明: 本文由入驻OFweek维科号的作者撰写,观点仅代表作者本人,不代表OFweek立场。如有侵权或其他问题,请联系举报。
侵权投诉

下载OFweek,一手掌握高科技全行业资讯

还不是OFweek会员,马上注册
打开app,查看更多精彩资讯 >
  • 长按识别二维码
  • 进入OFweek阅读全文
长按图片进行保存