Arduino UNO R3 und max7219

Big_Spender:
Alles ist richtig ...

Kennst Du den:

Sagt eine Frau zu ihrem Mann, er ist Programmierer:

Sie: „Schatz, wir haben kein Brot mehr, könntest du bitte zum
Supermarkt gehen und eins holen? Und wenn sie Eier haben, bring 6 Stück mit.”

Er: „Klar, mach ich!”

Nach kurzer Zeit kommt er wieder zurück und hat 6 Brote dabei.

Sie: „Warum nur hast du 6 Brote gekauft?!?”

Er: „Sie hatten Eier.”

Eins ist sicher: Er hat alles richtig gemacht …

pylon:
Die Angabe "habe alle Libs probiert" ist ebenso nichts-sagend wie "habe es natürlich auch mit alle arduino Pins versucht" (ich hoffe nicht, dass Du das wirklich gemacht hast, gewisse Kombinationen können Deinen Arduino zerstören).

Welche würden denn den Arduino zerstören?

Addi

Welche würden denn den Arduino zerstören?

Wenn ein Pin auf Ausgang geschaltet ist und auf HIGH gesetzt wird, dann mit einem Pin verbunden wird, der Verbindung zu Masse hat.
Grundsätzlich: wenn LOW und HIGH ohne Widerstand verbunden werden, also ein Kurzschluss produziert wird.

Und alle Arduino-Pins beinhaltet auch die 5V, 3V3, GND, AREF, etc. Pins.

Mein Fehler, ich sollte als aller erstes sagen dass ich nicht seid gestern mit mcu's hantiere und mit der Aussage "ich habe es mit alle Pins versucht " meine ich NATÜRLICH die digital Pins (Pin 0 bis 13, nicht das jemand jetzt auf die Idee kommt mir zu sagen das auch der USB Anschluss digital ist) . An der Aussage "ich habe es mit alle libs versucht" kann ich auch nichts ändern, alle die mein bester freund Google ausgespuckt hat habe ich getestet, einschließlich die in/für Wiring. Und seid doch ehrlich, so viel falsch kann man da nicht machen. Ich werde morgen die Beispiele für die libs aus den Arduino playground 1zu1 hier kopieren denn, die habe ich 1zu1 übernommen. Verdrahtung werde ich auch hier Posten...
P.s.. Es ist immer wieder genial wie manche Leute reagieren wenn die der Meinung sind etwas besser zu Wissen... Genial..
P. S. Auch nur zur Information, vor ca. 25 Jahre habe ich meine erste Endstufe mit KD503 gebaut... Aber man macht Fehler, des wegen Schrei e ich jetzt hier, mit der Hoffnung dass ihr mir helfen könnt.
Jurs, so verdreht ist meine Logik nicht...
Bis morgen...

Entschuldig da muß ich Dir widersprechen. Mit der Information: ich hab alles ausprobiert aber nichts funkioniert hast Du uns null informationen gegeben was Du bis jetzt gemacht hast und was Deine Probleme bzw Fehlermeldungen sind.

Hast Du eine LED-Matrix oder eine 7 Segmentanzeige angeschlossen? ist die 7 Segment-Anzeige eine mit gemeinsamer Kathode?
Versuchs mal mit Arduino Playground - MAX72XXHardware und Arduino Playground - HomePage

Grüße Uwe

Ja, sehe ich ein, deshalb habe ich mich den auch entschuldigt. Ich habe mit dem angefangen was du mir da vorgeschlagen hast. Ich weiß nicht was man da falsch machen kann. Mein Sketch ist ja in dem Fall der Beispiel "LCDemoMatrix", auch richtig angeschlossen, nach dem Schaltbild von: Arduino Playground - MAX72XXHardware. ich verwende BarGraph anzeigen mit gem.Kathode. Höchstwahrscheinlich übersehe ich etwas. Ich habe gerade nochmal alles überprüft, nach dem oben genannten Schaltbild ist alles richtig verbunden, habe es mit Durchgangsprüfer geprüft.

hat jemand von euch mit LedControl lib schon gearbeitet? Würde mich echt interessieren ob der Beispiel der mit dabei ist auch so, ohne Änderungen, mit ein MAX7219 funktioniert.
hmm, eigentlich fange ich langsam an zu denken dass die ic´s nicht io sind.... habe diese über E..Y bekommen....
mfg.

Wie genau hast Du die BarGraphanzeige an den MAX angeschlossen?
Welche BarGraph hast Du?
Machst Du bitte ein Foto vom Aufbau?
Danke Grüße Uwe

Es ist eine HDSP-4840 10 LED BarGraphanzeige, die Kathoden sind zusammengeschaltet und an pin 2,also Digit 1, von dem MAX angeschlossen, ich benutze nur 1 BarGraphanzeige. Ein Foto vom Aufbau kann ich erst heute abend reinstellen. An RSet vom MAX ist ein 24,7k wiederstand an vcc geschaltet.

mfg

Pin 2 ist nicht DIG 1 sondern DIG 0.
Ansonsten ist der Aufbau prinzipiell richtig.
Postest Du auch nochmal den Sketch?
Grüße Uwe

lol, meine ich ja, Digit0 :slight_smile: :cold_sweat:

und wie gesagt, an dem Beispiel-Sketch habe ich nichts geändert:

//We always have to include the library
#include "LedControl.h"

/*
 Now we need a LedControl to work with.
 ***** These pin numbers will probably not work with your hardware *****
 pin 12 is connected to the DataIn 
 pin 11 is connected to the CLK 
 pin 10 is connected to LOAD 
 We have only a single MAX72XX.
 */
LedControl lc=LedControl(12,11,10,1);

/* we always wait a bit between updates of the display */
unsigned long delaytime=100;

void setup() {
  /*
   The MAX72XX is in power-saving mode on startup,
   we have to do a wakeup call
   */
  lc.shutdown(0,false);
  /* Set the brightness to a medium values */
  lc.setIntensity(0,8);
  /* and clear the display */
  lc.clearDisplay(0);
}

/*
 This method will display the characters for the
 word "Arduino" one after the other on the matrix. 
 (you need at least 5x7 leds to see the whole chars)
 */
void writeArduinoOnMatrix() {
  /* here is the data for the characters */
  byte a[5]={B01111110,B10001000,B10001000,B10001000,B01111110};
  byte r[5]={B00111110,B00010000,B00100000,B00100000,B00010000};
  byte d[5]={B00011100,B00100010,B00100010,B00010010,B11111110};
  byte u[5]={B00111100,B00000010,B00000010,B00000100,B00111110};
  byte i[5]={B00000000,B00100010,B10111110,B00000010,B00000000};
  byte n[5]={B00111110,B00010000,B00100000,B00100000,B00011110};
  byte o[5]={B00011100,B00100010,B00100010,B00100010,B00011100};

  /* now display them one by one with a small delay */
  lc.setRow(0,0,a[0]);
  lc.setRow(0,1,a[1]);
  lc.setRow(0,2,a[2]);
  lc.setRow(0,3,a[3]);
  lc.setRow(0,4,a[4]);
  delay(delaytime);
  lc.setRow(0,0,r[0]);
  lc.setRow(0,1,r[1]);
  lc.setRow(0,2,r[2]);
  lc.setRow(0,3,r[3]);
  lc.setRow(0,4,r[4]);
  delay(delaytime);
  lc.setRow(0,0,d[0]);
  lc.setRow(0,1,d[1]);
  lc.setRow(0,2,d[2]);
  lc.setRow(0,3,d[3]);
  lc.setRow(0,4,d[4]);
  delay(delaytime);
  lc.setRow(0,0,u[0]);
  lc.setRow(0,1,u[1]);
  lc.setRow(0,2,u[2]);
  lc.setRow(0,3,u[3]);
  lc.setRow(0,4,u[4]);
  delay(delaytime);
  lc.setRow(0,0,i[0]);
  lc.setRow(0,1,i[1]);
  lc.setRow(0,2,i[2]);
  lc.setRow(0,3,i[3]);
  lc.setRow(0,4,i[4]);
  delay(delaytime);
  lc.setRow(0,0,n[0]);
  lc.setRow(0,1,n[1]);
  lc.setRow(0,2,n[2]);
  lc.setRow(0,3,n[3]);
  lc.setRow(0,4,n[4]);
  delay(delaytime);
  lc.setRow(0,0,o[0]);
  lc.setRow(0,1,o[1]);
  lc.setRow(0,2,o[2]);
  lc.setRow(0,3,o[3]);
  lc.setRow(0,4,o[4]);
  delay(delaytime);
  lc.setRow(0,0,0);
  lc.setRow(0,1,0);
  lc.setRow(0,2,0);
  lc.setRow(0,3,0);
  lc.setRow(0,4,0);
  delay(delaytime);
}

/*
  This function lights up a some Leds in a row.
 The pattern will be repeated on every row.
 The pattern will blink along with the row-number.
 row number 4 (index==3) will blink 4 times etc.
 */
void rows() {
  for(int row=0;row<8;row++) {
    delay(delaytime);
    lc.setRow(0,row,B10100000);
    delay(delaytime);
    lc.setRow(0,row,(byte)0);
    for(int i=0;i<row;i++) {
      delay(delaytime);
      lc.setRow(0,row,B10100000);
      delay(delaytime);
      lc.setRow(0,row,(byte)0);
    }
  }
}

/*
  This function lights up a some Leds in a column.
 The pattern will be repeated on every column.
 The pattern will blink along with the column-number.
 column number 4 (index==3) will blink 4 times etc.
 */
void columns() {
  for(int col=0;col<8;col++) {
    delay(delaytime);
    lc.setColumn(0,col,B10100000);
    delay(delaytime);
    lc.setColumn(0,col,(byte)0);
    for(int i=0;i<col;i++) {
      delay(delaytime);
      lc.setColumn(0,col,B10100000);
      delay(delaytime);
      lc.setColumn(0,col,(byte)0);
    }
  }
}

/* 
 This function will light up every Led on the matrix.
 The led will blink along with the row-number.
 row number 4 (index==3) will blink 4 times etc.
 */
void single() {
  for(int row=0;row<8;row++) {
    for(int col=0;col<8;col++) {
      delay(delaytime);
      lc.setLed(0,row,col,true);
      delay(delaytime);
      for(int i=0;i<col;i++) {
        lc.setLed(0,row,col,false);
        delay(delaytime);
        lc.setLed(0,row,col,true);
        delay(delaytime);
      }
    }
  }
}

void loop() { 
  writeArduinoOnMatrix();
  rows();
  columns();
  single();
}

mfg

Kann den jemand bestätigen das diese lib, LedControl, funktioniert? Hat jemand schon etwas da mit gemacht....?
Ich bestelle mir jetzt die IC´s jetzt von wo anderes, kann ja sein das die hier schrott sind.

mfg

Hallo Big_Spender,

ich kann bestätigen, das der Sketch läuft :slight_smile:
http://arduino.cc/playground/uploads/Main/LedControl.zip
runterladen und Arduino/libraries den LedControl Ordner reinkopieren. dann kannste das Sketch laufen lassen.
Als Hardware habe ich aus der Bucht diesen Bausatz hier genommen:
http://www.ebay.de/itm/261142548029?ssPageName=STRK:MEWAX:IT&_trksid=p3984.m1423.l2649
Am 3.1. bestellt und gestern am 12.1. aus China hier aufgeschlagen.
Für 4,99 Euronen bekommste hier nicht mal den MAX! :grin:
Und hier ist noch ne durchkontaktierte Leiterplatte, eine 8x8 Matrix rot, Fassungen für IC & Matrix, und der Kleinkram dabei.
Habe mir den Bausatz gleich 2x bestellt. Das nächste Level wird sein, den 2. MAX zu kaskadieren. Was kurios ist, das die Arduino Laufschrift spiegelverkehrt ist :astonished:
Muß ich mal schauen, ob auf der PCB die Spaltenleitungen andersrum verwendet wurden, oder was da läuft.

Gruß Gerald

Hallo, kleines Update!

meine Vermutung hat sich bestätigt. Beim China Baustz sind die Column-Leitungen spiegelverkehrt mit dem Display verdrahtet. Daraus resultiert die Spiegelschrift. Das rauszubekommen war ein bisschen tricky, weil im Datenblatt am Anfang zunächst die Zuordung der Segmente einer 7-Segmentanzeige zum Sockel korrospondierend angegeben wurde. Erst auf Seite 7 wurde dann eine "Übersetzung" Segmente zu Spalten geliefert.
Somit ist die Platine ganz nett für erste Experimente, aber zum Kaskadieren ist sie schlicht unbrauchbar :stuck_out_tongue_closed_eyes:

Gruß Gerald

Ich nutzte erfolgreich zwei MAX7221 in meiner QlockTwoQlone. Ich habe zwei von den 7221 Kaskadiert. Sie sind ja soweit kompatibel aber der xx21 hat eine echte SPI die ich dann nachher nachdem umschreiben der Library nutzen konnte und refresh flicker vermeiden konnte.
Gruß
Der Dani

===> Der Big_Spender war seit dsem 21.12.21 nicht mehr on deswegen glaube ich das der Thread ausläuft.

Auf jeden Fall ist der MAX7219 /21 ein interessantes Bauteil, das auch "Nichtelektroniker" verbauen können, wenn ein paar Leute die entsprechenden Beispiele als Denkanstoß vorstellen. Von daher wäre es schade, wenn der Tröt hier gänzlich unkommentiert in der Versenkung verschwindet.
Ich dachte, die LedControl Library würde sowohl den xx19, als auch den xx21 unterstützen?
Na jedenfalls habe ich schon mal nach Quellen Ausschau gehalten und da findet man defacto nur 19'er. Bei Reichelt gibt es den 21'er für weitere 2€ "Exotenaufschlag" - über 7€ das Stück! Aber das ist mir echt zu heavy. Werde mir wohl über die Bucht 10x 7219 von außerhalb bestellen. In England, Amiland und Asien sind die wesentlich preiswerter.
Bei mir soll's ein Analogthermometer mit vieeelen LED's als Skala werden... :smiley:

Gruß Gerald

Es sind auch beide ähnlich wobei der 7219 32 Helligkeitsstufen hat der 7221 nur 16 Helligkeitsstufen. Der 7221 kann echtes SPI wobei der 7219 nur über normales shiftout die Daten bekommt. Die Library aus dem Playground benutzt für beide nur das normale shiftout. Ich habe mit die Lib verändert damit ich echtes SPI (flacker Problem).
Gruß
Der Dani

So, habe mir noch mal die 7219 bestellt, und, es funktioniert immer noch nicht. Ich werde mir jetzt ein Modul das "nix_mehr_frei" in sein post vorgeschlagen hat bestellen, und, dann werde ich berichten was Sache ist.

Danke nochmal für die antworten/hinweise.

bis bald

Also, das Modul ist gekommen und funktioniert einwandfrei, bis auf die spiegelverkehrte Schrift die auch "nix_mehr_frei" erwähnt hat. ich habe auch alle ic´s die ich vorher bestellt habe auf die Platine gesteckt, und, keins davon hat funktioniert, einige haben einfach willkürlich ein paar punkte auf die Matrix (Dauerlicht, also, mit oder ohne arduino hat immer das selbe geleuchtet) angemacht, mehr aber auch nicht. leider finde ich nicht mehr heraus von wem ich die ic´s gekauft habe, auf jeden Fall, war das ein chinesischer Anbieter, alle 20 Stück die ich habe sind Schrott. Eigentlich sollte ich von vorn herrein wiessen was loss ist, die schrift "MAXIM" ist nicht die originale, ich füge ein foto hinzu....

@ nix_mehr_frei:

wie hast du das Problem mit der spiegelverkehrte Schrift gelöst?

die untere IC ist der fake.

Schade, schade, das du nicht mehr weißt, wo du bestellt hast. ich wollte mir demnächst mal 10 Stück besorgen. in Frage käme die "Bucht" (com) oder http://www.aliexpress.com und da nen Anbieter rauspicken...
Hat jemand gute Erfahrungen mit einem Lieferanten gemacht?
Die Schrift war für mich erstmal sekundär. Ich habe jetzt 64 LEDs als langes Band mit der Single Loop angesteuert. Nun bin ich am löten und gehe auf 192 LEDs hoch. 600 Rechteck-LEDs (für die Skalenstriche) aus Canada sind bereits aufgeschlagen, heute kam ein Sack voll kleiner 7-Segmentanzeigen (für die Skalenbeschriftung). Nun habe ich alles zusammen. Wenn die Hardware zusammengeschmiedet ist, muß ich mal schauen, wie ich die Umsetzung von Binär nach "Band" realsiere. Als "Quick & Dirthy" würde ich spontan die Schleife der Serial Loop aus der LedControl hernehmen und einen Rundenzähler drüberstülpen, der so viele Durchläufe macht, bis der Wert erreicht ist. Dann Pause und die nächste Runde... Smarter wäre ein kleines Arry und dann den Binärwert zu shiften und die nächste Gruppe zu verarzten. Das würde auch schneller eingelesen werden, da jede LED einzeln zu setzen 8x so lange dauert, wie ein ganzes Byte am Stück in den MAX zu schieben.
Wenn ich das Thermometer am Laufen habe, schaue ich nach weiteren Spielereien :smiley:

Gruß Gerald

so, ich habe den verkeufer gefunden, papyal hatte noch die daten gespeichert:
Zahlung an: kai zhang (Der Empfänger dieser Zahlung ist Nicht-US - verifiziert.)
Mitgliedsname des Verkäufers: bascoomart
E-Mail des Verkäufers: luke33179@gmail.com

ich hoffe ich konnte hiermit helfen.

EDIT:

der Verkäufer ist nicht mehr bei Ebay, zumindest verkauft er zur zeit nichts mehr, sein Shop ist leer, hatte aber 16K+ bewertungspunkestand :~