PIC-styrd LED-matris

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
sodjan
EF Sponsor
Inlägg: 43231
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: PIC-styrd LED-matris

Inlägg av sodjan »

> (det finns ju bara två lägen på en out-put pinne)

Ja, jo, om man driver det statiskt (on/off). Då är det bara att anpassa
motstånden för respektive typ av lysdiod. Jag tänkte kanske mer på en
PWM drivning. Alltså där lysdioderna pulsas (med kasnke 100 Hz eller så)
och där man justerar pulsförhållandet ("duty cycle") för att justera ljussstyrkan.
Men det blir lite mer komplex programvara än en ren on/off styrning...
Användarvisningsbild
Borgen
Inlägg: 39
Blev medlem: 21 januari 2009, 17:50:43
Skype: henrikborg
Ort: Botkyrka
Kontakt:

Re: PIC-styrd LED-matris

Inlägg av Borgen »

Angående Ditt problem med att få lysdioderna att lysa ordentligt. Jag har ett liknande problem. Mitt problem är att få alla dioderna, oavsett färg att lysa lika starkt.

På ELFA fann jag två intressanta kretsar för detta. Dessa kan även lösa Ditt problem med för få I/O-pinnar. Kretsarna är LED-drivkretsar av typen shiftregister med seriell ingång.
73-337-35 8 bitar
73-337-43 16 bitar
Båda är stackbara så till vida att de har en datautgång som kan kopplas vidare till nästa chips dataingång. Med tre I/O-pinnar (fyra med OE, Output Enable) på PIC:en kan Du då styra ett mycket stort antal lysdioder.

I kretsen finns det en strömregulator som styrs med ett yttre motstånd. Det yttre moståndet avgör hur stor ström utgångarna kommer leverera, samma storlek på strömmen på samtliga utgångar, upp till 90 mA. De dioder som kretsarna kan hantera har ett spänningsfall mellan 0.9-4.0 V. Man kan koppla in olika typer av lysdiodrar till en och samma krets, men då kan de också lysa olika starkt beroende på att olika typer av dioder emiterar olika mycket ljus vid samma ström, lägg därtill att ögat har olika perception för olika våglängder.

Hur detta löser problemet med olika typer av lysdiodrar:
Koppla alla dioder av samma typ till ett chip och anpassa strömregulatormotståndet efter dessa och koppla alla dioder av den andra typen till nästa chip och anpassa strömregulatormotståndet efter dessa osv. Viola, Ditt problem med olika typer av lysdiodrar i Ditt projekt är ett minne blott ;) och om Du är nogrann med strömbegränsningsmotstånden kan Du få de att lysa ungefär lika starkt :bravo:

Hur man shiftar in data:
Data kan shiftas in med upp till 20 Mhz (tror de menar 20 Mbit/s :humm:). I kaskadkoppling ligger max på 10 Mhz (tror de menar 10 Mbit/s :humm:).
Först shiftar man in bitarna med Serial Data In och Clock.
Sedan ändrar man Latch Enable från låg till hög och bitarna shiftas då från det "inre" registret till utgångarna.
På det viset kan man shifta in nya bitar utan att utgångarna antar felaktiga värden under tiden.

När Output Enable är låg är utgångarna aktiva, och när Output Enable är hög är utgångarna inaktiva, ej inkopplade. På så sätt kan man "tända" och "släcka" samtliga utgångar utan att dessa förlorar sina lagrade värden. En rutin för att få Din diodfigur att blinka blir då nästan löjligt enkel, OE låg eller hög :D


Lästips i manualen för seriell data, avseende PIC16F631/677/685/687/689/690:
Kapitel 13.0-13.5.
Du kommer ha Din PIC i Master Mode.

Bild

Äntligen! Mitt första inlägg på detta forum :P

Edit: Rättade det språkliga. Var tydligen för trött när jag skrev inlägget så det blev lite otydligt med vad jag menade.
Senast redigerad av Borgen 28 juli 2009, 16:42:38, redigerad totalt 2 gånger.
sodjan
EF Sponsor
Inlägg: 43231
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: PIC-styrd LED-matris

Inlägg av sodjan »

För ELFA länkar, skriv bara artikelnumret så fixar forumet själv länkarna.
De länkar du postade är kopplade till den session du hade och fungerar
alltså inte för någon annan än dig, just då...

73-337-35 8 bitar
73-337-43 16 bitar
Användarvisningsbild
vfr
EF Sponsor
Inlägg: 3515
Blev medlem: 31 mars 2005, 17:55:45
Ort: Kungsbacka

Re: PIC-styrd LED-matris

Inlägg av vfr »

Detta förutsätter dock att de olika färgerna lyser lika starkt, och upplevs lysa lika starkt, med lika ström. Annars måste man ändå kompensera för det. Men oavsett så har man ju tagit bort en felorsak iallafall, nämligen beroendet av framspänningfallet.
Användarvisningsbild
Borgen
Inlägg: 39
Blev medlem: 21 januari 2009, 17:50:43
Skype: henrikborg
Ort: Botkyrka
Kontakt:

Re: PIC-styrd LED-matris

Inlägg av Borgen »

Sodjan: Tack. Det hade jag inte en aning om. Ett utmärkt tillägg till forumet jag inte sett någon annan stans.

Vfr: När jag nu korrigerat det språkliga i texten framgår det tydligare hur man kan göra för att det inte ska vara något problem när man har många lysdioder av några få typer i ett projekt. Men har man 7 dioder av 4 sorter kanske det finns bättre alternativ, beror då på fler faktorer.
Användarvisningsbild
sebgus
Inlägg: 408
Blev medlem: 11 december 2007, 09:51:17
Ort: Göteborg

Re: PIC-styrd LED-matris

Inlägg av sebgus »

Såhär gjorde jag för att ligga och lyssna på en knapp:

Kod: Markera allt

movlw	      0x00 ; Nollställer temp
movwf	      temp
movf	       portd,0 ;Flyttar värdet från portd till temp
movwf	      temp

movlw	      0x01 ; Lägger värdet 1 i w-reg
subwf	      temp,0 ;Subtraherar temp med w-reg, tänder ev. z-flagga (zero-flagga)
btfsc	      status,2 ; Kollar z-flaggan, hoppar om den är ett
goto	       klass2
Hoppas det hjälpte något!

Egentligen behövs inte temp-registret men har för mig att jag hade något problem om jag inte använde det!

EDIT: Oj! Missade två sidor av tråden, såg inte att han hade löst det på ett bra sätt. Missade även att det var en gammal tråd :doh:
Morgontrötthet....
Skriv svar