Jump to content
ELFORUM - Forumul electronistilor

4 leduri RGB comandate cu PIC16F628


Guest dusmanu

Recommended Posts

Guest dusmanu

Buna ziua am de facut o placuta pentru un proiect la facultate si am nevoie de putin ajutor daca se poate.

Trebuie sa "proiectez" schema pentru comandarea a 4 leduri RGB cu ajutorul unui PIC16F628 si dupa aia sa fac un programel in asamblare sa ma joc cu ledurile alea . Am gasit ceva pe net cu 8 leduri si am incercat sa modific schema pentru 4 leduri insa nu stiu daca am modificat bine si nu stiu cum sa calculez niste rezistente.

Aici e schema modificata da mine(pdf si fisierul din altium):

http://dl.transfer.ro/4rgb-transfer_RO-12nov-91a698.rar

Ma poate ajuta cineva cu verificarea schemei si niste indicatii cum sa calculez rezistentele alea?

Multumesc anticipat

Link to comment
  • Replies 30
  • Created
  • Last Reply

Top Posters In This Topic

  • kit

    7

  • puiu

    6

  • fratello

    1

1. Trebuie sa tii cont ca porturile lui PIC in general merg la 20 mA, deci curentul maxim este de 20 mA. Tesiunea LED de regula se ia din dataschetul LED dar este de 1,8 V pana la 3 V(de obicei la cele verzi). Apoi un taranzistor in conductie EC are o cadere de regula 0,2V. De unde rezulta de regula o tensiune de 5 V-1,8V-0,2V=3V care trebuie sa cada pe rezistenta pentru limitarea curentului la 20 mA. Ar rezulta 150 ohmi. E un exemplu de calcul care presupune ca iesiririle nu sunt mixate si LED primeste tensiune tot timpul cat se vrea aprins. De regula se ia o valoare mai mare, deci 180 sau 220 de ohmi pentru verificare.

Link to comment
  • 1 month later...
Guest dusmanu

am reusit sa fac schema,am facut si cablajul iar acu trebuie sa programez picul insa nu stiu exact cum sa comand ledurile... sa aprind ledurile ca pe niste leduri normale cred ca stiu cum insa cu rgburile nu am nici o idee.Ma poate ajuta cineva cu niste linkuri sau cu un mic cod ca exemplu(explicata fiecare comanda daca se poate).Schema finala este urmatoarea :multumesc

Link to comment

1. Nu crezi ca rezistentele R1,R2 si R3, adica cele din colectorul tranzistoarelor, ar trebui sa le pui pe pini de la PIC? (RA0-RA3) Iluminarea ledurilor este dependenta de comanda, deoarece caderea de tensiune de pe aceasta rezistenta, este dependenta de cate leduri sunt comandate(1-4).2. Nu crezi ca coloanele s-ar comanda mai bine daca ar fi toate pe PORTB?

Link to comment
Guest dusmanu

Nu am prea multe cunostinte insa cand am facut schema m-am gandit ca o sa aprind cate un led pe rand si si am calculat rezistentele pt aprinderea unui singur led.Iar in privinta porturilor aveti perfecta dreptate. Eu cand am facut cablajul nu m-am gandit si la softul picului...iar cand m-am dus cu schema la prof sa i-o arat a spus ca schema e functionabila...Acu e cam nasol sa refac toata schema avand in vedere ca am lipit si piesele si dupa vacanta tre sa prezint placuta.Eu am facut un mic programel in care aprind ledurile rgb ca pe niste leduri normale. Trebuie sa mai fac rost de un programator si sa incarc codul... insa nu stiu absolut deloc cum ar trebui sa comand rgburile. Acu ma intreb daca se pot comanda cu schema care am facuto

Link to comment
Guest dusmanu

Am gasit si eu linkul ala insa nivelul meu de cunostinte pentru programare in asambler nu prea ma ajuta sa inteleg ce e acolo. Imi trebuie ceva simplu sa inteleg cum se controleaza rgburile astea si dupa aia sa incerc singur sa fac un programel mai lung.

Link to comment

in cazul tau, daca aprinzi un singur led pe coloana vei avea un anume consum, iar daca aprinzi toate ledurile de pe o coloana vei avea un consum mai mare. asta duce la o cadere de tensiune pe R1-3 mai mare, deci la o luminozitate mai mica a ledurilor. cat de mare? nu foarte mare. scapai de asta daca distribuiai rezistelele pe RA0-3, dar nu cred ca-i mare bai.

oricum, pentru a evita asta, ar fi bine sa faci multiplexarea si pe coloana, adica sa aprinzi ledurile LEDx, pe rand. in continuare presupun ca n-o sa faci asta.

dupa aia trebuie sa ai grija ca sa nu aprinzi toate componentele unui led deodata ci secvential, intai rosu, apoi verde si apoi albastru, pentru a nu depasi consumul admisibil pe RA0-3 (20mA).

multiplexarea presupune: pe o anumita perioada de timp T vei aprinde secvential toate ledurile din dotare. T este data de inertia ochiului uman, pentru ca sa nu vezi 'flicaind' ledurile. o frecventa de 100 Hz este mai mult decat suficienta (merge si la 50Hz), rezulta 10 ms perioada in care trebuie sa aprinzi toate ledurile (coloanele), pe rand. rezulta cam 3 ms cat sta o coloana aprinsa. aceste 3 ms le vei obtine cu o intrerupere pe un timer, oricare vrei tu (cred ca unul pe 16 biti mai degraba, cu prescaler activat; daca nu, poti sa scazi fara jena intervalul, ideea e sa nu fie mai mare, ca deranjeaza la ochi).

de fiecare data cand apare o intrerupere vei stinge coloana curenta si vei aprinde urmatoarea coloana. vei obtine probabil culoarea alba, rosie, verde si albastra (plus combinatii intre ultimele trei) fara probleme. Nuantele le-ai putea obtine din cate leduri dintr-o coloana (culoare) aprinzi la un moment dat, dar astea-s chestiuni de finete.

tot ce am spus mai sus vine cam asa:

coloane:R____G____B____R____G____B ...RA7__RA6__RB3_RA7__RA6__RB3 ...3ms_3ms_3ms___3ms_3ms_3ms_ ...1____1____1____1____1____1 obtii alb1____0____0____1____0____0 obtii rosu0____1____0____0____1____0 obtii verde0____0____1____0____1____0 obtii albastru
doar o singura culoare poate fi activa la un moment dat!!! altfel poti depasi curentul maxim admis pe RA0-3.

iar de fiecare data cand aprinzi o coloana setezi RA0-3. le resetezi cand stingi coloana.

daca n-ai inteles, spune, voi incerca sa fiu mai explicit.

spor, iar dupa aia, daca mai incape, sarbatori fericite!

Link to comment

dar sa pornesti sa mearga 16f628 in regim de oscilator intern stii? apoi, sa aprinzi si sa stingi un led stii?dupa aia, stii sigur ca ai 16f628 si nu 16f628A? te intreb, nu de alta, dar sa stiu cat stii ca sa stiu cum sa te fac sa stii... stii...

Link to comment

prietene, greu, greu tare...16F628!=16F628A (!!!) in atasament am pus cam tot ce ai nevoie pana la gestiunea aprinderii ledurilor, cu comentariile de rigoare. daca pana aici nu ai priceput, spune.ce n-am priceput eu este exact ce ai vrut sa faci cu montajul asta, cum anume vrei sa functioneze. fii te rog mai explicitspor!PS: pana la postare, am editat de vreo 5-6x comentariul meu. prima forma era foarte 'spumoasa', ca sa zic asa, cunoscatorii stiu de ce. codul l-am rulat in debuger, pare a fi ok.

Link to comment
Guest dusmanu

Multumesc pentru informatii.Cu montajul nu trebuie sa fac ceva anume. trebuie sa fac un joculet de lumini cu acele 4 rgb-uri de exemplu sa arpind ledurile in felul urmator:rgb1 rozrgb2 marorgb3 movrgb4 verdeledurile sa se aprinda 1 secunda apoi sa se stinga 1secunda si bucla sa se repedeasta e un exemplu. culorile pot sa fie oricareMultumesc

Link to comment

1. Vezi ca in schema ai scris ca este PIC16F628-04P, iar in realitate sustii ca este PIC16F628A nu stim la care frecventa. Dupa notatile din schema se pare ca ai un PIC16F628 fara A si care merge numai pina la 4 MHz si in capsula obisnuita cu pini.

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now



×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.Terms of Use si Guidelines