第1步:WiFi NodeMCU-32S ESP-WROOM-32
第2步:顯示
對于顯示器,在此程序集中,我們展示了如何使用I2C,該I2C允許僅通過兩根電線發(fā)送大量信息。
第3步:超聲波傳感器
我們解釋說HC-SR04是最常見的超聲波傳感器,廣泛用于Arduino,既便宜又容易找到。請記住,它可以測量的最小距離是2英寸,最大距離是4米。另一個(gè)細(xì)節(jié)是5伏特為其供電。
步驟4:連續(xù)蜂鳴器
步驟5:LEDs
有4個(gè)帶220歐姆電阻的彩色LED。
步驟6:組裝
HC-SR 04的主要細(xì)節(jié)是它具有電源,并使用兩個(gè)引腳,即觸發(fā)器和Echo,它們出現(xiàn)在源代碼中。
步驟7:庫
在此程序集中,我們使用了兩個(gè)庫:TM1637Display和Ultrasonic。 PDF文件包含兩個(gè)鏈接的下載地址:http://www.fernandok.com/2017/12/sensor-ultrassonico-com-esp32.html
步驟8:源代碼
在這一部分中,您可以看到有關(guān)項(xiàng)目操作的演示。在代碼中,我們已經(jīng)聲明了TM1637Display和Ultrasonic,其讀取范圍為250毫秒。這是選擇的時(shí)間,以避免數(shù)字快速變化。接下來,我們定義用于LED和蜂鳴器的引腳。我聲明了另一個(gè)變量“ unsigned int”,它將保存設(shè)備的距離。
//Biblioteca responsável para comunica??o com o display de 7 segmentos
#include
//Carrega a biblioteca do sensor ultrassonico
#include 《 ultrasonic.h》
#define INTERVALO_LEITURA 250 //(ms)
//defini??o dos PINOS que utilizaremos para os LEDS e o BUZZER
#define PIN_BLUE_LED 16
#define PIN_GREEN_LED 17
#define PIN_YELLOW_LED 18
#define PIN_RED_LED 19
#define PIN_BUZZER 21
//variável responsável por armazenar a distancia lida pelo sensor ultrass?nico
unsigned int distancia = 0;
傳感器和顯示
在此步驟中,我們定義用于控制超聲傳感器和顯示器的對象的引腳和構(gòu)造函數(shù)。
//conex?o dos pinos para o sensor ultrasonico
#define PIN_TRIGGER 4
#define PIN_ECHO 5
//Inicializa o sensor nos pinos definidos acima
Ultrasonic ultrasonic(PIN_TRIGGER, PIN_ECHO);
// Module connection pins (Digital Pins)
#define CLK 14
#define DIO 13
//Inicializa o display nos pinos definidos acima
TM1637Display display(CLK, DIO);
設(shè)置
在此功能中,我們以9600的速度初始化串行,配置引腳,然后配置顯示器的亮度。
void setup()
{
Serial.begin(9600);
configurarPinos();
//configura o brilho do display com valor máximo
display.setBrightness(0x0a);
Serial.println(“Setup.。.”);
}
引腳配置
在這里,我們將四個(gè)LED和蜂鳴器都設(shè)置為pinMode,均為OUTPUT,因?yàn)樗鼈兪禽敵觥?/p>
/*
CONFIGURA O MODOS DE CADA UM DOS PINOS QUE UTILIZAREMOS COMO SAIDA
*/
void configurarPinos()
{
pinMode(PIN_BLUE_LED, OUTPUT);
pinMode(PIN_GREEN_LED, OUTPUT);
pinMode(PIN_YELLOW_LED, OUTPUT);
pinMode(PIN_RED_LED, OUTPUT);
pinMode(PIN_BUZZER, OUTPUT);
}
回路
在“循環(huán)”功能中,我們進(jìn)行了距離和延遲檢查,即讀取間隔。
void loop()
{
verificarDistancia();
delay(INTERVALO_LEITURA);
}
獲取距離
現(xiàn)在,我們要讀取傳感器計(jì)算出的當(dāng)前距離。
/*
FAZ A LEITURA DA DISTANCIA ATUAL CALCULADA PELO SENSOR
*/
int getDistance()
{
//faz a leitura das informacoes do sensor (em cm)
int distanciaCM;
long microsec = ultrasonic.timing();
// pode ser um float ex: 20,42 cm se declarar a var float
distanciaCM = ultrasonic.convert(microsec, Ultrasonic::CM);
return distanciaCM;
}
檢查距離
我們要檢查4位顯示屏上顯示的距離。然后,我們擦除4個(gè)LED并使蜂鳴器靜音。這種情況可用于許多應(yīng)用程序。
/*
VERIFICA A DISTANCIA ATUAL QUE O SENSOR ULTRASONIC ESTA LENDO
E EM SEGUIDA, IMPRIME O VALOR NO DISPLAY, E ACENDE O LED CORRESPONDENTE
*/
void verificarDistancia()
{
//recupera a distancia atual lida pelo sensor
distancia = getDistance();
//imprime no display o valor lido
display.showNumberDec(distancia);
//esse FOR tem como objetivo apagar todos os LEDS que estejam acesos.
for(int i=PIN_BLUE_LED; i《=PIN_RED_LED; i++)
{
digitalWrite(i, LOW);
}
//desliga o BUZZER
digitalWrite(PIN_BUZZER, LOW);
//caso a distancia lida seja menor ou igual a 5, tomaremos como uma distancia de perigo
//ent?o acenderemos o LED VERMELHO e ligaremos o BUZZER
if( distancia 《= 5 )
{
digitalWrite(PIN_RED_LED, HIGH);
digitalWrite(PIN_BUZZER, HIGH);
}
//caso a distancia seja maior que 5 e menor ou igual a 20,
//tomaremos como uma distancia de aten??o, e ligaremos o LED AMARELO
else if(distancia 《=20)
{
digitalWrite(PIN_YELLOW_LED, HIGH);
}
//caso a distancia seja maior que 20 e menor ou igual a 40,
//tomaremos como uma distancia segura, e ligaremos o LED VERDE
else if(distancia 《= 40)
{
digitalWrite(PIN_GREEN_LED, HIGH);
}
//para distancias maiores que 40, tomaremos como uma distancia sem perigo
//acenderemos o LED AZUL para indicar
else
{
digitalWrite(PIN_BLUE_LED, HIGH);
}
}
責(zé)任編輯:wv
-
超聲波傳感器
+關(guān)注
關(guān)注
18文章
602瀏覽量
36700 -
ESP32
+關(guān)注
關(guān)注
21文章
1008瀏覽量
18887
發(fā)布評論請先 登錄
超聲波液位傳感器的應(yīng)用和原理,這回終于搞明白了!
TC系列密閉式超聲波傳感器產(chǎn)品說明書
超聲波傳感器:未來發(fā)展趨勢與技術(shù)前沿
超聲波傳感器的工作原理與應(yīng)用
超聲波傳感器的種類原理與設(shè)計(jì)應(yīng)用的注意要點(diǎn)

超聲波風(fēng)速風(fēng)向傳感器:科技與自然風(fēng)的對話者!
倍加福發(fā)布USi-industry超聲波傳感器系統(tǒng)
超聲波液位計(jì)的工作原理 超聲波液位計(jì)與其他液位計(jì)的比較
典型的超聲波傳感器及其應(yīng)用領(lǐng)域
超聲波傳感器是模擬還是數(shù)字
超聲波傳感器輸出的是什么信號
能否推薦一個(gè)用于放大超聲波傳感器信號的放大器?
超聲波傳感器的工作原理解析
單片機(jī)如何使用超聲波傳感器進(jìn)行距離測量
解讀工業(yè)機(jī)器人避障常用的視覺傳感器、激光傳感器、紅外傳感器、超聲波傳感器

評論