8 x 7 segment LED display met Max7219

Alles wat niet past in bovenstaande onderwerpen
Berichten: 13
Geregistreerd: 18 Jan 2014, 22:40

8 x 7 segment LED display met Max7219

Berichtdoor RuRu » 18 Jan 2014, 22:57

Ik heb veel info gevonden over de LedControl library om een 7 segment LED display met Max9217 aan te sturen.

Het wordt goed uitgelegd hoe je een waarde naar één digit kan sturen maar ik vind nergens info om een lang getal naar het display te sturen.

Vb: int frequentie = 12345678 hoe krijg ik het volledige getal op het display ?

Ik zou dit graag gebruiken voor een frequency counter projectje.

mvg

RuRu

Advertisement

Gebruikers-avatar
Berichten: 5043
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: 8 x 7 segment LED display met Max7219

Berichtdoor nicoverduin » 19 Jan 2014, 00:33

Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Berichten: 13
Geregistreerd: 18 Jan 2014, 22:40

Re: 8 x 7 segment LED display met Max7219

Berichtdoor RuRu » 19 Jan 2014, 14:56

Bedankt voor de info.

Ik zal het wel moeten uitbreiden naar 8 digits maar het is het proberen waard.

Ik vraag me af of er geen soort FOR loop zou kunnen gebruikt worden om de zaak te verkorten??

Mvg

RuRu

Gebruikers-avatar
Berichten: 5043
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: 8 x 7 segment LED display met Max7219

Berichtdoor nicoverduin » 19 Jan 2014, 16:02

Waarschijnlijk wel maar dan moet je eerst met de code komen :) Anders wordt het een Remy project :)
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Berichten: 13
Geregistreerd: 18 Jan 2014, 22:40

Re: 8 x 7 segment LED display met Max7219

Berichtdoor RuRu » 20 Jan 2014, 20:14

Dit is het FOR loopje geworden. Long is nodig om de 8 cijfers te kunnen weergeven.
Het display is nogal storingsgevoelig vandaar dat er hier of daar een delay kan tussengevoegd worden.
Nu moet ik nog iets vinden om de leading zero's weg te laten als het getal < 8 digits is. Iemand een goed ideetje ?
Ik zou iets kunnen doen met de lengte( aantal digits) van het getal maar hoe kom ik daar aan?

void printGetal(long v)
{
long Digit;
for (int i = 0; i<=7; i++)
{
Digit=v%10;
//delay(20);
lc.setDigit(0,i,(byte)Digit,false);
//Serial.println(Digit);
//delay(20);
v=v/10;

}
}

Mvg
RuRu

Gebruikers-avatar
Berichten: 5043
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: 8 x 7 segment LED display met Max7219

Berichtdoor nicoverduin » 21 Jan 2014, 22:57

Probeer dit 's:

Code: Alles selecteren

void printGetal(long v) {
   char result[9];                  // resultaat is als geformatteerde char string
   sprintf(result, "%8lu", v);         // omzetten getal in string (de 8 maakt het 8 tekens lang met voorloop spaties)
   Serial.println(result);            // ff op de serial
   for (int i = 0; i < 8; i++) {      // als de cijfers omgedraaid moeten worden dan de loop van 7-0 laten lopen
      if (result[i] != 0x20) {      // het is geen spatie dus display
         lc.setDigit(0, i, (byte) (result[i] & 0x0F), false);   
      }
   }
}
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Berichten: 13
Geregistreerd: 18 Jan 2014, 22:40

Re: 8 x 7 segment LED display met Max7219

Berichtdoor RuRu » 22 Jan 2014, 21:57

Bedankt nicoverduin,

Daar was ik zelf nooit achter gekomen - voor gevorderden!

Ik probeer het uit en laat nog iets weten.

Mvg

RuRu

Berichten: 13
Geregistreerd: 18 Jan 2014, 22:40

Re: 8 x 7 segment LED display met Max7219

Berichtdoor RuRu » 02 Feb 2014, 18:53

Werkt perfect voor mijn frequency counter.

Ik kan er echter geen analoge meetwaarden ( bvb: -0.123 ) mee zichtbaar maken.

Ik probeer tot een soort universele uitlezing te komen voor meetapparaten.

Bedankt nicoverduin.

Terug naar Theekransje

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 43 gasten