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> | ||