door lock mcu

Upload: rvladutescu1

Post on 08-Mar-2016

238 views

Category:

Documents


0 download

DESCRIPTION

Software and Hardware description of Door Lock project using MCU

TRANSCRIPT

Universitatea Politehnica TimioaraFacultatea de Electronic i Telecomunicaii

Proiect cu Procesoare ncuietoare Electronic(MCU - Atmega328P)

Coordonator:Studeni: (Echipa 4)Asist. Drd. Ing. Sorin PopescuAlexandru PrvETC, Anul 4, EA2, Gr. 2.2Sebastian SubuETC, Anul 4, EA2, Gr. 2.2Roland VlduescuETC, Anul 4, EA1, Gr. 1.3

Cuprins1.Descrierea proiectului22.Cerine32.1.Autocerine33.Schema bloc43.1.Explicaii53.1.1. Tastatura 4x453.1.2. Conectorul ISP53.1.3. Sursa de alimentare63.1.4. LCD73.1.5. Circuitul de comunicare MAX23273.1.6. Buzzer83.1.7. Releu SPDT93.1.8. Microcontroller Atmega328P104.Proiectare Hardware114.1.Schema electronic final114.2.Lista de componente124.3.Layout134.4.Fiiere de fabricaie165.Proiectare Software175.1.Organigrama proceselor175.2.Inter-dependena fiiereloc .c185.3.Descrierea codului pe poriuni195.4.Mediu de simulare: Proteus325.5 Programarea MCU336.Bibliografie34

1. Descrierea proiectului

Tema aleas presupune proiectarea unui echipament electronic care s permit utilizatorului uman s comande un anumit proces mecanic relativ simplu (ex.: deschiderea unui zvor electro-magnetic) prin introducerea unei parole de acces de la o tastatur numeric. Din interfaa cu utilizatorul vor mai face parte i un afiaj LCD (16 caractere x 2 rnduri), i un buzzer care vor informa utilizatorul pe durata folosirii echipamentului, cu diverse mesaje sau instruciuni pentru buna utilizare.De asemenea echipamentul electronic va fi prevzut i cu o interfa serial RS-232 prin care acesta va putea cumunica cu un PC i vor putea fi setai anumii parametrii ai programului ncrcat n microcontroller.Partea de acionare din proiect se rezum la comanda unui releu de tip SPDT la momentele de timp stabilite prin programul microcontroller-ului. Releul SPDT poate fi mai departe folosit ca ntreruptor comandat pentru orice aplicaie ce nu depeste 4A / 30VDC, 10A / 230VAC sau pentru sarcini inductive (cos = 0.4) 5A / 230VAC. (ex.: electro-magnei, motoare,...).Microcontrollerul folosit, ATmega328P, se bucur de o mare popularitate n ceea ce privete utilizarea sa mpreun cu mediul de dezvoltare Arduino, dar i resursele hardware consistente (32 KB memorie flash, 1KB EEPROM, 2KB SRAM, i diverse periferice de comunicare, temporizare, analogice sau digitale).

2. Cerine

Pentru o implementare i verificare uoar a proiectului, microcontrollerul folosit trebuie s ndeplineasc urmtoarele cerine: Memoria de Program s fie de tip FLASH Programarea lui s fie posibil i prin tehnica ISP/ICSP S poat fi simulabil (cu o comportare relativ similar cu cea din realitate)Microcontrollerul Atmega328P corespunde cerinelor impuse, dup datele urmtoare de catalog: 32KBytes of In-System Self-Programmable Flash program memory[footnoteRef:1] [1: Datasheet Atmega328P, pg. 1]

In-System Programming by On-chip Boot Program[footnoteRef:2] [2: Idem.]

Mediul de simulare Proteus 8 Professional are suport pentru Atmega328P

2.1. Autocerine

Microcontrollerul ales trebuie s poat fi programat printr-un limbaj de nivel nalt ( ANSI C, C99), astfel proiectarea software va fi necesita un timp redus avnd n vedere experiena mai mare n limbajul C dect experiena n limbaj de asamblare.Sub sistemul de operare WINDOWS, Atmel ofer suport pentru programarea n limbaj C prin intermediul compilatorului AVR gcc, care poate fi utilizat de diferite procesoare de cod scris (Eclipse C/C++, Proteus Professional 8, MikroAVR...etc), servind totodat la generarea fiierelor cu extensie .hex care se vor ncrca n microcontroller. AVR gcc face parte din pachetul de software WinAVR care deine i librrii pentru dezvoltarea de cod ct mai rapid i eficient.Printre seriile de microcontrollere de la Atmel pentru care WinAVR are suport se numr ATMega i ATTiny.

3. Schema bloc

Fig. 1 Diagrama bloc

3.1. Explicaii3.1.1. Tastatura 4x4 Liniile KP5-KP8 vor fi intrari digitale cu rezistori de pull-up intern pentru MCU (microcontroller) (PD2, PD4, PD6, PD7) care vor fi citite periodic. Liniile KP1-KP4 vor fi linii de ieire pentru MCU (PB0-PB3), care practic simuleaz un resitru de deplasare pe 4 bii care va avea periodic la ieire valorile binare 0001, 0010, 0100, 1000. Astfel prin citirea liniilor KP5-KP8 simultan cu generarea semnalelor pe liniile KP1-KP4 se poate identifica tasta apasat.

Fig. 2 Tastatura numeric n schema electronic

3.1.2. Conectorul ISPConectorul ISP servete la programarea extern MCU prin interfa serial SPI.Tensiunea VCOM, care este conectat direct la programator, poate fi separat printr-un jumper de tensiunea VCC, care alimenteaz i restul circuitelor pentru a preveni distrugerea prii de alimentare a programatorului care nu poate servi un curent mai mare de 200 mA.Linia MOSI este de asemenea folosit pentru conexiunea la tastatur (KP4); acest lucru introduce o restricie de folosire la echipamentului la programare: PE DURATA PROGRAMRII NU TREBUIE S SE FOLOSEASC TASTATURA NUMERIC, ALTFEL PROGRAMAREA NU VA FI REUIT!

Fig. 3 Conectorul ISP n schema electronic

3.1.3. Sursa de alimentare

Sursa de alimentare are rolul de a furniza dou tensiuni principlale: VCC (5V) pentru alimentarea circuitelor digitale: MCU, LCD, MAX232 +12V pentru alimentarea regulatorului de tensiune 7805, a releului de tip SPDT i a buzzerului piezoelectricSursa de alimentare accept la intrare tensiune alternativ sinusoidal 9V-12V sau tensiune continu 12V-15V. Alimentarea n ambele moduri o face posibil puntea redresoare 2W10, Fig. 4 Blocul sursei de alimentarecapabil de un curent mediu redresat de 2A [footnoteRef:3]. [3: Datasheet 2W10, pg. 1]

Tranzistorul Q1 permite un curent de colector de 3 A [footnoteRef:4] care este suficient pentru consumul total al circuitului. Dioda zener D2 regleaz valoarea tensiunii din emitorului lui Q1 la aprox. 12.4 V [4: Datasheet D313Y, pg. 1]

Variaiile tensiunii +12V pentru o tensiune de alimentare sinusoidal de 12V i o impedan de sarcin echivalent de 100 vor fi (dac circuitul consum aprox 124 mA):

Releul i buzzerul vor prezenta o funcionare normal la valoarea acestei variaii, iar regulatorul 7805 va reduce cu pn la 68 dB aceast valoare. (vezi SVR datasheet)[footnoteRef:5] [5: Datasheet LM7805, pg. 7]

Variaiile tensiunii de ieire a regulatorului 7805 vor fi cuprinse inte 25 mV i 100 mV, n cel mai ru caz. (vezi VO datasheet) [footnoteRef:6] [6: Idem.]

3.1.4. LCD

Modulul LCD 16x2 reprezint un afiaj cu cristale lichide cu matrice de puncte (5x8) care va fi folosit pentru afiarea unor caractere de tip alfa-numeric.Comanda s-a se va face pe 4 bii, impreun cu semnalele RS, i E, semnalul R/W fiind legat la mas considernd ca nu va fi interogat de MCU starea LCD-ului.Prin poteniometrul RV1 se regreaz contrastul dispozitivului optoelectronic.Comanda digital va fi asigurat de PORTUL C (PC0 PC5) al MCU.Modulul dispune i de iluminare de fundal.

Fig. 5 Modulul LCD n schema electronic3.1.5. Circuitul de comunicare MAX232

Circuitul MAX232 face posibil comunicarea serial dintre MCU i PC translatnd nivelurile logice TTL [0V, 5V] cu care opereaz MCU, la niveluri logice RS-232 [-10V, +10V]. Acest lucru se face cu ajutorul unor pompe de sarcin care utilizeaz condensatorii C4, C6. Valorile lor au fost alese astfel nct s corespund cu cerinele din datasheet-ul integratului MAX232 [footnoteRef:7]. [7: Datasheet MAX232 pg. 1]

De asemenea, circuitul MAX232 este conectat la portul serial al unui PC prin intermediul unei mufe DB9 de tip mam, cu referina X2 n schema electronic.

Fig. 6 Interfaa de comunicare serial

3.1.6. BuzzerBuzzer-ul folosit este unul de tip piezo-electric, ceea ce necesit legarea n paralel la terminalele sale a unui rezistor de 1 k.Comanda PWM este execut prin tranzistorul NPN T1, polarizat prin semnale logice de la MCU.Tranzistorul T1 este de putere mic [footnoteRef:8] suportnd un curent de colector continuu de pan la 600 mA, dei in medie va conduce n aplicaia curent un curent de pn la 25 mA. [8: Datasheet 2N5551 pg.2]

Fig. 7 Circuitul de comand al buzzer-ului

3.1.7. Releu SPDTReleul RLY1 este comandat similar cu buzzerul folosind acelai tranzistor 2N5551, bobina avnd nevoie de un curent continuu de 35 mA [footnoteRef:9]. Dioda D3 protejaz colectorul lui T1 de supra-tensiuni generate de bobina releului la intreruperea curentului de comand. [9: Datasheet Releu EN-G5LE pg. 1]

Fig. 8 Circuitul de comand al releului

3.1.8. Microcontroller Atmega328PFrecvena de tact a MCU este stabilit la 8 MHz i este asigurat de un oscilator cu cristal de quarz extern, pentru a avea o precizie ridicat avnd n vedere ca se utilizeaz perifericul de comunicaii USART al MCU. Valorile condensatorilor C13, C14 au fost alese conform recomandrilor din datasheet. [footnoteRef:10] [10: Datasheet ATmega328P pg. 30]

Pinii de alimentare VCC, AVCC sunt decuplai fiecare printr-un condensator ceramic de 100nF pentru a ndeprta zgomotul de la frecvene ridicate. Jumperul JP1 face posibil deconectarea MCU de la bara de VCC atunci cnd se programeaz prin ISP.

Fig. 9 Conexiunile MCU cu celelalte module

4. Proiectare Hardware4.1. Schema electronic final

4.2. Lista de componente

4.3. LayoutSchema electronic i layout-ul s-au proiectat cu software-ul KiCAD.Regulile de proiectare globale au fost:

Cablajul s-a realizat pe dou straturi, TOP i BOTTOM, majoritatea conexiunilor fiind pe BOTTOM pentru o prototipare mai uoar. S-au mai respectat urmtoarele reguli: plasarea ct mai aproapiat a condensatorilor de decuplare de circuitele integrate i a condesatoarilor pentru oscilatorul de quarz, ct i inserarea unui plan de mas n zona oscilatorului.(Unele trasee vor aprea unite din cauza schimbului de informaie Soft CAD -> PDF -> MS Word.)

Fig. 10 Trasee Cupru pe Bottom Fig. 11 Trasee Cupru pe Top

Fig. 12 Silkscreen Top

4.4. Fiiere de fabricaie

Pe lng fiierele gerber care conin informaiile din figurile aflate la subcapitolul 4.3, s-a mai realizat i o legend de gurire care conine dimensiunile burghiului folosit i poziia pe pcb pentru fiecare tip de gaur.

Fig. 14 Legend de gurire

5. Proiectare Software5.1. Organigrama proceselor

Fig. 15 Structura Simplificat a Programului MCU

5.2. Inter-dependena fiiereloc .c

Fig. 16 Relaia ntre fiierele surs

5.3. Descrierea codului pe poriuni/*********************Main.c**********************************************/1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include "lcd4bit.h"9 #include "keypad4x4.h"10 #include "timer2_8bit.h"11 #include "timer1_16bit.h"12 #include "usart.h"1314 #define F_CPU 8000000UL1516 int main()17 {18 char i=0;19 char a=0;20 USART0Init();21 SetupPortsLCD(); // use PortC for LCD interface22 LCD_Init(); // initialize LCD controller23 LCD_Goto(0,0);2425 InitTimer2_8bit();// initialize timer226 InitTimer1_16bit();// initialize timer127 tick=9;2829 SetTimer1_16bit_TOP(7813); // 1s timing30 31 3233 DDRD|=((1