This is an old revision of the document!


Automatic Nail Polish Dryer

Nume: Zugravescu Adina-Andreea

Grupa: 331CD

Introducere

Proiectul constă în dezvoltarea unui sistem automatizat care detectează prezența unei mâini și activează un mecanism de uscare controlat electronic. Scopul principal este uscarea rapidă și automată a lacului de unghii. Sistemul este activat de un senzor IR, iar pe durata funcționării (60 de secunde), timpul rămas este afișat pe un ecran LCD.

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.

Descriere generală

Senzorul IR transmite un semnal către Arduino printr-o intrare digitală. În funcție de starea citită, acesta generează un semnal PWM care, prin intermediul unui tranzistor MOSFET, controlează alimentarea ventilatorului de 12V. În paralel, Arduino comunică cu un LCD 1602 prin interfața I2C pentru a afișa un countdown de 60 de secunde, gestionat printr-un timer software implementat cu funcția millis().

Schema bloc a proiectului

Hardware Design

Lista de componente:

  • Arduino UNO 16U2
  • Senzor IR KY-032
  • LCD 1602 cu I2C
  • Ventilator 12V (PC fan, 2 fire)
  • MOSFET IRF520N
  • Diodă 1N4007 (flyback pentru protecție)
  • Condensator ceramic 47nF (filtrare zgomot)
  • Rezistență 220Ω
  • Rezistență 10kΩ
  • Breadboard
  • Fire jumper

Diagrama circuit

Diagrama circuitului

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

Software Design

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

  • Sistemul este organizat pe bază de stări logice: standby → activare → finalizare → revenire.
  • În starea de standby, se monitorizează constant ieșirea digitală a senzorului IR pentru a detecta prezența unei mâini (cu digitalRead).
  • La declanșare, se trece în starea de uscare: se pornește ventilatorul folosind un semnal PWM aplicat unui tranzistor MOSFET.
  • Este folosită o structură de temporizare software cu millis(), ce permite măsurarea duratei fără blocarea execuției.
  • Pe toată durata uscării, LCD-ul este actualizat continuu cu un countdown.
  • După expirarea celor 60 de secunde, sistemul oprește ventilatorul, afișează mesajul „Done!” și revine în starea inițială („Ready”).

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

Rezultate Obţinute

Proiectul funcționează conform așteptărilor.

Video demonstrativ: https://youtube.com/shorts/mH0Pf0XKjyc?feature=share

Concluzii

Proiectul m-a ajutat să înțeleg mai bine integrarea componentelor hardware cu logica software într-un sistem automat. A fost o experiență practică utilă, care mi-a consolidat noțiunile studiate în cadrul laboratoarelor de PM.

Download

O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului: surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-).

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.

Jurnal

Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului.

Bibliografie/Resurse

Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe Resurse Software şi Resurse Hardware.

pm/prj2025/avaduva/adina.zugravescu.1747148133.txt.gz · Last modified: 2025/05/13 17:55 by adina.zugravescu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0