Senzorul ultrasonic HC-SR04

In acest articol vom folosi un senzor ultrasonic pentru a masura distanta pana la anumite obiecte. Acest senzor este HC-SR04 si este cel din fotografia de mai jos:

Modulul se alimenteaza cu +5V si detecteaza obiectele aflate la o apropiere de 2cm-400cm. Frecventa de lucru a acestui modul este de 40kHz.

Pe langa cei 2 pini de alimentare acest modul mai are 2 pini pe care-i vom folosi pentru a detecta distanta masurata. Cei 2 pini sunt ECHO si TRIG.  Pinul TRIG emite un puls de 10 microsecunde iar pinul ECHO receptioneaza semnalul transmis anterior. Acest semnal va fi calculat de catre Arduino si distanta va fi afisata pe un display LCD 2004 conectat cu ajutorul unui adaptor I2C. Modul de conectare a displayului este prezentat in acest articol.

 Cei 2 pini (ECHO si TRIG) vor fi conectati la 2 pini digitali ai Arduino. In cazul nostru ECHO se conecteaza la D10 si TRIG la D9.

Sketchul folosit este urmatorul:

#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x3F, 20, 4);
const int trigPin = 9;
const int echoPin = 10;
float durata, distanta;

void setup() {
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  lcd.begin();
  lcd.setCursor(0, 0);
  lcd.print("Testare modul");
  lcd.setCursor(0, 1);
  lcd.print("ultrasonic");
  lcd.setCursor(0, 2);
  lcd.print("HC-SR04");
  lcd.setCursor(1, 3);
  lcd.print("electronicstore.ro");
  delay(3000);
  lcd.clear();
}

void loop() {
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  durata = pulseIn(echoPin, HIGH);
  distanta = (durata*.0343)/2;
  lcd.setCursor(0, 0);
  lcd.print("Distanta:");
  lcd.setCursor(0, 1);
  lcd.print(distanta);
  lcd.print(" cm");
  lcd.setCursor(1, 3);
  lcd.print("electronicstore.ro");
  delay(300);
  lcd.clear();
}

 Poze cu montajul in functiune sunt mai jos: 

Un video cu montajul in functiune este mai jos:

 

 

Autentificare