hjälp: Datorkontrollerat ljus

Elektronikrelaterade (på komponentnivå) frågor och funderingar.
th
Inlägg: 6
Blev medlem: 2 december 2007, 20:21:55
Ort: skåne

hjälp: Datorkontrollerat ljus

Inlägg av th »

Hej.
Jag vill bygga en matris med lampor eller LEDs som jag kan koppla till någon port på datorn (usb eller typ skrivarporten).
Lamporna måste gå att kontrollera individuellt, de kan alltså inte vara seriekopplade.
Sen ska det ju gärna vara en del lampor också, typ 5x10 eller så.

Tanken är att jag sedan ska skriva ett program i C, eller C++ som sedan kontrollerar matrisen. Programmeringen har jag inga problem med då jag är ganska skicklig programmerare, det är byggandet av matrisen som är problemet.

Någon som kan hjälpa mig med detta?
Användarvisningsbild
JimmyAndersson
Inlägg: 26586
Blev medlem: 6 augusti 2005, 21:23:33
Ort: Oskarshamn (En bit utanför)
Kontakt:

Inlägg av JimmyAndersson »

Jag gjorde just det här schemat till en liknande grejj:

Bild

Det fungerar fint även för lampor.

Vill man tända LED18 så kopplar man in spänning på COL_3 och kopplar RAD_4 till GND.

edit:
Tyvärr finns det inte så många utgångar som behövs på parallellporten (som har flest utgångar), men det finns andra sätt att lösa det. En variant är att koppla en A/D-omvandlare till serie-porten och koppla någon form av drivning (t.ex en transistor) mellan matris-kopplingen och A/D-omvandlaren.

edit 2: Råkade byta plats på RAD_4 och COL_3 i texten ovan.
Senast redigerad av JimmyAndersson 2 december 2007, 21:29:31, redigerad totalt 1 gång.
th
Inlägg: 6
Blev medlem: 2 december 2007, 20:21:55
Ort: skåne

Inlägg av th »

perfekt, tror jag kan lösa detta med hjälp av en annan guide jag hittade på nätet.

Blev lite knepigare när jag läste din edit, inte speciellt kunnig när det gäller elektronik
Senast redigerad av th 2 december 2007, 21:15:18, redigerad totalt 1 gång.
Användarvisningsbild
MadModder
Co Admin
Inlägg: 31559
Blev medlem: 6 september 2003, 13:32:07
Ort: MadLand (Enköping)
Kontakt:

Inlägg av MadModder »

Vill man verkligen styra varje lampa individuellt utan att scanna genom en matris, fixar man det enkelt med lite latchar.
Först de 8 bitarna i parallellporten, och så har man 4 styrsignaler utöver det. 3 av dessa 4 bitar till en 3-till-8-linje demultiplexer, och den fjärde som klocka. Så har jag till ett styrkort i en 486:a, och jag får då 64 individuella bitar. :)

finns i det här schemat. De intressanta delarna är U2, U3 och U4. De utgör själva styrningen. U2 och U3 är bara buffrar för att avlasta parallellporten. Sen på varje "kanal" måste man ha U1 i det här schemat. Blir ganska många kretsar...
Funkar som så att först sätter man de 8 databitarna, sen väljer man kanal med de 3 styrbitarna, och sen klockar man ut detta med den fjärde biten. Sen är de bitarna så tills nästa gång man väljer att ändra. :)
th
Inlägg: 6
Blev medlem: 2 december 2007, 20:21:55
Ort: skåne

Inlägg av th »

MadModder: nu blev jag helt borta
Användarvisningsbild
MadModder
Co Admin
Inlägg: 31559
Blev medlem: 6 september 2003, 13:32:07
Ort: MadLand (Enköping)
Kontakt:

Inlägg av MadModder »

Så blir det när man inte ska ha nån PIC eller så inblandad. Då blir det många IC-krestar. Riktiga män gör det med logik... :lol:

Alltså, de 8 databitarna (pin 2-9) är parallellkopplade till alla åtta 74374.
Tre bitar styr en 74238. De 8 utbitarna från den går till varsin 74374. Man kan då med tre bitar styra vilken 74374 man vill ändra bitarna på.
Den sista biten från porten är kopplad till aktiveringsingången på 74238.
När man ställt databitarna och valt krets, klockar man sista biten, och en klockpuls styrs ut till rätt krets, som då latchar in databitarna på sina utgångar och låser dem där. Tadaa! Ett 64bits minne...
Användarvisningsbild
JimmyAndersson
Inlägg: 26586
Blev medlem: 6 augusti 2005, 21:23:33
Ort: Oskarshamn (En bit utanför)
Kontakt:

Inlägg av JimmyAndersson »

Så sant. :D

Men det är en riktigt snygg lösning. :)
th
Inlägg: 6
Blev medlem: 2 december 2007, 20:21:55
Ort: skåne

Inlägg av th »

Borde jag inte kunna programmera någon krets som kör ett test, och sen skickar ström på något sätt som tänder rätt lampa?

Tänkte att man kör med binärkod för att styra lamporna då.
har jag 8 portar (skrivarkabel) jag kan skicka ström från på datorn så kan jag ha en otrolig massa lampor.

00000001 = 1, lampa nr1
00000011 = 3, lampa nr3
10000001 = 65, lampa nr65
11111111 = 64+32+16+8+4+2+1 = 127, lampa nr127

1=ström på
0=ström av

if(port1 == true)
{
//tänd lampa 1
}
if(port1 == true && port2 == true)
{
//tänd lampa 3
}
if(port1 == true && port2 == true && port3 == true /.../ && port8 == true)
{
//tänd lampa 127
}
Användarvisningsbild
MadModder
Co Admin
Inlägg: 31559
Blev medlem: 6 september 2003, 13:32:07
Ort: MadLand (Enköping)
Kontakt:

Inlägg av MadModder »

Då kan du bara ha en enda lampa åt gången tänd. Du måste ha någon krets som håller kvar biten också, och du måste ha en klocksignal som talar om NÄR det är dags att ändra. Och förresten blir det 255 med 8 ettor. ;)
Vet ingen krets som har så många utgångar. Du måste använda latchar som minneskretsar om du ska ha så många lampor. Om du inte ska scanna genom en matris då.

Du har 12 bitar att tillgå som utgångar i parallellporten...
Användarvisningsbild
maha
EF Sponsor
Inlägg: 1685
Blev medlem: 22 november 2005, 09:47:02
Ort: Jakobstad, Finland

Inlägg av maha »

En av Sodjans LED-matriser hade ju inte varit helt fel här. De kan man ju koppla in rakt på parallellporten om man vill, bara programmeringen kvar.
Användarvisningsbild
anlamotte
Inlägg: 859
Blev medlem: 5 augusti 2003, 15:54:34
Ort: Stockholm
Kontakt:

Inlägg av anlamotte »

Det finns något liknande som använder ett plugin till winamp...

http://discolitez.com/
Titta under hardware -> deluxe för schema
Användarvisningsbild
MadModder
Co Admin
Inlägg: 31559
Blev medlem: 6 september 2003, 13:32:07
Ort: MadLand (Enköping)
Kontakt:

Inlägg av MadModder »

Ja, discolitez. funkar ungefär så som jag förklarade med latchar.
http://discolitez.com/pmwiki/pmwiki.php ... e.Deluxe32
th
Inlägg: 6
Blev medlem: 2 december 2007, 20:21:55
Ort: skåne

Inlägg av th »

MadModder skrev:Och förresten blir det 255 med 8 ettor. ;)
ja, så sant så.. glömde den första ettan på 128.
MadModder skrev:Du har 12 bitar att tillgå som utgångar i parallellporten...
Men, då kan jag göra som JimmyAndersson skrev, jag kan ha 12 kolumer bara jag har jordat alla raderna, eller hur?

edit: det går ju inte kom jag på, eftersom jag då skulle tända en hel rad då jag inte kan styra 12 jordningar på parallellporten.

men, 7*7 borde fungera.

edit2:
eller 12*7
limpan4all
Inlägg: 8461
Blev medlem: 15 april 2006, 18:57:29
Ort: Typ Nyköping

Inlägg av limpan4all »

Använd en MAX7221, då får du tre pinnar mot PC´n och möjlighet till 64 lysdioder. Ytterligare 64 lysdioder kräver bara ytterligare en pinne mot PC´n osv. så på bara de 8 databitarna på en parallellport får man 384 lysdioder maximalt.

EDIT: Använd en MAX7219 och kaskadkoppla alla kretsarna (DOUT till DIN på nästa SCLK och LOAD till alla). Och med en kollektiv LOAD-signal så klara du dig på 3 pinnar mot PC´n och har inga begränsningar i antalet lysdioder.
Användarvisningsbild
MadModder
Co Admin
Inlägg: 31559
Blev medlem: 6 september 2003, 13:32:07
Ort: MadLand (Enköping)
Kontakt:

Inlägg av MadModder »

Var får du dom där 7 ifrån då i 12*7?
En matris måste styras med både rader och kolumner. Utan extra logikkretsar är det största antalet lampor 36, 6*6.
Använder du klockade räknare (t.ex. 4017) kan du i princip bygga upp en oändligt lång matris som är 11 hög. En bit måste användas som klocka.
Skriv svar