Introducere

LightManager este un sistem de inchidere/deschidere automata a jaluzelelor. Acest lucru este posibil cu ajutorul unui motor pas cu pas ce primeste semnal in functie de valoarea intoarsa de la un senzor de temperatura. Foloseste un senzor de temperatura si nu unul de lumina, deoarece este util sa avem jaluzelele inchise atunci cand este foarte cald afara, si nu doar cand este lumina, adica pe tot parcursul zilei.

Descriere generală

Schema bloc a proiectului cuprinde: placuta de baza cu microcontroller-ul Atmega16, motorul pas cu pas impreuna cu placuta de control si senzorul de temperatura.

Motorul pas cu pas este unul cu 4 faze, controlat de ULN2803 si alimentat separat la o sursa de tensiune de 12V.

Motorul 5 fire, unul fiind conectat la sursa de tensiune, iar celelalte 4 (unul pentru fiecare faza) sunt conectate la driver.

Senzorul de temperatura folosit este LM335 conectat direct la Atmega16 pe portul A (pentru a se face conversia din analogic in digital).

Created by fCoder Graphics Processor

Hardware Design

Placuta de baza cu microcontroller-ul Atmega16:

dscn2173.jpg

Senzorul de temperatura folosit (LM335):

dscn2182.jpg

Schema de la care am pornit, folosind ULN2803 pentru controlul motorasului:

schema2.jpg

Schema realizata (a fost introdus cate un led pentru fiecare din cele 4 faze ale motorasului):

Placuta de control a motorului si motorul pas cu pas care necesita o alimentare de 12V:

dscn2175.jpg dscn2184.jpg UNICODE

Conectarea la placuta de baza:

Senzorul de temperatura, LM335 se conecteaza la pinii AVCC, GND si un pin al portului A (pinul 7). Placuta pentru motor se conecteaza la pinii PA0, PA1, PA2, PA3.

dscn2187.jpg

Software Design

Detalii despre implementare:

Pentru transmiterea semnalelor catre placuta ce controleaza motorul stepper, primii 4 pini ai portului A au fost setati ca output. Pinul 7 al portului A a fost lasat ca input, deoarece pe el se primeste valoarea returnata de senzorul de temperatura. LM335 este analogic, motiv pentru care a fost activat convertorul analogic-digital. Functia read_voltage(char channel) face conversia valorii primite pe canalul channel (in acest caz, 7) si intoarce valoarea rezultata. In functie de aceasta valoare intr-un ciclu infinit se compara valoarea nou citita cu vechea valoare, si la o anumita diferenta intre acestea (pozitiva sau negativa) se apeleaza o functie pentru rotirea motorasului. Au fost implementate 4 functii: right_rotation, left_rotation, right_half_rotation, left_half_rotation, pentru pasii simpli si injumatatiti ai motorasului la stanga, sau la dreapta.

Download

Bibliografie/Resurse

pm/prj2010/avoinescu/lightmanager.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