Documente Academic
Documente Profesional
Documente Cultură
Studen i: Vesa Vlad (EA 2.1) Radi a Remus (EA 2.1) Prv nescu Alexandru (EA 2.1)
2011
CUPRINSUL DOCUMENTATIEI
CUPRINSUL DOCUMENTATIEI............................................................................................... 1 CAP.1 Introducere ....................................................................................................................... 2 1.1. Schema bloc a montajului .................................................................................................. 3 CAP2. HARDWARE ................................................................................................................... 4 2.1. Schema electronica a montajului ........................................................................................... 4 2.2. Lista componente necesare (Bill of materials) .................................................................... 7 2.3. Cablaj imprimat ................................................................................................................. 8 CAP3. SOFTWARE ................................................................................................................... 14 3.1 Organigarma ..................................................................................................................... 14 3.2 Cod ................................................................................................................................... 14
CAP.1 Introducere
Realizarea acestui proiect CUB LED 5x5x5 porneste de la ideea realizarii unor simple animatii 3D cu ajutorul unor leduri. Proiectul a fost realizat respectand cerintele de proiectare impuse de cadrul didactic supervizor cu privire la alegera microprocesorului .Aceste cerinte sunt: - memoria microcotrolerului trebuie sa fie de tip flash - microcontrolerul trebuie sa fie programabil in sistem (ICSP) Aceasta prezentare descrie pasi in care a fost realizat acest priect si documentatia referitoare la fiecare aspect de proiectare. Cubul LED este format din 125 LED-uri aranjate in 5 straturi (etaje /layere) de 25 de LEDuri fiecare. Afisarea este multiplexata astfel in loc de 125 de conexiuni necesare pentru fiecare LED se folosesc 5 conexiuni pentru comanda fiecarui etaj si alte 25 de conexiuni pentru comanda individuala a unui LED de pe etaje. In cadrul programarii pentru realizarea unor animatii mai complexe se recomanda ca rutina de baleiere a cubului sa fie in jur de 2 ms. Acest lucru duce la afisarea animatiilor fara palpaire. Montajul este alimentat la 5V si in functie de numarul de LED-uri aprinse consumul de curent poate creste pna la 1A. Programarea a fost realizata folosind software-ul oferit de cei de la mikroelectronica si anume mikro c.
Driver 1
16
Driver Segmente x16
9
Driver Segmente x16
PIC16F688
OSC (XT) Decodor 1 din 5
ICSP
RS 232
DB9
PC
In aceasta schema bloc este prezent ca elemet centaral micocontrolerul PIC16F688 acesta fiind ales din urmatoarele considerente: - respecta cerintele de proiectare (estede tip ICSP si dispune de memorie falsh) - Comanda LED-urilor se face multiplexat prin intermediul unor drivere ceea ce face ca numarul de pini necesari pentru comanada cubului sa fie redus la 8. Pentru ca s-a dorit introducerea unui modul RS232 pentru comunicare seriala cu calculatorul si deoarece numaru de pini disponibili fiind deja ocupat s-a hotarat introducerea unui decodificator 3x ( doar 5 iesiri folosite ) pentru comanda driverelor de etaj reducandu-se astfel la 3 nr de pini necesari pt comanda etajului. Pentru comunicarea eficienta cu calculatorul este necesar sa avem o freventa de tact stabila si astfel se introduce un oscilator extern cu cuart. Se folosesc 2 drivere cu 16 intrari pentru comanda LED-urilor pe etaj, de la ultimul driver fiid folosite doar primele 9 intrari. Rezistentele de la iesire acestor drivere trebuiesc bine dimensoinate pentru a asigura protectia driverelor la curenti de iesire prea mari. Driverele pentru controlul etajelor sunt niste tranzistoare NPN (BC 639).
Schema electronica prezentata mai sus putem spune ca ar contine doua parti: y O parte de control prin intermediul careia se face controlul comenzii ledurilor din cub y O parte de comanda prin intermediul careia se comanda efectiv ledurile Partea de control prezentata alaturat are rolul de a controla animatia afisata pe cub de a realiza transmiterea semnalelor de comanda parti care se ocupa cu comanda cubului. Componeneta care controleaza aplicatia este defapt microcontrolerul PIC 16F688 prezentata in dreapta imaginii alaturate. Acesta transmite tranzistoarelor prin intermediul unui decodificator codul tranzistorului care va fi activ, cu alte cuvinte codul palierului active la un moment dat. In cazul aceste scheme se pune problema vitezei necesa pentru decodificarea a informatiei astfel incat comanda ledurilor sa fie facut cu o frecventa sufficient de mare pentru ca ochiul sa nu perceapa comanda ledurilor. In ceea ce priveste comanda efectiva a ledurilor aceasta se face folosind 2 drivere STP16CP05 prin indermediul caruia se comanda catodul fiecarui led anodul ledurilor fiind comandat folosind tranzistoarele sus amintite (BC 639). Din schema de mai sus se observa ca driverul trage la masa ledul al carui catod este comandat de aceea in proiectarea schemei s-a avut in vedere dimensionarea corecta a rezistentei de limitare a curentului prezenta in partea din stanga a driverelor (R= 680Ohm). Curentul printrun port al driverului va fi de:
b. Modul RS232
Modulul RS232 este realizat separat de cablajul principal deoaree nu are un rol functional major in realizarea animatiilor, comunicarea cu calculatorul fiind optionala. Pentru a avea o integritate a semnalelor cat mai buna s-a plasat in dreptul fiecarui integrat capacitati de decuplare de 100n respectiv 10u.
7 IC1 9 IC2,IC3 10 IC4 12 IC5 13 JP1, JP2, JP3, JP5 14 JP4 15 JP6 16 LED 1-25 18 19 20 21 22 OSC1 R1,R2 R3 R4 T1-5
19,54 2,85 0,09 4,2 0,09 0,53 2,05 4,365 11,25 10,34 7,01 0,12 0.25W 0,06 0.25W 0,06 0.25W 5,65 100,985
3.Cablaj Bottom
4. Cablaj Top
5. Assembly Top
6. Assembly Bottom
7. Dril Drawing
b. Modul RS232
10
8. Assembly Top
9. Drill Drawing
Pentru realizarea celor doua cablaje s-a ales un PCB dublu strat. Cablajele au fost proiectate dupa standardul 2C: THD pe top, SMD pe bottom. In cablajul principa s-a realizat un plan de masa in jurul circuitului de comanda cu scopul de a reduce impedantele de cuplaj prin minimizarea suprafetelor commune ale buclelor tur-retur tot acestea pentru a avea o integritate a semnalelor cat mai buna. Conectorul de alimentarea a fost ales pentru a permite alimentarea circuitului de la orice transformator acpabil sa furnizene o tensiune de 5V si un current de minim 1A
11
UNIVERSITATEA POLITEHNICA DIN TIMI OARA FACULTATEA DE ELECTRONIC 2.3 Realizare montaj a. Realizare CUB LED Montajul cubului LED este realizat in anod comun dupa cum se poate observa in figura de mai jos I TELECOMU NICA II
Pentru lipirea LED-urilor cat mai usor s-a realizat un sablon din lemn care permite realizarea unui cub cu o simetrie perfecta intre LED-uri.
12
13
CAP3. SOFTWARE
3.1 Organigarma
START Rutina aprindere CUB LED
Aprindere Planuri Y
Return
3.2 Cod
//RA2 - Latch Enable //RA1 - Serial Data In //RA0 - Clock
//functie pentru comanda palierului pe care se doreste afisarea //nr - numar palier pe care se doreste afisarea nr=1->5 int cod_palier(char nr) { if (nr==0) return 8; if (nr==1) return 12; if (nr==2) return 10; if (nr==3) return 14; if (nr==4) return 9; } //latch enable function for STP16CP05 void show (void){ PORTA = 0x04; //latch enable PORTA = 0x05; //clock -> front crescator pentru latch'uire PORTA = 0x00; } //functie pentru comanda individuala a cate unui led din cub void vox (char x, char y, char z){ char i; x=x+5*z; for (i=0;i<25;i++){
14
if (i==x) { PORTA=0x02; //trimitere 5 de 1 pentru aprinderea ledurilor de pe o linie de pe un plan PORTA=0x03; //clock -> front crescator pentru memorare } else { PORTA=0x01; //restul ledurilor sunt stinse PORTA=0x00; } } show(); PORTC = cod_palier(y); } void random(char x){ unsigned char i=0,count=0; for (i=0; i<25; i++){ if (i>=5*x && i<5*(x+1)) { // PORTA=0x02; //trimitere 5 de 1 pentru aprinderea ledurilor de pe o linie de pe un plan PORTA=0x03; //clock -> front crescator pentru memorare }else{ PORTA=0x01; //restul ledurilor sunt stinse //PORTA=0x00; } } show(); while (count<=25){ //comanda succesiva a palierelor pentru aprinderea a unei fete a ledului PORTC = cod_palier(0); delay_ms(4); PORTC = cod_palier(1); delay_ms(4); PORTC = cod_palier(2); delay_ms(4); PORTC = cod_palier(3); delay_ms(4); PORTC = cod_palier(4); delay_ms(4); count++; } } //aprinderea ledurilor de pe un plan y void plane_y(char plane){ char i; //contoare pentru numarul ledului aprins respectiv pentru numarul palierului aprins for (i=0; i<25; i++){ PORTA=0x03; //trimiterea bitilor pentru aprinderea tuturor ledurilor de pe un plan y; PORTA=0x02; } PORTA = 0x05; PORTC = cod_palier(plane); } //aprinderea ledurilor de pe un plan z void plane_z(int plane){ } //aprinderea succesiva a cate 1 led void led (void){ char i,j,k=0; //k - nr palierului de pe care va fi aprins ledul while (k<=4){ for (i=0;i<25;i++) {
15
for (j=0; j<25;j++) { if (i==j) {PORTA=0x02; PORTA=0x03;} else {PORTA=0x01; PORTA=0x00;} } show(); PORTC=cod_palier(k); delay_ms(50); } k++; } } void rain (void){ //declarare variabile functie char i,k,iter=0,x; plane_y(4); //aprind planul superior al cubului while (iter<=5){ x=floor(25*rand()); k=4; while (k>=0) { for (i=1;i<=25;i++){ if(i==x) {PORTA=0x03; PORTA=0x02;} else {PORTA=0x01; PORTA=0x00;} } show(); PORTC = cod_palier(k); plane_y(4); delay_ms(100); k--; } iter++; } } void main (void){ TRISA = 0x30; //setez RA0-RA3 ca iesiri RC4 - RC5 ca intrari TRISC = 0x20; //setez RC5 ca intrare restul ca iesiri OSCCON = 0x6E; //setez frecventa de oscilatie data de oscilatorul extern (4MHz) while (1){ int i,j,k,iter=0; for (i=0; i<5; i++){ random(i); } for (i=4; i>=0; i--){ random(i); } for (i=0; i<5; i++){ random(i); } for (i=0; i<5; i++){ plane_y(i); delay_ms(150); } for (i=4; i>=0; i--){ plane_y(i); delay_ms(150); } for (i=0; i<5; i++){ plane_y(i); delay_ms(150);
16
I TELECOMU NICA II
17
CAP4. ANEXE
4.1 Comanda STP16CP05
Imaginea prezentata anterior reprezinta modul in care trebuie sa fie comandate intrarile driverului pentru o functionare corecta. Aceasta a fost preluata din documentatia circuitului.
18
Avand in vedere aplicatia noastra si necesitatea de comanda a 5 iesiri din cele 8 ale decodificatorului. Codurile necesare pentru a fi prezente la intrarea decodificatorului sunt urmatoarele:
PALIER 1 0 0 0 1 PALIER 2 0 0 1 1 PALIER 3 0 1 0 1 PALIER 4 0 1 1 1 PALIER 5 1 0 0 1
19
20