Sari la conținut
ELFORUM - Forumul electronistilor

4 leduri RGB comandate cu PIC16F628


Vizitator dusmanu

Postări Recomandate

Vizitator 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 spre comentariu
  • Răspunsuri 30
  • Creat
  • Ultimul Răspuns

Top autori în acest subiect

  • kit

    7

  • puiu

    6

  • fratello

    1

Top autori în acest subiect

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 spre comentariu
  • 1 lună mai târziu...
Vizitator 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 spre comentariu

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 spre comentariu
Vizitator 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 spre comentariu
Vizitator 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 spre comentariu

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 spre comentariu

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 spre comentariu

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 spre comentariu
Vizitator 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 spre comentariu

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 spre comentariu

Creează un cont sau autentifică-te pentru a adăuga comentariu

Trebuie să fi un membru pentru a putea lăsa un comentariu.

Creează un cont

Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!

Înregistrează un nou cont

Autentificare

Ai deja un cont? Autentifică-te aici.

Autentifică-te acum



×
×
  • Creează nouă...

Informații Importante

Am plasat cookie-uri pe dispozitivul tău pentru a îmbunătății navigarea pe acest site. Poți modifica setările cookie, altfel considerăm că ești de acord să continui.Termeni de Utilizare si Ghidări