Schema bloc:
Arduino Uno este placuta care controleaza tot. Aceasta trimite semnale catre breadboard si alte componente. Pentru ca puterea sa fie suficienta, am adaugat si un set de 4 baterii conectate in serie care sa suplimenteze nevoie de curent.
Pentru a putea folosi potentiometrul in vederea controlarii numarului de rotatii pe secunda a motorasului (implicit a rotilor) am folosit tranzistoarele
Pentru a suplimenta puterea, este necesara adaugarea unui pachet de baterii.
Librarii utilizate: Adafruit_Sensor.h, DHT.h, Wire.h, LiquidCrystal_I2C.h.
Codul include biblioteci pentru senzorul de temperatură DHT22, ecranul LCD I2C, etc. Setează pini pentru: 3 LED-uri (semnalizare distanță), buzzer (alertă sonoră), motor (controlat prin potențiometru), ventilator (PWM în funcție de temperatură), senzor ultrasonic HC-SR04 (parcare), ecran LCD.
Bucla loop() controlează: Motorul (cu potențiometru). Citește un semnal analog de pe un potențiometru (A0). Controlează viteza motorului (pin 10) proporțional cu valoarea potențiometrului.
Sistemul de parcare (cu senzor ultrasonic) Măsoară distanța cu senzorul HC-SR04. Activează LED-uri și buzzer în funcție de distanță: Sub 8 cm: toate LED-urile aprinse + buzzer continuu. 8–16 cm: 2 LED-uri + beep intermitent. 16–30 cm: 1 LED aprins. Peste 30 cm: totul oprit.
Ventilator (cu senzor DHT22) Citește temperatura. Dacă temperatura ≥ 26°C, pornește ventilatorul proporțional (până la viteza maximă la 30°C). Afișează temperatura și viteza ventilatorului pe LCD.
LCD I2C Afișează temperatura curentă și viteza ventilatorului pe 2 rânduri. La eroare DHT, afișează “Temp Error”.
Functii utilizate: mapFloat() – funcție personalizată care scalează valori float (pentru controlul fin al vitezei ventilatorului). constrain() – limitează viteza între 200 și 255 pentru a evita pornirea lentă.
Afisajul temperaturii si al vitezei ventilatorului va functiona in mod continuu, simuland bordul unei masini. In functie de temperatura inregistrata de senzorul de temperatura, viteza ventilatorului se va mari.