This shows you the differences between two versions of the page.
pm:prj2022:cstan:ultrasensor-arduino-project [2022/05/27 00:11] sebastian.panca [Hardware Design] |
pm:prj2022:cstan:ultrasensor-arduino-project [2022/05/27 22:33] (current) sebastian.panca |
||
---|---|---|---|
Line 8: | Line 8: | ||
</note> | </note> | ||
===== Descriere generală ===== | ===== Descriere generală ===== | ||
- | |||
- | |||
- | |||
- | ===== Hardware Design ===== | ||
<note tip> | <note tip> | ||
Line 24: | Line 20: | ||
* 1 x LCD I2C | * 1 x LCD I2C | ||
</note> | </note> | ||
+ | |||
+ | {{:pm:prj2022:cstan:ultrasonicdistancemeter.png?700|}} | ||
+ | |||
+ | |||
+ | |||
+ | ===== Hardware Design ===== | ||
<note tip> | <note tip> | ||
Line 31: | Line 33: | ||
{{:pm:prj2022:cstan:captura_ecran_1_.png?400|}} | {{:pm:prj2022:cstan:captura_ecran_1_.png?400|}} | ||
- | |||
</note> | </note> | ||
- | ===== Software Design ===== | ||
<note tip> | <note tip> | ||
- | **Source code:** | + | Conexiuni pini: |
+ | * HC-SR04: - GND - GND Arduino | ||
+ | - Echo - pin 13 Arduino | ||
+ | - Trig - pin 12 Arduino | ||
+ | - VCC - 5v pin Arduino | ||
- | <note>#include <LiquidCrystal_I2C.h> | + | * LCD I2C: - GND - GND Arduino |
+ | - VCC - 5v pin Arduino | ||
+ | - SDA - A4 Arduino | ||
+ | - SCL - A5 Arduino | ||
- | LiquidCrystal_I2C lcd(0x27, 16, 2); | + | * Buzzer: - VCC - pin 9 Arduino |
+ | - GND - GND Arduino | ||
- | const int trig = 12; | + | * 7 x Leds: Positive - connected to pin 2 to pin 8 Arduino |
- | const int echo = 13; | + | Negative - connected to GND Arduino |
+ | |||
+ | </note> | ||
+ | ===== Software Design ===== | ||
- | const int LED1 = 8; | + | <note tip> |
- | const int LED2 = 7; | + | Pentru dezvoltare am folosit Arduino IDE pentru a implementa codul proiectului. Am inclus biblioteca folosita LiquidCrystal_I2C.h pentru utilizarea LCD 16×2 cu un modul interfata I2C, am definit adresa I2C-ului si am realizat o functie pentru aprinderea LED-urilor in functie de distanta, din 7 in 7 centimetri. In void setup am initializat LCD-ul, acesta aratand distanta exprimata in centimetri, iar Buzzer-ul va emite un sunet atunci cand un obiect intra in raza senzorului. |
- | const int LED3 = 6; | + | </note> |
- | const int LED4 = 5; | + | |
- | const int LED5 = 4; | + | |
- | const int LED6 = 3; | + | |
- | const int LED7 = 2; | + | |
- | int buzzer = 9; | + | |
- | int duration = 0; | + | |
- | int distance = 0; | + | |
- | void setup() | ||
- | { | ||
- | pinMode(trig , OUTPUT); | ||
- | pinMode(echo , INPUT); | ||
- | pinMode(buzzer, OUTPUT); | ||
- | pinMode(LED1 , OUTPUT); | ||
- | pinMode(LED2 , OUTPUT); | ||
- | pinMode(LED3 , OUTPUT); | ||
- | pinMode(LED4 , OUTPUT); | ||
- | pinMode(LED5 , OUTPUT); | ||
- | pinMode(LED6 , OUTPUT); | ||
- | pinMode(LED7 , OUTPUT); | ||
- | | ||
- | lcd.init(); | ||
- | lcd.backlight(); | ||
- | | ||
- | Serial.begin(9600); | ||
- | } | + | ===== Rezultate Obţinute ===== |
- | void loop() | + | {{:pm:prj2022:cstan:distancemeter1.jpeg?200|}} {{:pm:prj2022:cstan:distancemeter2.jpeg?200|}} {{:pm:prj2022:cstan:distancemeter3.jpeg?200|}} |
- | { | + | |
- | digitalWrite(trig , HIGH); | + | |
- | delayMicroseconds(500); | + | |
- | digitalWrite(trig , LOW); | + | |
- | duration = pulseIn(echo , HIGH); | ||
- | distance = (duration/2) / 28.5 ; | ||
- | Serial.println(distance); | + | ===== Concluzii ===== |
- | + | ||
- | lcd.clear(); | + | |
- | lcd.setCursor(0,0); //Set cursor to first column of second row | + | |
- | lcd.print("Distance:"); //Print blanks to clear the row | + | |
- | lcd.print(distance); //Print measured distance | + | |
- | lcd.print(" cm"); //Print your units. | + | |
- | delay(500); | + | |
- | + | ||
- | + | ||
- | if ( distance <= 7 ) | + | |
- | { | + | |
- | digitalWrite(LED1, HIGH); | + | |
- | tone(buzzer, 700); | + | |
- | } | + | |
- | else | + | |
- | { | + | |
- | digitalWrite(LED1, LOW); | + | |
- | noTone(buzzer); | + | |
- | } | + | |
- | if ( distance <= 14 ) | + | |
- | { | + | |
- | digitalWrite(LED2, HIGH); | + | |
- | tone(buzzer, 600); | + | |
- | } | + | |
- | else | + | |
- | { | + | |
- | digitalWrite(LED2, LOW); | + | |
- | noTone(buzzer); | + | |
- | } | + | |
- | if ( distance <= 21 ) | + | |
- | { | + | |
- | digitalWrite(LED3, HIGH); | + | |
- | tone(buzzer, 500); | + | |
- | } | + | |
- | else | + | |
- | { | + | |
- | digitalWrite(LED3, LOW); | + | |
- | noTone(buzzer); | + | |
- | } | + | |
- | if ( distance <= 28 ) | + | |
- | { | + | |
- | digitalWrite(LED4, HIGH); | + | |
- | tone(buzzer, 400); | + | |
- | } | + | |
- | else | + | |
- | { | + | |
- | digitalWrite(LED4, LOW); | + | |
- | noTone(buzzer); | + | |
- | } | + | |
- | if ( distance <= 35 ) | + | |
- | { | + | |
- | digitalWrite(LED5, HIGH); | + | |
- | tone(buzzer, 300); | + | |
- | } | + | |
- | else | + | |
- | { | + | |
- | digitalWrite(LED5, LOW); | + | |
- | noTone(buzzer); | + | |
- | } | + | |
- | if ( distance <= 42 ) | + | |
- | { | + | |
- | digitalWrite(LED6, HIGH); | + | |
- | tone(buzzer, 200); | + | |
- | } | + | |
- | else | + | |
- | { | + | |
- | digitalWrite(LED6, LOW); | + | |
- | noTone(buzzer); | + | |
- | } | + | |
- | if ( distance <= 49 ) | + | |
- | { | + | |
- | digitalWrite(LED7, HIGH); | + | |
- | tone(buzzer, 100); | + | |
- | } | + | |
- | else | + | |
- | { | + | |
- | digitalWrite(LED7, LOW); | + | |
- | noTone(buzzer); | + | |
- | } | + | |
- | } | + | |
- | </note> | + | <note tip> |
+ | Mi-a placut foarte mult sa lucrez la acest proiect, am invatat foarte multe lucruri noi si cu siguranta voi mai lucra cu Arduino. | ||
</note> | </note> | ||
- | ===== Rezultate Obţinute ===== | + | ===== Download ===== |
+ | {{:pm:prj2022:cstan:ultrasonicdistancemeter.zip|}} | ||
- | ===== Concluzii ===== | + | ===== Jurnal ===== |
- | ===== Download ===== | + | 10 mai - achizitionare componente |
+ | 10 mai - realizare proiect | ||
+ | 11 mai - adaptare cod, functionare partiala | ||
- | ===== Jurnal ===== | + | 15 mai - finalizare proiect, complet functional |
Line 188: | Line 93: | ||
<note> | <note> | ||
- | Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe *Resurse Software* şi *Resurse Hardware*. | + | github.com |
+ | |||
+ | create.arduino.cc | ||
</note> | </note> | ||
<html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | <html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> |