Led klok

Hallo
ik ben een klok aan het bouwen volgens https://123led.wordpress.com/mini-led-clock/
Wat er op het mijn display verschijnt daar is geen touw aan vast te knopen.
Op mijn display is het 0,0 punt rechts onder.
Volgens de ontwikkelaar moet het 0,0 punt links boven liggen.
Ik denk dat dit de oorzaak is van het probleem
Ligt dit aan mijn display of is er iets anders aan de hand.
Mans

Mans

Zal wel te simpel gedacht zijn, maar klok 180 graden omdraaien?... ;)

Arco - "Simplicity is a prerequisite for reliability" - hard en software ontwikkeling: www.arcovox.com

Op mijn display is het 0,0 punt rechts onder.
Volgens de ontwikkelaar moet het 0,0 punt links boven liggen.

Welke display modules gebruik je dan? Ze moeten wel een MAX7219 bevatten.
Het kan ook aan de bedrading liggen: DIN en CLK verwisseld misschien?
Post eens een foto'tje van de 'onzin' die je ziet.

Het zou heel goed kunnen dat het display niet symmetrisch is. Dus als die omgekeerd gemonteerd is (180 graden gedraaid) dan zal je een "zooitje" krijgen.

https://bc-robotics.com/shop/8x8-led-matrix-red-60mm-x-60mm/

dat is een voorbeeld van EEN display. pin 1 zit 180 graden gedraaid t.o.v. pin 9, en dat zijn alletwee RIJ-draden.
Dus dan is de AANSTURING van die rijdraad goed, maar zijn ze verwisseld. 5 is een rij, 13 een kolom, dus dan is de aansturing verkeerd en zal het niet werken. Dus rij 8 en kolom 1 verwacht ik niet dat die het doen als je hem hebt omgedraaid. 3 en 11 zijn allebij kolomdraden, dus kolom 2 en 6 zouden het dan doen, maar verwisseld.

Dit is dus "zomaar een voorbeeld". Het kan zijn dat de pinout van jou led-matrix anders is.

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/

Display verkeerd-om op print kan inderdaad allerlei vreemde effecten geven...

Arco - "Simplicity is a prerequisite for reliability" - hard en software ontwikkeling: www.arcovox.com

De displays zitten niet verkeerd-om? Wat is de tekst die er had moeten staan?

Arco - "Simplicity is a prerequisite for reliability" - hard en software ontwikkeling: www.arcovox.com

Dit is de algemene plot routine.
Zou ik het hiermee recht kunnen breien.
Ik heb het geprobeerd maar ik kom er niet aan uit.
//plot a point on the display
void plot (byte x, byte y, byte val) {

//select which matrix depending on the x coord
byte address;
if (x >= 0 && x <= 7) {
address = 0;
}
if (x >= 8 && x <= 15) {
address = 1;
x = x - 8;
}
if (x >= 16 && x <= 23) {
address = 2;
x = x - 16;
}
if (x >= 24 && x <= 31) {
address = 3;
x = x - 24;
}

if (val == 1) {
lc.setLed(address, x, y, true);
} else {
lc.setLed(address, x, y, false);
}
}

Mans

Daar had iets van 10 15 (voorbeeld) moeten staan

Mans
buckfast_beekeeper

Golden Member

Op 6 september 2021 16:24:58 schreef MansTrein:
[...]
Op mijn display is het 0,0 punt rechts onder.
Volgens de ontwikkelaar moet het 0,0 punt links boven liggen.
[...]

Volgens de datasheet van Kingbright (in bijlage) is R1/C1 inderdaad bovenaan links.

Van Lambiek wordt goede geuze gemaakt.

Zet een voor een alle pixels aan/uit, dan kan je zien wat er mis gaat. (nu zie je alleen dat er wat mis gaat...)
Je kunt ook alle rijen/kolommen een voor een aansteken.

Als je naar alle vier displays hetzelfde karakter stuurt, zie je dan ook op alle vier dezelfde 'onzin'?
(je moet in ieder geval zeker weten wat er naartoe gestuurd wordt, anders valt er niet veel zinnigs te zeggen over wat er mis gaat?)

Nogmaals: zitten de displays niet verkeerd-om?

[Bericht gewijzigd door Arco op 7 september 2021 10:46:30 (25%)]

Arco - "Simplicity is a prerequisite for reliability" - hard en software ontwikkeling: www.arcovox.com

Ik heb alle displays omgedraaid dat gaf een heel raar effect.
Ik heb wel test routines die naar elk display het zelfde characher stuurt maar het is abacadabra op elk display.

Mans

Als niet alle displays dezelfde 'abacadabra' laten zien, dan is er in de aansturing wat mis...

Arco - "Simplicity is a prerequisite for reliability" - hard en software ontwikkeling: www.arcovox.com

Op 7 september 2021 10:08:16 schreef Arco:
Wat is de tekst die er had moeten staan?

Ik zie "Fkek" op 1 pixel na. Displays staan kwart slag gedraaid t.o.v. wat de software denkt.

@MansTrein Blijven denken: "Het zou in 1x moeten werken" terwijl dat niet zo is, zal niet (snel) tot een oplossin leiden. Je moet gewoon "debuggen" en dus bijvoorbeeld 1 voor 1 de pixels aansturen om te kijken waar je pixels dan wel terecht komen als ze niet op de juiste plek aankomen. Dat helpt met zoeken naar wat er mis is. Gewoon steeds een hele zwik sturen en dan maar blijven hopen dat het in 1x goed komt helpt niet. Kennelijk is het dan te ingewikkeld voor jou om direct te zien wat er aan de hand is. Dat is het vaak. Dus 1 voor 1 kijken waar de pixels belanden helpt.

[Bericht gewijzigd door rew op 7 september 2021 12:12:38 (55%)]

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
hennep

Golden Member

Op 7 september 2021 12:07:18 schreef rew:
Ik zie "Fkek" op 1 pixel na.

Volgens mij staat er "FK GK" in spiegelbeeld en 90 graden gedraaid. Er staat ook nog een spatie waar de dubbele punt had moeten komen. Verkeerd bedraad waarschijnlijk.
Het helpt als je met de seriele poort wat informatie stuurt in iedere functie. Dan kun je het verloop van je programma volgen in de arduino serial monitor (in het tools menu).

in de setup functie:
Serial.begin( 9600 );

overal waar je iets zichtbaar wilt maken, bv in de functie putnormalchar
Serial.println( "putnormalchar" );
Serial.println( x );
Serial.println( y );
Serial.println( c );

EDIT:
Ik zie net dat de seriele poort al in setup staat. Er wordt al debug informatie weergegeven, oa. voor de real time clock.
Daar kun je zelf nog heel wat aan toe voegen om het verloop voor jezelf duidelijker te maken.

code:


if (val == 1) 
{  lc.setLed(address, 7-y,7-x, true);
}
else
{  lc.setLed(address, 7-y,7-x, false);
}

of korter :

code:


  lc.setLed(address, 7-y,7-x, val == 1);

Of de complete funktie:

code:


//plot a point on the display
//   x : matrix column 0 .. 31
//   y : matrix row 0 .. 7
// val : 1 = on, 0 = off
void plot (byte x, byte y, byte val) 
{
   // select which matrix depending on the x coord
   byte address = x / 8;

   // Calc x coord within matrix
   x = x % 8;

   // Set led in matrx on/off
   lc.setLed(address, 7-y,7-x, val == 1);
}

Dank je wel voor de plot routine
Klok start niet goed op. (foto 1)
Datum wordt goed weer gegeven
De klok loopt niet op tijd .
Sommige cijfers (0,9)worden niet goed weer gegeven.(foto 2)

Mans

Klok start niet goed op. (foto 1)

Het zou wel handig zijn als je vermeld wat er dan wel op het display had moeten staan. (of is het alleen die ene ontbrekende punt in de 'F'?)

Arco - "Simplicity is a prerequisite for reliability" - hard en software ontwikkeling: www.arcovox.com

Sorry Arco
Op de de eerste foto had iets van de huidige tijd moeten staan 21 : 10

Mans

Datum is goed? Dat is al heel wat.

Het kan zijn dat de klok niet goed staat ingesteld. Soms krijg je deze effecten bij uren > 24 of minuten > 60.

Het plaatje van nu klopt niet met het plaatje van enige tijd geleden. Er lijkt wat veranderd te zijn. Als er zonder dat ik het weet dingen veranderen en er wordt me niet verteld wat er veranderd is dan geef ik het op. Sorry.

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/

Zoals gezegd, door alle pixels 'heenstappen' en je weet waar het aan ligt. (pixel 1,1 -> 2,1 -> 3,1,... tot 8,8)
Als er dan wat vreemds gebeurt zie je het meteen...

Pseudocode:

pic basic code:


For Display = 1 to 4
  For Col = 1 to 8
    For Row = 1 to 8
      Pixel_on(display,row,col)
      delay_ms(500)
      Pixel_off(display.row,col) 
    Next Row
  Next Col
Next Display
Arco - "Simplicity is a prerequisite for reliability" - hard en software ontwikkeling: www.arcovox.com

Dat het eerste plaatje verschilt t.o.v tweede plaatje dat komt omdat ik de nieuwe plot functie van deKees heb geimplementeerd.

Mans

Dat is goed nieuws, want dat betekent dat er heel aardige controle over het display is. Zoals arco zegt: pixel voor pixel proberen.

Arco's code is in picbasic. Als je met dekees z'n routine kan werken, dan is c mogelijk handiger.

code:


t = 10;
for (y=0;y<8;y++)
  for (x=0;x<32;x++) {
    plot (x, y, 1);
    delay(t);
    plot (x, y, 0);
  }

probeer een aantal verschillende t-waardes. Ik denk dat als het snel gaat en je niet 2 minuten hoeft te wachten voor een complete cyclus je aardig kan zien wat er gebeurt, maar als wat ik voorstel te snel is, dan moet je de t-waarde verhogen.

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/

Uitgaande van de code in de link in de startpost zou het display moeten beginnen met :
- Eerst alle dots aan
- Dan langzaam uit faden
- Dan de tekst "Ver 1.0 "
- Dan de tekst " Hallo! "

Zie funktie 'printver();'

Is hier iets van te zien na opstarten?