This shows you the differences between two versions of the page.
pm:prj2021:alazar:smokedetector [2021/06/01 23:34] florina.drastaru |
pm:prj2021:alazar:smokedetector [2021/06/03 18:18] (current) florina.drastaru |
||
---|---|---|---|
Line 37: | Line 37: | ||
* Leduri | * Leduri | ||
* Buzzer | * Buzzer | ||
- | * | + | |
**Schema tinkercad**: | **Schema tinkercad**: | ||
Line 62: | Line 62: | ||
Implementarea software se bazeaza pe 2 functii principale: | Implementarea software se bazeaza pe 2 functii principale: | ||
- Functia **setup()** | - Functia **setup()** | ||
+ | * se initializeaza pinii si LCD-ul | ||
- Functia **loop()** | - Functia **loop()** | ||
+ | * se afiseaza pe LCD mesaje de alerta specifice si cantitatea de fum detectata | ||
+ | * in functie de concentratia de gaz, se aprinde un led de o anumita culoare: | ||
+ | * ledul verde -> este aprins atunci cand nu este detectat fum in atmosfera(senzorul citeste o valoare mai mica decat 300) | ||
+ | * ledul portocaliu -> este aprins atunci cand se detecteaza o cantitate mica de fum(senzorul citeste o valoare mai mare decat 300, dar mai mica decat 380) | ||
+ | * ledul rosu -> este aprins atunci cand se detecteaza o cantitate mai mare de fum(senzorul citeste o valoare mai mare decat 380) | ||
+ | * buzzerul porneste concomitent cu ledul rosu, atunci cand se da semnalul de alerta | ||
+ | |||
+ | <spoiler Cod Arduino> | ||
+ | <code> | ||
+ | #include <LiquidCrystal.h> | ||
+ | LiquidCrystal lcd(7, 6, 5, 4, 3, 2); | ||
+ | |||
+ | int redLed = 10; | ||
+ | int greenLed = 11; | ||
+ | int orangeLed = 12; | ||
+ | int buzzer = 8; | ||
+ | int readSmoke = A0; | ||
+ | int maxLimit = 380; | ||
+ | int minLimit = 300; | ||
+ | |||
+ | void setup() { | ||
+ | pinMode(redLed, OUTPUT); | ||
+ | pinMode(greenLed, OUTPUT); | ||
+ | pinMode(buzzer, OUTPUT); | ||
+ | pinMode(orangeLed, OUTPUT); | ||
+ | pinMode(readSmoke, INPUT); | ||
+ | Serial.begin(9600); | ||
+ | lcd.begin(16,2); | ||
+ | } | ||
+ | |||
+ | void loop() { | ||
+ | int analogSensor = analogRead(readSmoke); | ||
+ | |||
+ | Serial.print("Pin A0: "); | ||
+ | Serial.println(analogSensor); | ||
+ | lcd.print("Smoke Level:"); | ||
+ | lcd.print(analogSensor-50); | ||
+ | if (analogSensor-50 > maxLimit) | ||
+ | { | ||
+ | digitalWrite(redLed, HIGH); | ||
+ | lcd.setCursor(0, 2); | ||
+ | lcd.print("Alert....!!!"); | ||
+ | digitalWrite(greenLed, LOW); | ||
+ | digitalWrite(orangeLed, LOW); | ||
+ | tone(buzzer, 1000, 200); | ||
+ | } else if (analogSensor - 50 > minLimit) { | ||
+ | digitalWrite(redLed, LOW); | ||
+ | digitalWrite(orangeLed, HIGH); | ||
+ | digitalWrite(greenLed, LOW); | ||
+ | lcd.setCursor(0, 2); | ||
+ | lcd.print("Be carreful....!!!"); | ||
+ | noTone(buzzer); | ||
+ | } | ||
+ | | ||
+ | else | ||
+ | { | ||
+ | digitalWrite(redLed, LOW); | ||
+ | digitalWrite(greenLed, HIGH); | ||
+ | digitalWrite(orangeLed, LOW); | ||
+ | lcd.setCursor(0, 2); | ||
+ | lcd.print(".....Normal....."); | ||
+ | noTone(buzzer); | ||
+ | } | ||
+ | delay(500); | ||
+ | lcd.clear(); | ||
+ | } | ||
+ | </code> | ||
+ | </spoiler> | ||
+ | |||
=== Rezultate obtinute === | === Rezultate obtinute === | ||
Line 88: | Line 158: | ||
- | === Download === | ||
- | {{smoke_detector.pdf}} | ||
=== Jurnal === | === Jurnal === | ||
+ | * 25.04 -> Alegerea temei de proiect si crearea paginii de wiki | ||
+ | * 1.05 -> Comandarea componentelor | ||
+ | * 18.05 -> Realizarea proiectului(atat partea hardware, cat si software) | ||
+ | * 1.06 -> Actualizarea paginii de wiki | ||
+ | * 2.06 -> Finalizarea paginii de wiki | ||
=== Bibliografie/Resurse === | === Bibliografie/Resurse === | ||
+ | * https://lastminuteengineers.com/i2c-lcd-arduino-tutorial/ | ||
+ | * https://lastminuteengineers.com/mq2-gas-senser-arduino-tutorial/ | ||
+ | * {{smoke_detector2.pdf}} |