Sunteți pe pagina 1din 21

UNIVERSITATEA POLITEHNICA DIN TIMI OARA FACULTATEA DE ELECTRONIC I TELECOMU NICA II

PROIECTDE PROCESOARE CUB LED 5x5x5

Studen i: Vesa Vlad (EA 2.1) Radi a Remus (EA 2.1) Prv nescu Alexandru (EA 2.1)

Coordonator As. Dr. Ing. Popescu Sorin

2011

UNIVERSITATEA POLITEHNICA DIN TIMI OARA FACULTATEA DE ELECTRONIC I TELECOMU NICA II

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

UNIVERSITATEA POLITEHNICA DIN TIMI OARA FACULTATEA DE ELECTRONIC I TELECOMU NICA II

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.

UNIVERSITATEA POLITEHNICA DIN TIMI OARA FACULTATEA DE ELECTRONIC I TELECOMU NICA II

1.1. Schema bloc a montajului


Driver 5

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

UNIVERSITATEA POLITEHNICA DIN TIMI OARA FACULTATEA DE ELECTRONIC I TELECOMU NICA II

CAP2. HARDWARE 2.1. Schema electronica a montajului


a.Cablaj principal

1. Schema electronica circuit comanda CUB LEDURI

UNIVERSITATEA POLITEHNICA DIN TIMI OARA FACULTATEA DE ELECTRONIC I TELECOMU NICA II

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:

UNIVERSITATEA POLITEHNICA DIN TIMI OARA FACULTATEA DE ELECTRONIC I TELECOMU NICA II

b. Modul RS232

2. Schema electronica circuit interfatare 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.

UNIVERSITATEA POLITEHNICA DIN TIMI OARA FACULTATEA DE ELECTRONIC I TELECOMU NICA II

2.2. Lista componente necesare (Bill of materials)


Nr. Crt 1 2 3 4 5 6 Referinta componenta C11 C13-16 C1-4, C17 C5-8, C12 C9,C10 D2 Valoare nominala 100uF 1uF 100nF 10uF 12pF LED 3mm - verde PIC 16F688 * Soclu STP16CP05M 74HC238 Soclu MAX 232 Soclu Connectoare placa MJ-179PH DB9-M LED 3mm - rosu Connectoare CUB 4MHz 680 Ohm 10K Ohm 270 Ohm BC635 BOM CUB LEDURI 5x5x5 Amprenta Furnizor Cantitate Cablaj FARNEL Radial 1 FARNEL Radial 4 FARNEL Radial 5 FARNEL Radial 5 FARNEL Radial 2 FARNEL T-1 1 FARNEL DIP-14 1 DIP-14 1 MIVAROM SO-24 FARNEL 2 (15.6x7.6mm) FARNEL DIP-16 1 DIP-16 1 MIVAROM FARNEL DIP-16 1 DIP-16 1 MIVAROM TME SIP 1 FARNEL DC-IN 1 TME DHP9-09M 1 T-1 125 MIVAROM FARNEL SIP-1P 2 FARNEL HC-49 1 FARNEL Axial 2 FARNEL Axial 1 FARNEL Axial 1 FARNEL TO-92 5 COD Furnizor 8126160 1848479 1141775 1753985 1834995 1208845 9760563 3187 1542235 2260025 3189 9589805 3189 ZL201-36G 1737246 DHP9-09M 2444 1218870 1368786 9339655 9339060 9339353 1700608 Pret (RON) Valoare 0,97 0,97 0,72 2,88 0,84 4,2 2,71 13,55 0,52 1,04 1,18 1,18 8,87 8,87 0,09 0,09 9,77 2,85 0,09 4,2 0,09 0,53 2,05 4,365 0,09 5,17 7,01 0,06 0,06 0,06 1,13 Observatii Electorlitic 100uF, 10V 1uF, 10V 100nF x7r 2,5mm Tantal 10V, 10uF, 5mm

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

UNIVERSITATEA POLITEHNICA DIN TIMI OARA FACULTATEA DE ELECTRONIC I TELECOMU NICA II

2.3. Cablaj imprimat


a. Cablaj principal

3.Cablaj Bottom

4. Cablaj Top

UNIVERSITATEA POLITEHNICA DIN TIMI OARA FACULTATEA DE ELECTRONIC I TELECOMU NICA II

5. Assembly Top

6. Assembly Bottom

UNIVERSITATEA POLITEHNICA DIN TIMI OARA FACULTATEA DE ELECTRONIC I TELECOMU NICA II

7. Dril Drawing

b. Modul RS232

10

UNIVERSITATEA POLITEHNICA DIN TIMI OARA FACULTATEA DE ELECTRONIC I TELECOMU NICA II

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

UNIVERSITATEA POLITEHNICA DIN TIMI OARA FACULTATEA DE ELECTRONIC I TELECOMU NICA II

b. Realizare montaj PCB

13

UNIVERSITATEA POLITEHNICA DIN TIMI OARA FACULTATEA DE ELECTRONIC I TELECOMU NICA II

CAP3. SOFTWARE
3.1 Organigarma
START Rutina aprindere CUB LED

INITIALIZARE (setare porturi I/O) (setare tip oscillator) (setare Registri)

Aprindere Linii Cub

Aprindere Planuri Y

Aprindere Ordonata Leduri Rutina aprindere CUB LED

Aprindere Aleatoare Leduri

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

UNIVERSITATEA POLITEHNICA DIN TIMI OARA FACULTATEA DE ELECTRONIC I TELECOMU NICA II

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

UNIVERSITATEA POLITEHNICA DIN TIMI OARA FACULTATEA DE ELECTRONIC I TELECOMU NICA II

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

UNIVERSITATEA POLITEHNICA DIN TIMI OARA FACULTATEA DE ELECTRONIC


} led(); while(iter<=5) { vox(1,1,1); delay_ms(100); vox(3,3,3); delay_ms(100); vox(1,1,3); delay_ms(100); vox(3,1,1); delay_ms(100); vox(0,0,1); delay_ms(100); vox(3,1,0); delay_ms(100); vox(4,0,4); delay_ms(100); vox(3,0,2); delay_ms(100); vox(4,4,4); delay_ms(100); vox(3,4,1); delay_ms(100); vox(2,4,3); delay_ms(100); iter++; } } }

I TELECOMU NICA II

17

UNIVERSITATEA POLITEHNICA DIN TIMI OARA FACULTATEA DE ELECTRONIC I TELECOMU NICA II

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.

4.2 Comanda 74HC238


In figura de mai jos se prezinta tabelul de adevar pentru comanda unui astfel de cictuit.

18

UNIVERSITATEA POLITEHNICA DIN TIMI OARA FACULTATEA DE ELECTRONIC I TELECOMU NICA II

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

A2(RC0) A1(RC1) A0(RC2) E3(RC3)

4.3 Registri PIC 16F688

19

UNIVERSITATEA POLITEHNICA DIN TIMI OARA FACULTATEA DE ELECTRONIC I TELECOMU NICA II

20