序列槽通信控制Wemos D1上的蜂鳴器
- 一、Wemos D1與蜂鳴器的連接配接
-
- 1.1控制代碼
- 1.2項目總結
- 二、開發闆+HC-SRO4超音波子產品控制蜂鳴器
-
- 2.1子產品講解和接線
- 2.2控制代碼
- 2.3項目總結
一、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(接地)主要的參數有:
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIiclRnblN2XjlGcjAzNfRHLGZkRGZkRfJ3bs92YsYTMfVmepNHL3dGRPlXSE5UNRpHW4Z0MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZwpmL1kDOzAzNyAjM5AzMwEjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
- 工作電流與電壓: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項目總結
就是要利用好各個子產品的功能。然後就能實作開發了。比如後面的溫度、濕度啥的,都要好好去熟悉。