Ultrasonic distance meter with 1602 i2C LCD display - Arduino for beginners

Discutii despre placile de dezvoltare compatibile Arduino
User avatar
Levy
Gold User
Posts: 1581
Joined: 02 Oct 2013 15:07
Location: ABSURDISTAN

Ultrasonic distance meter with 1602 i2C LCD display - Arduino for beginners

Unread postby Levy » 31 Jul 2021 18:14

Stiu ca este un priect foarte usor ca toate celelalte de pana acum de realizat, insa pentru incepatori poate fi destul de spectaculos, pentru a prinde gustul jucariei numite Arduino.

Dupa cum scrie in titlu este vorba de masurarea distantei cu ajutorul unui senzor ultrasonic.
Cunoscandu-se viteza sunetului, se calculeaza timpul in care senzorul emite ultrasunete si timpul in care se reflecta de la un obiect inapoi la senzor, astfel putindu-se calcula distanta la care este obiectul care a reflectat inapoi ultrasunetul transmis de senzor.

Codul este preluat de pe arduino.cc si adaptat la un ecran 1602 cu interfata i2C (asta doar sa nu avem mult prea multe fire si mult prea multi pini ocupati in arduino).

Am facut si un mic video despre acest mic proiect

phpBB [video]


Codul pe care l-am incarcat in arduino i-l puteti lua de pe pastebin
sau de aici:

Code: Select all

#include "LiquidCrystal_I2C.h"

LiquidCrystal_I2C lcd(0x27,16,2);
const int trigPin = 2;
const int echoPin = 3;
long duration;
int distanceCm, distanceInch;

void setup() {
lcd.init();
lcd.backlight(); 
lcd.begin(16,2);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
lcd.setCursor(4,0);
lcd.print("HC-SRO4");
lcd.setCursor(1,1);
lcd.print("Distance meter");
delay(3000);
lcd.clear();
lcd.setCursor(2,0);
lcd.print("Daradici");
lcd.setCursor(7,1);
lcd.print("Levente");
delay(3000);
lcd.clear();
lcd.setCursor(2,0);
lcd.print("Arduino for");
lcd.setCursor(3,1);
lcd.print("beginners");
delay(3000);
lcd.clear();
}

void loop() {
 
digitalWrite(trigPin, LOW);
delay(2);
digitalWrite(trigPin, HIGH);
delay(10);
digitalWrite(trigPin, LOW);

duration = pulseIn(echoPin, HIGH);
distanceCm= duration*0.034/2;
distanceInch = duration*0.0133/2;

lcd.setCursor(0,0);
lcd.print("Distance: ");
lcd.setCursor(5,1);
lcd.print(distanceCm);
lcd.print(" cm");
delay(500);
lcd.clear();
}


S-a folosit un Arduino Uno (clona de fapt) dar se pot folosi si alte varietati ale acestuia.
Dacă ai tăiat și ultimul copac, ai otrăvit și ultimul râu și ai prins și ultimul pește, ai să fi uimit să constați că banii nu sunt comestibili !

Image

Return to “Arduino”

Who is online

Users browsing this forum: No registered users and 44 guests