Senzorul ultrasonic HC-SR04 +LCD & Arduino

  Salutare!Am revenit cu o nou tutorial. Astăzi vom afișa pe un LCD distanța de la un obiect la senzorul ultrasonic HC-SR04.

Ultrasunetele sunt frecvențe ce nu pot fi receptate de urechea umană, ele fiind mai mari de 20 000 Hz. Un exemplu de aparat cu ultrasunete, folosit foarte mult ar fi testul cu ultrasunete din timpul sarcinii.

De ce avem nevoie?

  1. Arduino UNO(sau orice altă placă combatibilă Arduino);
  2. Senzor Ultrasonic HC-SR04;
  3. LCD 1602
  4. Potențiometru 10KΩ;
  5. Rezistență 220Ω.

Schema folosită este următoarea:

Cum conectăm componentele?

  • PIN 1 LCD – BREADBOARD GND(-)
  • PIN 2 LCD – BREADBOARD 5V(+)
  • PIN 3 LCD – CENTRU POTENTIOMETRU(PIN2)
  • PIN 4 LCD – PIN 12 ARDUINO
  • PIN 5 LCD – BREADBOARD GND(-)
  • PIN 6 LCD – PIN 11 ARDUINO
  • PIN 7 ->PIN 10 LCD – FARA CONEXIUNE
  • PIN 11(D4) LCD – PIN 5 ARDUINO
  • PIN 12(D5) LCD – PIN 4 ARDUINO
  • PIN 13(D6) LCD – PIN 3 ARDUINO
  • PIN 14(D7) LCD – PIN 2 ARDUINO
  • PIN 15 LCD – REZISTENTA 220Ω – BREADBOARD 5V(+)
  • PIN 16 LCD – BREADBOARD GND(-)
  • PIN 1 POTENTIOMETRU –  BREADBOARD GND(-)
  • PIN 3 POTENTIOMETRU – BREADBOARD 5V(+)
  • 5V ARDUINO – BREADBOARD 5V(+)
  • GND ARDUINO – BREADBOARD GND(-)
  • VCC HC-SR04 – BREADBOARD 5V(+)
  • ECHO HC-SR04 – PIN 7 ARDUINO
  • TRIG HC-SR04 – PIN 8 ARDUINO
  • GND HC-SR04 – BREADBOARD GND(-)

Codul ce va fi uploadat pe Arduino este:

       
//Acest cod a fost scris de Ilinca Stefan - Costin
//Copyright stefanilinca.ro
#include <LiquidCrystal.h>//includem library-ul pentru lcd

LiquidCrystal lcd(12, 11, 5, 4, 3, 2); //pinii lcd-arduino

const int trig = 8;//pin TRIG(TRIGGER) - 8
const int echo = 7;//pin ECHO - 7
long durata; //variabila care va stoca durata
int distanta;//variabila distanta

void setup() {
pinMode(trig, OUTPUT);//pinul trig-iesire
pinMode(echo, INPUT);//pinul echo-intrare
lcd.begin(16,2); //initializam LCD-ul
}

void loop() {//structura repetitiva
digitalWrite(trig, LOW);
delayMicroseconds(2);
digitalWrite(trig, HIGH);
delayMicroseconds(10);
digitalWrite(trig, LOW);
durata = pulseIn(echo, HIGH);
distanta= durata*0.034/2;
//transformam ultrasunetele in distanta

lcd.setCursor(0,0); //cursor = primul rand, primul caracter
lcd.print("Distanta:");//scriem Distanta:
lcd.setCursor(0,1); //cursor = al doilea rand, primul caracter
lcd.print(distanta);//scriem variabila distanta
lcd.print("  cm");//scriem unitatea de masura
}//inchidem bucla
 

După upload-ul pe placa de dezvoltare, pentru un test, putem lua un obiect pe care să îl mișcăm la distanțe diferite.

FINAL:

Cam atât cu acest post, dacă aveți întrebări nu ezitați să le lăsați mai jos, în secțiunea de comentarii.

Succes! 

Leave a Reply

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *