串口通信控制Wemos D1上的蜂鸣器
一、Wemos D1与蜂鸣器的连接
链接: 接线连接.
1.1控制代码
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
pinMode(D5,OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
digitalWrite(D5,HIGH);
char cmd;
if(Serial.available()>0)
{
cmd = Serial.read();
if(cmd == '5')
{
Serial.println("this is liushan make");
digitalWrite(D5,LOW);
delay(1000);
digitalWrite(D5,HIGH);
}
else
{
Serial.println("this is DONG JINJIN");
digitalWrite(D5,HIGH);
}
}
}
1.2项目总结
其实也没什么好总结的,就是接好线然后根据简单的代码逻辑去看开发手册进行编程就好,主要就是几个封装好的API理解和使用。大概内容就这么多。要是有小伙伴对于嵌入式开发感兴趣可以关注点点赞。
二、开发板+HC-SRO4超声波模块控制蜂鸣器
2.1模块讲解和接线
这里就是添加了一个超声波模块到我们的硬件开发板上面,总体实现的功能就是:当超声波模块测距获得的距离小于10cm是蜂鸣器就会发声,当然你也可以整合上面的串口通信。
接着我们来理论学习一波,来讲讲这个超声波模块。超声波模块上有两个超声波元件,一个用来接受一个用来发射,电路板上有四个引脚:VCC(正极),Trig(触发),Echo(回应),GDN(接地)主要的参数有:
- 工作电流与电压:15mA和 5V.
- 测距距离:2~400cm
- 被测的面积不小于50cm2
- 具备温度补偿电位
在超声波模块的触发脚位输入10us以上的高电位,即可发射超声波,发出超声波之后,与接收到传回的超声波之前,“响应”脚位呈高点位,因此,程序可从“响应”脚位的高电位脉冲持续时间,换算出被测物的距离。说白了就是小学数学题,不过就是换了代码来计算而已。所以说呀,数学真的很重要。
2.2控制代码
#define Echo D2
#define Trig D8
#define BEEP D5
long GetTime()
{
digitalWrite(Trig,HIGH);
delayMicroseconds(10);
digitalWrite(Trig,LOW);
return pulseIn(Echo,HIGH);
}
void initCSB()
{
pinMode(Echo,INPUT);
pinMode(Trig,OUTPUT);
}
void setup() {
// put your setup code here, to run once:
initCSB();
Serial.begin(115200);
pinMode(D5,OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
digitalWrite(D5,HIGH);
long distance = GetTime()/58;
if(distance <10)
{
Serial.println("this is liushan make");
Serial.print(distance);
Serial.println("cm");
digitalWrite(D5,LOW);
delay(1000);
digitalWrite(D5,HIGH);
delay(500);
}
else
{
Serial.print(distance);
Serial.println("cm");
digitalWrite(D5,HIGH);
}
}
上面是串口所打印的距离,要实现这个功能必须要安装这种USB接口驱动程序,要是没有的话可私信我。
2.3项目总结
就是要利用好各个模块的功能。然后就能实现开发了。比如后面的温度、湿度啥的,都要好好去熟悉。