Gå til innhold

16x48 led matrix! hjelp til feilsøking!


Anbefalte innlegg

Vet at jeg har koblet GND på row og 5v på colums I selve matrixen.... når jeg kobler til strømforsyning til kun breadboardet så lyser så å si alle ledene (regner med at der er noe feil lodding på de få som ikke lyser) men når arduino får strøm så slutter alt å lyse...

og hvodran kna jeg lage en kode som tester en og en led?

 

 

og må jeg forrandre noe på breadbordet hvis jeg forandre på kodene? (tenker kansje på transistorene da?)

Endret av iam99pk
Lenke til kommentar
Videoannonse
Annonse

Vet at jeg har koblet GND på row og 5v på colums I selve matrixen....

Er usikker på hva du mener her. Matrisen har egentlig ikke GND og 5V - den er jo bare dioder med anode og katode. Tegningene viser at anoder er koblet til 'Columns' og katoder er koblet til 'Rows'. 

På driverskjema er ROW en transistor som leder til GND. Og shiftregistrene sourcer strøm (dvs er pluss).

Det virker som at koblingen er riktig. Hvis polariteten på diodene var snudd kunne det ikke bli noe lys.

Lenke til kommentar

 

Vet at jeg har koblet GND på row og 5v på colums I selve matrixen....

Er usikker på hva du mener her. Matrisen har egentlig ikke GND og 5V - den er jo bare dioder med anode og katode. Tegningene viser at anoder er koblet til 'Columns' og katoder er koblet til 'Rows'. 

På driverskjema er ROW en transistor som leder til GND. Og shiftregistrene sourcer strøm (dvs er pluss).

Det virker som at koblingen er riktig. Hvis polariteten på diodene var snudd kunne det ikke bli noe lys.

 

der sier du noe menter sefølgelig anode og katode... 

 

når jeg kobler til et 3v batteri eller stømforsyning så må + på colum og gnd (-) på row, men i kodene så det jo:

 

 

//-- Rows (Positive Anodes) --

så regnet med at rows skulle ha +5v og clum skal ha GND? 

 

men synes også at det var rart alt lyst når jeg koblet til stømforsyningen også stoppet alt når arduino fikk spenning..

Lenke til kommentar

Tja, har ikke sett på koden.

Men foreslår at du begynner med hardware test, uten Arduino.

Du har breadboard, så da regner jeg med at det er enkelt å ta ut og sette inn komponenter.

 

Ta ut alle COLUMN shiftregistrene, da skal ingen diode lyse.

Så aktiverer du manuellt hver column. Ta en ledning fra + til hver motstand, dvs der utgangen fra shiftregisteret skulle vært. Lyser det da i en kolonne?

Det forutsetter da at ROW transistorene leder. Du kan gjøre det samme her, ta ut dette shiftregisteret også. Når du trekker motstanden høy vil transistoren lede. 

Du kan nå kontrollere hver enkelt LED.

 

Når du ser at dette fungerer kan du lage et testprogram som gjør det samme. Alle shiftregister utgangene lav i utgangspunktet, og så setter du en pinne høy på COLUMN og en på ROW.

Lenke til kommentar

Tja, har ikke sett på koden.

Men foreslår at du begynner med hardware test, uten Arduino.

Du har breadboard, så da regner jeg med at det er enkelt å ta ut og sette inn komponenter.

 

Ta ut alle COLUMN shiftregistrene, da skal ingen diode lyse.

Så aktiverer du manuellt hver column. Ta en ledning fra + til hver motstand, dvs der utgangen fra shiftregisteret skulle vært. Lyser det da i en kolonne?

Det forutsetter da at ROW transistorene leder. Du kan gjøre det samme her, ta ut dette shiftregisteret også. Når du trekker motstanden høy vil transistoren lede. 

Du kan nå kontrollere hver enkelt LED.

 

Når du ser at dette fungerer kan du lage et testprogram som gjør det samme. Alle shiftregister utgangene lav i utgangspunktet, og så setter du en pinne høy på COLUMN og en på ROW.

jepp skal prøve det! :D ser nå at jeg skulle brukt lengre ledninger på å koble til colum og row men jaja får det nok til ;)

legger til et bilde av den når jeg holdt på  :D

post-311604-0-40266200-1432049807_thumb.jpg

Lenke til kommentar

ehm.. jeg så noe nå.. sitter å prøver å forså kodene litt og fant ut at jeg har jo ikke skrve noe her?

 

 

 

int rr=0;
uint8_t msg[34];
String msgs;

altså på String msgs;

er kansje der jeg skal skrive ha som skal skje på led matrixen?

 

men ser lengre nede så står dette:

 

 

// char msg[] = "12345678901011121314151617";

men ser jo først // så vet ikke hva det betyr?...

og litt under det står dette:

 

int alphabetIndex = msg[charIndex] - ' ';

 

skal jeg skrive inn etter string msgs; eller i den siste "sitat" eller ingen a de plassene?? :)

 

hvis jeg skal det så er det kansje ikke så rart at det ikke funker? xD

Endret av iam99pk
Lenke til kommentar

ja her har det skjedd noe rart med kopieringen min :/

 

men fant ut at det var en kode som står som en komentar.. og leste at den andre koden ikke funker så kan være derfor jeg har prøvd den.. husker ikke helt akuratt nå... men nå skal jeg prøve å teste igjen :)

Lenke til kommentar

nå har jeg koblet hele breadbordet på nytt.. (noen hadde vært og hatt det litt gøy med det) og prøvde.. når jeg kobla til stømforsyninga så lyste... men ikke alt (!?) også når jeg kobla til arduino og la over kodene så lyste akuratt det samme....

 

var vel 3 rader som lyste altså 2 på sia hverandre så var det 8 rader som ikke hadde lys også var det 1 rad som lyste

 

NB! jeg fant ut at jeg bruker PN2222 transistor men der har vel ikke noe å si? begge typene er jo NPN transistor.. igjaffal det jeg har funnet ut..

Lenke til kommentar

Transistorene skal være like gode.

Men tilbake til hardware testing. Det eneste som fungerer er å være systematisk, begynne på et lavt nivå. 

men problemet at jo egentlig ikke noe med breadbordet? et jo selve matrixen som er loddet feil vei.. altså skal jo positiv anode på row og jeg har tatt negativ katode på row.... 

 

går det ann å forandre bittene som jaffe skrev på colums og sette inn en PNP(NPN) transistor istedenfor PNP?

 

 

Jeg har ikke satt meg inn i prosjektet ditt, men for å få 0V ut fra 74HC595 i stedet 5V så kan du rett og slett invertere (snu om) på bitene du sender ved å bruke NOT-operatoren i C, ~. I funksjonen RefreshDisplay() må du da endre til følgende hvis du skal invertere rad-bitene:

shiftOut(dataPin2, clockPin2, MSBFIRST, ~rowbit); //Transmit data

eller følgende hvis du skal invertere kolonne-bitene:  

shiftOut(dataPin1, clockPin1, MSBFIRST, ~bitmap[row][zone]);

(Merk ~ foran verdien som skal sendes. Denne operatoren snur om på alle bitene; 0 blir 1 og 1 blir 0.)

 

 

vet ikke om dette er veldig innviklet metode eller om det er en grei og lett løsning?

kan jo også vente på at invetrerene kommer ifra kina da...

Endret av iam99pk
Lenke til kommentar

En ekstra transistor vil kunne brukes for å "snu signalet" (har du tilgang på MOSFET så blir det enda lettere). Har du en forenklet skisse som viser utgangene dine samt hvilke kompoonenter som deler felles jord og power med Arduinoen? Regner med du har forskjellige nivåer på + siden (12V fra power og 5V bak Arduino el.l.)?

 

Formoder at du har snudd LED-dioden når du har forvekslet VCC og GND, og at du har vært konsekvent med tanke på hvilken du har håndtert anode og katode siden på LED-ene. Om ikke så kan ikke no hjelpe deg fra å måtte lodde om.

Endret av Professor Balthazar
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...