LED matris styrd av NE555>4029B>4051B...
- Greensilver
- Inlägg: 1305
- Blev medlem: 21 januari 2005, 21:24:57
- Ort: Sverige
- Kontakt:
LED matris styrd av NE555>4029B>4051B...
För att bekanta mig lite med IC-kretsar hade jag tänkt bygga en 8x8 LED-matris (själva matrisen köper jag färdig).
Vad tror ni om följande - kommer det att funka?
En NE555 som skapar en klockpuls, denna går till en 4029B som delar upp signalen till två;
(Q0=1:2) som leds vidare till en multiplexer för X-led,
samt
(Q3=1:8) som leds vidare till en multiplexer för Y-led.
EDIT: Antar att jag skall skippa Q0 och skicka NE555:ans puls direkt för X-led...
Den ena 4029B får INPUT=0V och den andra får INPUT=+5V.
Om man kör igång denna borde ju en lysande "prick" vandra från vänster till höger, rad för rad ända tills den nått längst ned till höger då den startar om.
Om jag har fattat saker och ting rätt kan vi nu försöka kika på nästa "problem";
Jag skulle vilja att den ena 4029B får sin information från någon typ av minne. På det sättet blir det väl möjligt att rita upp lite mer avancerade saker. Vad kan jag använda som minne?
Kikade på DIP-switchar på ELFA men det blir både dyrt och tråkigt...
Alla tips och synpunkter mottages tacksamt - tänk på att jag är helt färsk på digitalteknik - började läsa om detta i fredags. :lol: Trodde aldrig att jag skulle lägga tid på att dregla över pin-outs på Elfas hemsidor...
Vad tror ni om följande - kommer det att funka?
En NE555 som skapar en klockpuls, denna går till en 4029B som delar upp signalen till två;
(Q0=1:2) som leds vidare till en multiplexer för X-led,
samt
(Q3=1:8) som leds vidare till en multiplexer för Y-led.
EDIT: Antar att jag skall skippa Q0 och skicka NE555:ans puls direkt för X-led...
Den ena 4029B får INPUT=0V och den andra får INPUT=+5V.
Om man kör igång denna borde ju en lysande "prick" vandra från vänster till höger, rad för rad ända tills den nått längst ned till höger då den startar om.
Om jag har fattat saker och ting rätt kan vi nu försöka kika på nästa "problem";
Jag skulle vilja att den ena 4029B får sin information från någon typ av minne. På det sättet blir det väl möjligt att rita upp lite mer avancerade saker. Vad kan jag använda som minne?
Kikade på DIP-switchar på ELFA men det blir både dyrt och tråkigt...
Alla tips och synpunkter mottages tacksamt - tänk på att jag är helt färsk på digitalteknik - började läsa om detta i fredags. :lol: Trodde aldrig att jag skulle lägga tid på att dregla över pin-outs på Elfas hemsidor...
- Greensilver
- Inlägg: 1305
- Blev medlem: 21 januari 2005, 21:24:57
- Ort: Sverige
- Kontakt:
Du vill nog inte att matrisen tänds LED för LED, utan snarare rad för rad. Annars måste du upp i uppdateringshastighet och ljusstyrka på LED:arna för att det ska se bra ut.
Kan du inte bara ta ett byte-orienterat SRAM och låta radräknaren välja en minnesaddress som skickas ut till LED-drivare.
"Problemet" blir väl att fylla RAM:et. Låter du displayen vara släckt nån mS varje "varv" så kan du låta en mikroprocessor skriva in grejer.
Kan du inte bara ta ett byte-orienterat SRAM och låta radräknaren välja en minnesaddress som skickas ut till LED-drivare.
"Problemet" blir väl att fylla RAM:et. Låter du displayen vara släckt nån mS varje "varv" så kan du låta en mikroprocessor skriva in grejer.
- Schnegelwerfer
- Inlägg: 1863
- Blev medlem: 8 november 2004, 13:46:56
Om man ändå har en uC så kan man ju låta den göra hela jobbet!
Jag byggde en grej som skickade ut seriell data från ett vanligt EPROM förut. Det kan man fixa med räknare, skiftregister, och avkodare utan att blanda in någon uC.
Räknaren kan direkt adressera byte för byte i EPROM:et, och räknare kan du driva med en 555:a eller kristalloscillator.
Avkodaren använde jag för att via en vridomkopplare ställa in startadress i EPROM:et. Jag kunde då välja olika block med data som klockades ut från en extern klocksignal.
Jag byggde en grej som skickade ut seriell data från ett vanligt EPROM förut. Det kan man fixa med räknare, skiftregister, och avkodare utan att blanda in någon uC.
Räknaren kan direkt adressera byte för byte i EPROM:et, och räknare kan du driva med en 555:a eller kristalloscillator.
Avkodaren använde jag för att via en vridomkopplare ställa in startadress i EPROM:et. Jag kunde då välja olika block med data som klockades ut från en extern klocksignal.
Jag förstår din tanke men ska jag vara ärlig kommer du att skjuta gråsparv med kanon, lite överkurs alltså.
Jag har gjort ett produkt här på jobbet som består av en PIC16C63 som driver en 8x5 matris med LED. Detta modul finns i olika storleker (130 mm & 320 mm) och i PIC'en finns karaktärtabell så nu kan jag med seriell gränssnitt skriva 128 bokstäver och regulera intensiteten i 127 steg.
Ut över PIC'en finns det lite transistorer och lite nivå-omvandlare för in- och utgånger.
För att få ditt projekt att lyckas med möjlighet att lägga in olika mönster osv behöver du någon form av processor eller en koppling som kan fylla en SRAM med det mönster som du matar in via t.ex. en DIP-switch. Du kan t.ex. ha 8 knapper, en för varje kolumn, mata in ett mönster i DIP-switchen och sen trycka på den kolumn-knapp som det ska in i, detta vill trigga ett skriv-signal så länge knappen hållas inne.
Det blir ganska avangerat och som sagt overkill men om det är för att du vill lära dig av det kan det vara en idé att gå den vägen t.ex.
Jag har gjort ett produkt här på jobbet som består av en PIC16C63 som driver en 8x5 matris med LED. Detta modul finns i olika storleker (130 mm & 320 mm) och i PIC'en finns karaktärtabell så nu kan jag med seriell gränssnitt skriva 128 bokstäver och regulera intensiteten i 127 steg.
Ut över PIC'en finns det lite transistorer och lite nivå-omvandlare för in- och utgånger.
För att få ditt projekt att lyckas med möjlighet att lägga in olika mönster osv behöver du någon form av processor eller en koppling som kan fylla en SRAM med det mönster som du matar in via t.ex. en DIP-switch. Du kan t.ex. ha 8 knapper, en för varje kolumn, mata in ett mönster i DIP-switchen och sen trycka på den kolumn-knapp som det ska in i, detta vill trigga ett skriv-signal så länge knappen hållas inne.
Det blir ganska avangerat och som sagt overkill men om det är för att du vill lära dig av det kan det vara en idé att gå den vägen t.ex.
Vad kul, det här är ju nästan exakt vad jag håller på och pillar med på min CPLD-utvecklingsplatta ... Fast DET blir väl overkill för din del antar jag (även om tomma cpld:er är skitbilliga, US$1,70/st). Hur som helst är det extremt smidigt att rita allt man vill ha och sedan bara testa det utan att behöva löda en massa.
- Greensilver
- Inlägg: 1305
- Blev medlem: 21 januari 2005, 21:24:57
- Ort: Sverige
- Kontakt:
Tack för alla svar!
Schnegel, $tiff och Icecap:
Angående uC:
Målet är att lära mig använda dessa i sinom tid - men jag har en bra bit kvar innan jag vågar ge mig på det. Jag måste lära mig lite vanlig digitalteknik först. Beställde två "läroböcker" med lite komponenter från Kjell o Co. Fick hem dessa i förrgår - Tronix heter dom. Första boken gjorde jag på en kväll. Den innehöll egentligen inget (för mig) nytt förutom NE555 som jag aldrig pillat med förut. Dock var det mycket givande ändå att leka lite med en Breadboard (som jag aldrig använt förut). Snacka om lätt att jobba med jämfört med att löda allting!
Nu har jag så smått börjat med den andra boken som handlar om digitalteknik. Det känns ändå ganska "lätt" eftersom jag har en del tidigare erfarenhet av programmering - det känns som om jag redan har rätt "tänk", dessutom har jag inga problem med matten. Förra gången jag pluggade elektronik var på gymnasiet och då var väl mina mattekunskaper minst sagt begränsade...
Hur som helst så har jag fått blodad tand av laborationerna i boken och vill testa att leka runt lite själv - känns som att det är ett bra sätt att lära sig på så att man får förståelse för hur det skall fungera och hur man bör tänka.
monstrum:
Ok, hur kan jag uppdatera mer än en LED i taget? Jag tänkte att om man bara kör kretsen tillräckligt fort så ser man inte att det blinkar.
Angående att "programmera" minnet. Jag tänkte att sätta en stor konding parallellt med den lilla kondingen i NE555 kretsen. Den stora kondingen skall gå att koppla från med en DIP-switch. På det sättet kan man minska hastigheten ganska mycket. Sedan får man väl försöka fixa så att man kan sätta bitarna exempelvis genom en liten knapp. Exakt hur vet jag inte då jag inte vet hur det fungerar med minnet. (kan inget om minnen)
Icecap:
Du skriver om en koppling för att fylla ett RAM - just så vill jag försöka göra. Har du (eller någon annan) exempel på en sådan?
Så enkel att förstå som möjligt helst...
DennisD7:
CPLD vet jag inte vad det är, finns de på Elfa eller Kjell?
Berätta gärna mer!

Schnegel, $tiff och Icecap:
Angående uC:
Målet är att lära mig använda dessa i sinom tid - men jag har en bra bit kvar innan jag vågar ge mig på det. Jag måste lära mig lite vanlig digitalteknik först. Beställde två "läroböcker" med lite komponenter från Kjell o Co. Fick hem dessa i förrgår - Tronix heter dom. Första boken gjorde jag på en kväll. Den innehöll egentligen inget (för mig) nytt förutom NE555 som jag aldrig pillat med förut. Dock var det mycket givande ändå att leka lite med en Breadboard (som jag aldrig använt förut). Snacka om lätt att jobba med jämfört med att löda allting!

Nu har jag så smått börjat med den andra boken som handlar om digitalteknik. Det känns ändå ganska "lätt" eftersom jag har en del tidigare erfarenhet av programmering - det känns som om jag redan har rätt "tänk", dessutom har jag inga problem med matten. Förra gången jag pluggade elektronik var på gymnasiet och då var väl mina mattekunskaper minst sagt begränsade...

Hur som helst så har jag fått blodad tand av laborationerna i boken och vill testa att leka runt lite själv - känns som att det är ett bra sätt att lära sig på så att man får förståelse för hur det skall fungera och hur man bör tänka.
monstrum:
Ok, hur kan jag uppdatera mer än en LED i taget? Jag tänkte att om man bara kör kretsen tillräckligt fort så ser man inte att det blinkar.
Angående att "programmera" minnet. Jag tänkte att sätta en stor konding parallellt med den lilla kondingen i NE555 kretsen. Den stora kondingen skall gå att koppla från med en DIP-switch. På det sättet kan man minska hastigheten ganska mycket. Sedan får man väl försöka fixa så att man kan sätta bitarna exempelvis genom en liten knapp. Exakt hur vet jag inte då jag inte vet hur det fungerar med minnet. (kan inget om minnen)
Icecap:
Du skriver om en koppling för att fylla ett RAM - just så vill jag försöka göra. Har du (eller någon annan) exempel på en sådan?
Så enkel att förstå som möjligt helst...

DennisD7:
CPLD vet jag inte vad det är, finns de på Elfa eller Kjell?
Berätta gärna mer!
Jag har inte hittat nåt om CPLD:er i sverige, men det gick mycket smidigt att köpa på webben.
Tanken med CPLD är att man kan koppla ihop massor av logiska grindar utan att behöva löda så mycket. Man ritar hur man vill ha det på ett datorprogram, sen laddar man över filen till chippet som redan innehåller en massa grindar. Filen hamnar i ett flashminne på chippet och anger vilka grindar som ska vara kopplade till vad. Jag kan inte så mycket om vanlig icke-digital elektronik, men med logiska grindar tycker jag att det är hur lätt som helst att bygga nästan vad som helst. Jag byggde just ett grafikminne till min kommande LED-display.
Det finns flera märken av CPLD:er, jag använder Xilinx, bl.a. för att de har gratis program som man kan ladda hem. Du behöver en utvecklingsplatta för att programmera CPLD-chippen, och de brukar kosta 1000-tals kronor, dock hittade jag en för 49 dollar som funkar helt bra.
...men om du är van vid "vanlig" programmering kanske uC:er är bättre för dig. Eller vad tror ni, pojkar?
Mer än en LED i taget: jag tänder en hel rad i taget genom att använda 5 pinnar, en till varje LED på raden, och sen 7 pinnar där EN anger vilken rad som ska visas (om du förstår..).
Tanken med CPLD är att man kan koppla ihop massor av logiska grindar utan att behöva löda så mycket. Man ritar hur man vill ha det på ett datorprogram, sen laddar man över filen till chippet som redan innehåller en massa grindar. Filen hamnar i ett flashminne på chippet och anger vilka grindar som ska vara kopplade till vad. Jag kan inte så mycket om vanlig icke-digital elektronik, men med logiska grindar tycker jag att det är hur lätt som helst att bygga nästan vad som helst. Jag byggde just ett grafikminne till min kommande LED-display.
Det finns flera märken av CPLD:er, jag använder Xilinx, bl.a. för att de har gratis program som man kan ladda hem. Du behöver en utvecklingsplatta för att programmera CPLD-chippen, och de brukar kosta 1000-tals kronor, dock hittade jag en för 49 dollar som funkar helt bra.
...men om du är van vid "vanlig" programmering kanske uC:er är bättre för dig. Eller vad tror ni, pojkar?
Mer än en LED i taget: jag tänder en hel rad i taget genom att använda 5 pinnar, en till varje LED på raden, och sen 7 pinnar där EN anger vilken rad som ska visas (om du förstår..).
Nej, jag har inget färdigt att fylla i med, jag håller mig som sagt till någon form av "IQ" att styra sånt.
Men generellt kan du ju göra så att du gör 8 transistorer som driver var sin kolumn. Du kan då styra bilden vid att för varje kolumn so du slår på skickar du ut ett mönster till varje rad.
För att undvika "skugga" måste man sedan släcka drivningen en kort stund innan man driver nästa kolumn, denna tid kan du ha till att aktivera "WR"-signalen på RAMen samt att enabla den 74LS244-buffer som sitter från DIP-switchen så signalen kommer genom till RAMen.
Det var i grova drag hur man kan göra, resten får du göra själv
Men generellt kan du ju göra så att du gör 8 transistorer som driver var sin kolumn. Du kan då styra bilden vid att för varje kolumn so du slår på skickar du ut ett mönster till varje rad.
För att undvika "skugga" måste man sedan släcka drivningen en kort stund innan man driver nästa kolumn, denna tid kan du ha till att aktivera "WR"-signalen på RAMen samt att enabla den 74LS244-buffer som sitter från DIP-switchen så signalen kommer genom till RAMen.
Det var i grova drag hur man kan göra, resten får du göra själv
