Componente consumabile

Despre proiect

Măsurarea distanței folosind senzorul ultrasonic Arduino este un proiect foarte simplu pentru a măsura distanța. Înainte de a începe, trebuie să știți câteva informații despre senzorul ultrasonic HC SR-04, care este un senzor cu cost redus. Senzorul ultrasonic este alcătuit din 2 module, transmițător și receptor. Transmițătorului scoate impulsul iar receptorului recepționează impulsul. Dacă un obstacol este plasat înaintea senzorului, pulsul transmis lovește obstacolul și se reflectă înapoi. Pulsul reflectat este recepționat de partea receptorului. Se calculează timpul dintre transmisie și recepție. Aceste date sunt procesate pentru a calcula distanța.

În acest proiect, am folosit un HCSR-04 pentru a determina distanța obstacolului de la senzor. Principiul de bază al măsurării distanței cu un senzor ultrasonic se bazează pe ECHO. Atunci când undele sonore sunt transmise în mediul înconjurător, undele sunt returnate la origine după ce s-au lovit de obstacol. Așadar, trebuie doar să calculam timpul de călătorie al ambelor sunete, ceea ce înseamnă timpul de ieșire și timpul de întoarcere la origine după ce semnalul s-a lovit de obstacol. Pe măsură ce viteza sunetului este cunoscută, după un anumit calcul putem calcula distanța.

 

Am conectat senzorul ultrasonic la placa Arduino:

Pin Senzor Ultrasunet Conectat la Arduino Uno
5V 5V
TRIG Digital 2
ECHO Digital 3
GND GND

 

Am conectat LCD I2C la placa Arduino:

Pin LCD I2C Conectat la Arduino Uno
GND GND
5V 5V
SDA A4
SCL A5

 

Principiul de lucru al senzorului ultrasonic

  • Semnalul high-level este trimis la 10 microsecunde folosind Trigger
  • Modulul trimite semnalele de 40 kHz și apoi detectează dacă impulsul este primit sau nu prin Echo.
  • Dacă semnalul este primit, atunci acesta este high-level. Se face calculul de timp dintre trimiterea și primirea semnalului.

Formula de calcul al distanței:

Distanța = (Timp x Viteza luminii (340 m/s))/2

 

Schema

Scheme Image

Cod

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

#define I2C_ADDR 0x27 
#define BACKLIGHT_PIN 3
#define En_pin 2
#define Rw_pin 1
#define Rs_pin 0
#define D4_pin 4
#define D5_pin 5
#define D6_pin 6
#define D7_pin 7

LiquidCrystal_I2C lcd(I2C_ADDR,En_pin,Rw_pin,Rs_pin,D4_pin,D5_pin,D6_pin,D7_pin);


const int trigPin = 3;
const int echoPin = 2;
long duration;
int distanceCm, distanceInch;
void setup() {
   lcd.begin (16,2);
  lcd.setBacklightPin(BACKLIGHT_PIN,POSITIVE);
  lcd.setBacklight(HIGH);
  lcd.home ();
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  Serial.begin(9600);
}
void loop() {
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  duration = pulseIn(echoPin, HIGH);
  distanceCm = duration * 0.0340 / 2;
  distanceInch = duration * 0.01330 / 2;
  lcd.setCursor(0, 0);
  lcd.print("Distanta: ");
  Serial.println(distanceCm);
  lcd.print(distanceCm);
  lcd.print(" cm");
  lcd.setCursor(0, 1);
  lcd.print("    ");
  lcd.print(distanceInch);
  lcd.print(" inch");
  delay(1000);
}
  

1 Comments

Teodor

16 August 2021

mai e nevoie și de fire tata tata

Comentează

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

Nume *
Email *
Website