Simuleaza parcarea masinii cu senzorul ultrasonic HC-SR04

Simuleaza parcarea masinii cu senzorul ultrasonic HC-SR04

Tutorial video senzor parcare HC-SR04


In acest videoclip, vei urmari un tutorial care te va ghida pas cu pas prin modul in care trebuie conectat senzorul ultrasonic HC-SR04 cu celelalte componente necesare.

In acest proiect vei invata cum sa simulezi modul de parcare al unei masini utilizand senzorul ultrasonic HC-SR04, dar mai intai o mica introducere despre acesta.

Senzor ultrasonic HC-SR04 bitmi

Este un senzor usor de utilizat, accesibil, cu un interval de masurare de la 2 cm la 400 cm si totodata cel mai popular senzor pentru masurarea distantei si construirea robotilor care evita obstacole. Functioneaza la tensiunea de alimentare de 5V DC, avand un unghi de masurare de 15° si o acuratete de 3 mm. Daca doresti sa afli mai multe informatii despre senzorul ultrasonic HC-SR04, ii poti accesa datasheet-ul AICI.

Cum functioneaza senzorul ultrasonic HC-SR04?

Senzorul este format din doua transductoare ultrasonice. Unul dintre ele este transmitatorul, care emite unde ultrasonice, iar celalalt este receptorul, care asculta undele reflectate.

Acesta emite ultrasunete la 40.000 Hz, care calatoresc prin aer, iar daca exista un obiect sau un obstacol in calea lor, se vor reflecta inapoi catre senzor. Prin calcularea timpului de calatorie si a vitezei sunetului, determina distanta.

Componente necesare

In continuare, pentru a putea construi acest proiect vei avea nevoie de:

Schema de conectare

Acum ca ai aflat care sunt componentele necesare, te vei ghida dupa schema de conectare de mai jos.

Senzorul ultrasonic HC-SR04 se conecteaza:
VCC si GND la 5V, respectiv GND (au rolul de alimentare).
Trig se conecteaza la portul digital 2 Arduino si are rolul de a trimite unda ultrasonica.
Echo se conecteaza la portul digital 3 Arduino si are rolul de a asculta semnalul reflectat.

Buzzerul se conecteaza + la portul digital 6 Arduino si GND la GND de pe breadboard.

Ecranul LCD1602 cu modul I2C se conecteaza: pinul GND la GND de pe breadboard, pinul VCC la 5V de pe breadboard, pinul SDA la portul analogic A4 Arduino si pinul SCL la portul analogic A5 Arduino.

Specificatii senzor ultrasonic HC-SR04 bitmi Schema conectare senzor ultrasonic HC-SR04 bitmi

Exemplu cod

In acest proiect va trebui sa folosesti bibliotecile Ultrasonic (pentru senzorul ultrasonic - descarca AICI), LiquidCrystal_I2C (pentru ecranul LCD - descarca AICI) si Tone (pentru buzzer - descarca AICI).

Pentru a adauga o biblioteca in mediul de dezvoltare Arduino IDE, deschide Arduino IDE si din meniul Sketch (Schita) acceseaza Include Library (Incarcare biblioteca) si apoi selecteaza Add .ZIP Library... (Adauga biblioteca .ZIP). Aici va trebui sa gasesti si sa selectezi fisierul .zip al bibliotecilor Ultrasonic, LiquidCrystal_I2C, respectiv Tone. Dupa ce ai deschis fisierul .zip si cand procesul de instalare s-a terminat cu succes, va aparea un mesaj in partea de jos a ferestrei care iti va confirma ca fisierul a fost adaugat in biblioteca.

Dupa ce ai realizat circuitul si ai descarcat cu succes bibliotecile Ultrasonic, LiquidCrystal_I2C, respectiv Tone, introdu codul furnizat mai jos. Apoi conecteaza placa Arduino la computer prin intermediul portului USB, selecteaza tipul de placa si portul serial (din meniul Tools selecteaza pentru optiunile Board si Port ceea ce utilizezi). Pentru a incarca codul pe placa, apasa butonul Upload (simbolul de sageata catre dreapta). In partea de jos a ferestrei vei putea urmari mesajele de stare: Compiling Sketch, Uploading si Done. Dupa finalizarea cu succes a incarcarii, placa Arduino va rula codul pe care l-ai incarcat.

#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <Ultrasonic.h>
#include <Tone.h>

LiquidCrystal_I2C lcd(0x27, 16, 2);
#define TRIGGER_PIN 2
#define ECHO_PIN 3
#define BUZZER_PIN 6

Ultrasonic ultrasonic(TRIGGER_PIN, ECHO_PIN);
Tone buzzer;

void setup()
{
  Serial.begin(9600);
  pinMode(BUZZER_PIN, OUTPUT);
  buzzer.begin(BUZZER_PIN);
  lcd.begin(16, 2);
  lcd.setBacklight(255);
}

void loop()
{
  unsigned int uS = ultrasonic.read();
  Serial.print("Distanta: ");
  Serial.print(uS);
  Serial.println(" cm");

  if (uS < 400 && uS > 15) {
    buzzer.stop();
  }

  if (uS < 15 && uS >= 5) {
    for (int i = 0; i < 5; i++) {
      buzzer.play(NOTE_A5, 100);
      delay(500);
    }
  } else if (uS < 5 && uS >= 0) {
    for (int i = 0; i < 5; i++) {
      buzzer.play(NOTE_G4, 100);
      delay(300);
    }
  }

  lcd.setCursor(0, 0);
  lcd.print("Parcare ");
  lcd.setCursor(0, 1);
  lcd.print("Distanta: ");
  lcd.setCursor(10, 1);
  lcd.print(uS);
  lcd.print(" cm ");
}