LED-Matrix // DLO 7135 (5x7)



  hallo,

ich bin arduino neuling und bräuchte mal hilfe.

also ich habe diesen 5x7 dotmatrix baustein, dieser wird parallel angesteuert. 
den standart satz  "hello world" habe ich mal "zufuss" programmiert.  es wird je nach buchstabe die einzelnen port
auf "high" oder "low" gesetzt wie es in der tabelle halt steht.  zwischen den einzelnen zeichen ist eine kurze
pause  "delay(500)" z.b. damt man zeit zum lesen hat.

soweit nichts besonderes und soll nur ein Übungsbeispiel sein.

aber wie zerlege ich einen festgelegten satz z.b. "hello world"  in die einzelnen buchstaben? wie gebe ich diese dann aus?
zuvor müssten doch die zeichen festgelegt werden,  z.b.  "a"=1000001 (8bit).  wie mache ich das?


ich bräuchte mal ein konkretes programmbeispiel.

lg
bajazzo

<edit>
wie unten festgestellt ist das unnötig kompliziert. der teil mit der iteration über den string stimmt zwar, aber da der chip ein rom hat entspricht der wert des zeichens dann direkt dem byte das man ausgeben kann
</edit>


ganz simpel. strings sind char arrays. und jeder char hat einen wert von 0-127 entsprechend der ascii tabelle. und das leerzeichen als erstes darstellbares zeichen hat den wert 0x20 = 32. man muss nur über den string iterieren und jeweils 0x20 abziehen.

dann greift man mit diesem index in eine tabelle die im flash steht.

man fängt mit der font definition an
code: [select]

const byte progmem font[]=
{
  .....
}

hier musst du den kompletten ascii zeichensatz ab dem leerzeichen eintragen:
http://www.torsten-horn.de/techdocs/ascii.htm

man kann aber auch z.b. bei '0' anfangen. dann muss man als offset aber auch '0' = 0x30 = 48 nehmen. für das erste definierte zeichen muss du durch die subtraktion auf den index 0 kommen.
und dann kannst du natürlich keine leerzeichen und satzzeichen darstellen! lohnt sich nicht wirklich.


Über den string zu iterieren geht einfach so:
code: [select]

char str[] = "hello world";

int length = strlen(str);
for(int = 0; < length; i++)
{
     char currentchar = str[i];
     byte currentbyte = pgm_read_byte_near(&font[currentchar - 0x20]);

     ... //hier dann mit dem byte machen
}


die daten des font stehen im flash speicher (durch progmem)! mit pgm_read_byte near wird das entsprechende byte aus dem flash ins ram kopiert. dazu übergibt man die adresse des entsprechenden wertes. diese wird dann intern in eine adresse im flash umgerechnet.


Arduino Forum > International > Deutsch (Moderator: uwefed) > LED-Matrix // DLO 7135 (5x7)


arduino

Comments

Popular posts from this blog

Connecting Raspberry Pi 2 to P10(1R)-V706 LED Dot Matrix - Raspberry Pi Forums

TypeError: <unknown> is not a numpy array - Raspberry Pi Forums

datso and removing imagetitle - Joomla! Forum - community, help and support