This is an old revision of the document!
Nume: Zugravescu Adina-Andreea
Grupa: 331CD
Ideea a pornit de la dorința de a automatiza un proces simplu, dar des întâlnit, oferind o soluție practică. Dispozitivul este ușor de folosit, eficient și util atât acasă, cât și în saloane.
Lista de componente:
Diagrama circuit
1. Conectare senzor IR (KY-032): - GND la GND de pe Arduino - VCC la +5V de pe Arduino - OUT la pinul digital D2 de pe Arduino - EN lăsat neconectat
2. Conectare LCD 1602 cu interfață I2C: - GND la GND de pe Arduino - VCC la +5V de pe Arduino - SDA la pinul A4 de pe Arduino - SCL la pinul A5 de pe Arduino
3. Conectare ventilator 12V: - GND la drain al MOSFET-ului IRF520N - VCC la +5V de pe USB - Source-ul MOSFET-ului la GND - Gate-ul MOSFET-ului la pinul D3 (PWM) al Arduino, printr-o rezistență de 220Ω
4. Alte componente: - Diodă 1N4007 în paralel cu ventilatorul: catodul la +5V, anodul la drain - Rezistență de pull-down de 10kΩ între gate și GND (pentru a menține MOSFET-ul oprit când nu e activat) - Condensator ceramic de 47nF între +5V și GND pentru filtrarea alimentării
Notă: GND-ul Arduino și GND-ul alimentării externe sunt unite pe breadboard pentru a asigura masă comună.
Mediu de dezvoltare: Arduino IDE
Biblioteci folosite:
Wire.h – pentru comunicarea I2C cu LCD-ul
LiquidCrystal_I2C.h – pentru controlul afișajului LCD 1602 cu interfață I2C
Structura logică și funcționarea sistemului
Definiții, Variabile și Funcții:
#define FAN_PIN 3
pinul D3 de pe Arduino este utilizat pentru controlul ventilatorului
#define SENSOR_PIN 2
pinul D2 de pe Arduino primește semnalul digital de la senzorul IR
LiquidCrystal_I2C lcd(0x27, 16, 2)
obiect care controlează un afișaj LCD 1602 (2 rânduri × 16 caractere) conectat prin interfață I2C, cu adresa 0x27
bool drying
indică dacă sistemul se află în starea activă de uscare
unsigned long startTime
momentul în care a început uscarea
const unsigned long dryingDuration
60000 – durata uscării în milisecunde (60 secunde)
setup()
configurare pini pentru ventilator și senzor, inițializare LCD
loop()
logică principală de control și afișare
millis()
temporizare non-blocantă pentru countdown
analogWrite(FAN_PIN, duty)
control PWM pentru ventilator
lcd.*()
pentru inițializarea și manipularea afișajului
Fişierele se încarcă pe wiki folosind facilitatea Add Images or other files. Namespace-ul în care se încarcă fişierele este de tipul :pm:prj20??:c? sau :pm:prj20??:c?:nume_student (dacă este cazul). Exemplu: Dumitru Alin, 331CC → :pm:prj2009:cc:dumitru_alin.