Daniel-Marian SPĂTARU (78345) - Fan controller cooler pad

Autorul poate fi contactat la adresa: Login pentru adresa

Introducere

Proiectul consta in construirea unui mecanism de reglare automata a vitezei de rotatie a unor ventilatoare pentru un cooler pad. Am ales proiectul acesta pentru ca aveam un cooler pad mai vechi cu ventilatoare detasabile si voiam sa cumpar altele mai puternice. Functionarea ventilatoarelor se bazeaza pe un senzor de temperatura montat in spatele laptopului in functie de care isi vor regla automat turatia. Consider ca este util mecanismul acesta in cazul unor fan-uri mai puternice pentru a le limita zgomotul atunci cand laptopul nu e foarte incarcat.

Descriere generală

Turatia controlabila se va obtine printr-un senzor de temperatura aflat in spatele laptopului, iar pe un LCD voi afisa temperatura aerului scos de laptop, puterea/turatia ventilatoarelor (duty cycle), un mod manual de selectare in trepte a puterii lor prin butoane si modul propriu-zis de functionare. Deasemenea, voi mai folosi un led cu un range de culori sugestive corespunzator temperaturii.

Hardware Design

Lista de piese:

  • Microcontroller ATMega324
  • PCB si piese de baza (rezistente, tranzistori, condensatoare, fire legatura, butoane)
  • Senzor de temperatura LM335AZ
  • Led RGB
  • Placa de test
  • Header de pini, cabluri mama-mama, mama-tata
  • Ventilatoare 12V (2 buc)
  • LCD Text 16×2
  • Tranzistor NPN BC547C (2 buc)
  • Rezistente (2.2k, 6X 1k, 3X 470)
  • Sursa alimentare 12V
  • USB Type-B
  • Butoane (3 buc)

Software Design

Mediu de dezvoltare: Atmel Studio, Eagle, HIDBootFlash (pentru incarcare pe placa)

Am facut implementarea in main.c. Am citit prin ADC semnalul de la senzorul de temperatura si l-am convertit pe baza raportului mv/grad Celsius in digital pe care l-am afisat pe lcd. Ventilatoarele le controlez prin PWM in mod automat folosind output-ul senzorului de temperatura, sau manual prin butoane setand duty cycle-ul, acesta din urma fiind la un minim de 30% pentru a functiona. Fiecare ventilator este controlabil separat, fiind conectate separat printr-un tranzistor la un port de control OC1A si OC1B. In functie de temperatura, led-ul va lumina sugestiv, in diferite proportii de culoare, fiind si el controlat prin PWM.

Rezultate Obţinute

Rezultatele sunt cele scontate. Am reusit sa afisez pe LCD temperatura si duty cycle-ul pentru fiecare fan in parte, modul de functionare Automat/Manual-Pozitiv/Manual-Negativ, sa controlez ventilatoarele separat in mod automat si manual; sa aprind led-ul in functie de temperatura prin combinarea culorilor (PWM).

Mod Automat - reglarea se face in functie de temperatura, ledul este albastru la 50% turatie.

Mod Automat - led verde la turatia minima de 30%

Unul din fan-uri este al 100% - ledul este rosu

Maximul turatiei celor 2 este sub 100%, ledul se aprinde in diferite proportii rosu-albastru.

Unul dintre cele 2 fan-uri este oprit - ledul rosu de pe placuta pm semnaleaza avarie.

Concluzii

Programul porneste in modul automat, si se poate selecta printr-un buton modul de functionare: automat sau manual, tinand apasat lung pe buton. La apasarea scurta, se comuta intre modurile Manual-Pozitiv si Manual-Negativ. Acestea din urma cresc/scad turatia fan-urilor in mod independent prin celelalte 2 butoane. Led-ul se aprinde in diferite nuante de culoare in functie de turatie. Fan-urile au nevoie de un duty-cycle minim de 30% pentru a functiona, si de un impuls pentru a porni pe aceasta turatie. Am mai incercat sa folosesc al 3-lea fir al ventilatoarelor (tach signal) pentru a afisa RPM-ul acestora, insa nu produce intreruperi cum ma asteptam pentru a le numara. Experienta proiectului a fost una foarte interesanta, mi-a placut foarte mult sa lipesc componentele si sa am un rezultat per-ansamblu.

Download

Surse proiect:

surse_proiect_fan.zip

Bibliografie/Resurse

  • Datasheet-urile pentru Atmega324, senzorul de temperatura LM335A si tranzistorul BC547C
  • Biblioteca LCD
  • Laboratoarele de Timere si ADC
  • Documentația în format PDF
pm/prj2018/avoinescu/428754.txt · Last modified: 2021/04/14 17:07 (external edit)
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