5x7 dot Matrix TA01-11

Thor Wallhall

Neues Mitglied
25. Aug. 2017
19
0
1
52
Hi,
ich hab folgendes Problem,
ich möchte auf 6TA07-11 einen Text laufen und stehen lasen, möchte dazu einen arduino nano und 74hc595 Schieberegister benutzen..

ich schaff es aber noch nicht mal eine einzige Matrix dazu zu bringen etwas anzuzeigen so wie ich es möchte..
hab schon mehrere Versuche gestartet und verschiedene Varianten ausprobiert...

anscheinend bin ich zu doof oder ich übersehe was....

kann mir da jemand helfen??
 
Hallo,

mit TA01-11 und 6TA07-11 kann ich leider nichts anfangen (anderen gehts eventuell auch so). :hmmmm:
Gut wäre ein Link zum Schaltplan. Du kannst ihn auch hier hochladen.

Hast du bereits etwas Code geschrieben, dann poste ihn mal und beschreibe, wie du das Shiftregister und das Display angeschlossen hast.

Dirk :ciao:

Ich verschiebe das Thema mal in die Kategorie Arduino-Forum.
 
mit TA01-11 und 6TA07-11 kann ich leider nichts anfangen
Ja, und gurgeln hat auch nicht geholfen.
Ich tippe auf irgendein parallel ansteuerbares LCD - dafür gibt sicher dann auch 'ne Arduino-Bibliothek.
Dazu müßte allerdings jemand mit Hochsprachenaffinität was sagen.
 
bin gerade auch am ausprobieren.....
aber ich komm nicht dahinter was ich falsch mache....
ich kann jetzt auch keinen speziellen Sketch hier zeigen, da ich schon mehrere ausprobiert habe und nichts geht
 
ich finde auch auf YouTube jetzt nicht wirklich was das mir weiterhilft
ich versteh das Prinzip...,...

naja.... ich will euch jetzt damit mal nicht noch länger belästigen am Wochenende

ich probier einfach noch weiter und wenn ich was vorzeigbares habe melde ich mich wieder...
Trotzdem danke für die bisherigen Meldungen
 
Das Problem ist, wir können dir nicht ein funktionsfertiges Sketch schreiben für ein Projekt mit einem Display, von dem wir nicht wissen,
  • wie das Display über den 74HC595 am Mikrocontroller angeschlossen ist
  • ob es mehrere kaskadierte Displays/HC595 sind
  • ob es gemultiplext ist oder statisch angesteuert wird
ich will euch jetzt damit mal nicht noch länger belästigen am Wochenende
... kein Problem, du "belastigst" uns nicht!

ich probier einfach noch weiter und wenn ich was vorzeigbares habe melde ich mich wieder...
Ja das wäre gut, dann können wir besser helfen.
Suche am besten ein bereits bestehendes ähnliches Projekt mit 74HC595 und LED Display und versuche dies für dich anzupassen.
Wenn du nicht weiter kommst, dann frag einfach im Forum :)

Dirk :ciao:
 
naja.... ich will euch jetzt damit mal nicht noch länger belästigen am Wochenende
... kein Problem, du "belastigst" uns nicht!
/sign. Mach dir keine Gedanken, du belästigst keinen. Außerdem es gibt keine dummen Fragen, nur dumme Antworten.
Du musst nur damit leben dass wir das hier alle als Hobby machen (wir werden ja nicht dafür bezahlt; außer @Dirk, das aber auch höchstwahrscheinlich mal grade so dass die Serverkosten wieder rein kommen), also ist mal einer da, ein paar Tage ein Anderer... Je nach dem wie die Zeit da ist. Dieses komische Grünzeugs zum Beispiel... Das was man vorm Haus hat. Das ist recht erbarmungslos was die Zeitplanung angeht ;)
(ja, gemeint war die Gartenpflege. Ich drücke mich gerne etwas sonderbar aus ^^)
 
Der 74hc595 liefert nicht genug Strom für Multiplexbetrieb
Die von Dir verlinkten Dots sollten bei 10mA leuchten.
Beim Schieberegister finde ich +/-25mA pro Ausgang, 70mA gesamt.
Was für'n AVR in dem Arduino steckt, hab ich jetzt nicht nachgeschlagen die meisten schaffen aber 20mA. Allerdings gibts auchhier grenzwerte für Ports bzw den ganzen AVR.
Also im Multiplexing geht das sicher (auch nur mit dem AVR, ohne Schieberegister) - und wenn man immer nur wenige LEDs gleichzeitig aktiviert, aber das machts natürlich unnötig kompliziert.
Sinniger wäre also, immer 'ne ganze Spalte zu aktivieren, was entsprechend viel Strom vertragen muß. Üblicherweise über einen Transistor - ob die nun direkt vom AVR angesteuert werden, oder auch an einem Schieberegister hängen (mitkaskadiert) ist dabei egal.

Zum Thema: Wenn die Schaltung vorhanden ist, brauchen wir diese. Wenn Du sie erst noch entwickeln willst, kannst Du natürlich Fragen.
Bei dem, was der AVR dann konkret abarbeiten muß, um da irgendwas sinniges darzustellen, können Dir hier die meisten helfen.
Wie Du das mit Deiner gewählten Programmiersprache umsetzen mußt, ist dann schon 'ne andere Sache. Zu Assembler, Bascom und C gibts hier diverse ... Experten. Bezüglich Arduino hatte sich Ditron ja im anderen Thread gemeldet.

@TommyB : Ich glaube nicht, daß Dirk hier für irgendwas bezahlt wird. Das ist allerhöchstens Werbung für den Shop oder die Rodenhausen'schen Dienstleistungen. Inwiefern die paar Spenden (hab kein PayPal) die Serverkosten, Softwarelizenzen und Entwicklungsaufwand decken, will ich gar nicht mutmaßen
 
Die von Dir verlinkten Dots sollten bei 10mA leuchten.
Beim Schieberegister finde ich +/-25mA pro Ausgang, 70mA gesamt.
Ja, schon. Die Rede war von einer Laufschrift und bei sechs Anzeigen hast du immerhin 30 Spalten.
Das wird selbst bei 25 mA ziemlich dunkel.

Man könnte auch eine 14 x 15 Matrix daraus machen, wird ohne Treiber aber doch nicht reichen.
Sind immerhin 210 LED von denen jede, die an ist, ca. 10 mA Dauerstrom haben möchte.
 
@TommyB : Ich glaube nicht, daß Dirk hier für irgendwas bezahlt wird. Das ist allerhöchstens Werbung für den Shop oder die Rodenhausen'schen Dienstleistungen. Inwiefern die paar Spenden (hab kein PayPal) die Serverkosten, Softwarelizenzen und Entwicklungsaufwand decken, will ich gar nicht mutmaßen
Ich habe schon öfters was gespendet, und das mache ich sehr gerne. Ohne euch wäre ich teilweise aufgeschmissen gewesen und Dirk hat halt die Serverkosten. Auch den DVB Viewer - eine Software die 24h/d/7d/w bei mir läuft habe ich schon mehrfach gekauft, obwohl ich keine weitere Lizenz brauchte. Nur um die Entwickler zu unterstützen.

Aber wir driften jetzt etwas in's :offtopic: ;)
 
Das wird selbst bei 25 mA ziemlich dunkel.

Man könnte auch eine 14 x 15 Matrix daraus machen, wird ohne Treiber aber doch nicht reichen.
Stimmt, zur Helligkeitsabnahme hatte ich nichts gesagt - das gilt generell fürs Multiplexing.

Der Arduino scheint auf einem ATmega48/88/168/328 zu basieren (ohne PB) - es gibt also ein nutzbares SPInterface. (Multiplexing + Lauftext wird schon rechenintensiever, da wäre es besser, die Hardware zu nutzen).
Die Schieberegister an die Kathoden der Dots. An die Anoden kann man (über einen Treibertransistor (meinetwegen auch mehrere als IC)) auch ein Schieberegister hängen (und ggf mit dem/n andere/n kaskadieren), aber von den Spalten her ist ja immer nur eine aktiv, eintakten müßte man aber jedesmal für alle Spalten (also einmal an, alle anderen aus).

Überlegenswert wäre, die Spalten über einen eigenen Kanal zu takten, und da das "an" einfach immer nur eins weiterzutakten. (Ein Clock-Strobe pro Frame, statt Spaltenanzahl viele + einmal Data hin und herschalten.) Ggf auch mittels Schieberegister, oder via Dekadenzähler (4017) oder so...

Damit kann man dann natürlich genauso mehrere dieser DotMatrixBricks unterschiedlich angeordnet ansteuern.
 
hab mir jetzt mal diesen Sketch zusammengebastelt...

ist ursprünglich einer für eine 8x8 Matrix....



CodeBox C
const int col[5]={2,3,4,5,6};
const int row[7]={7,8,9,10,11,12,13};
int pixels[5][7];
int count = 1000;
char str[]="FABCDEDCBA";
int strLen = sizeof(str);
int ptrChar = 0;
typedef bool charMapType[5][7];
const charMapType charBlank = {
  (0,0,0,0,0),
  (0,0,0,0,0),
  (0,0,0,0,0),
  (0,0,0,0,0),
  (0,0,0,0,0),
  (0,0,0,0,0),
  (0,0,0,0,0)
};
const charMapType grossO = {
  (0,0,1,0,0),
  (0,1,0,1,0),
  (1,0,0,0,1),
  (1,0,0,0,1),
  (1,0,0,0,1),
  (0,1,0,1,0),
  (0,0,1,0,0)
};
const charMapType kleinx = {
  (0,0,0,0,0),
  (0,0,0,0,0),
  (1,0,0,0,1),
  (0,1,0,1,0),
  (0,0,1,0,0),
  (0,1,0,1,0),
  (1,0,0,0,1)
};
const charMapType kleiny = {
  (0,0,0,0,0),
  (0,0,0,0,0),
  (0,1,0,0,1),
  (0,1,0,0,1),
  (0,1,1,1,1),
  (0,0,0,0,1),
  (0,1,1,1,1)
};
const charMapType kleing = {
  (0,0,0,0,0),
  (0,0,0,0,0),
  (0,1,1,1,0),
  (1,0,0,0,1),
  (0,1,1,1,1),
  (0,0,0,0,1),
  (0,1,1,1,0)
};
const charMapType kleine = {
  (0,0,0,0,0),
  (0,0,0,0,0),
  (0,1,1,1,0),
  (1,0,0,0,1),
  (1,1,1,1,0),
  (1,0,0,0,0),
  (0,1,1,1,0)
};
const charMapType kleinn = {
  (0,0,0,0,0),
  (0,0,0,0,0),
  (0,0,0,0,0),
  (1,0,1,1,0),
  (1,1,0,0,1),
  (1,0,0,0,1),
  (1,0,0,0,1)
};
const charMapType *charMap[7] = {&grossO, &kleinx, &kleiny, &kleing, &kleine, &kleinn,
&charBlank};
 
void setup() {
 for(int colPin = 2;colPin < 6;colPin++){
  pinMode(col[colPin], OUTPUT);
  for(int rowPin = 7;rowPin < 13;rowPin++){
    pinMode(row[rowPin], OUTPUT);
    digitalWrite(col[colPin], HIGH);
  }
 }
setupChar();
}
void loop() {
 refreshScreen();
 if (count-- == 0){
  count = 1000;
  setupChar();
 }
}
void setupChar(){
  char c = str[ptrChar];
  int offset = c - 'A';
  const charMapType *cMap = charMap[offset];
  for (int x = 0;x < 5; x++){
    for (int y = 0;y < 7; y++){
      bool v = (*cMap)[x][y];
      if(v){
        pixels[x][y] = LOW;
      }else{
        pixels[x][y] = HIGH;
      
      }
    }
  }
  ptrChar++;
  if(ptrChar>strLen-1){
    ptrChar = 0;
  }
}
void refreshScreen(){
  for (int thisRow = 0; thisRow < 7; thisRow++){
    digitalWrite(row[thisRow], HIGH);
    for (int thisCol = 0; thisCol < 5; thisCol++){
      int thisPixel = pixels[thisRow][thisCol];
      digitalWrite(col[thisCol], thisPixel);
      if (thisPixel == LOW) {
        digitalWrite(col[thisCol], HIGH);
      }
    }
    digitalWrite(row[thisRow], LOW);
  }
 
}


EDIT: Ich habe den Code in die Codebox gesetzt, dann lässt es sich besser lesen, Dirk
 
Zuletzt bearbeitet von einem Moderator:
das sind Bilder von der Pinbelegung aus dem Datenblatt für das 5x7 dot Matrix.....

und das ist ein Bild von dem was es macht wenn der Sketch hochgeladen ist....

bekomme das Bild nicht hochgeladen...
sry

auf alle Fälle leuchten bei der Matrix nur 3 dots in der ersten und 3 dost in der letzten Reihe
und der Brick ist direkt an den Arduino Nano angeschlossen... ohne Treiber oder Schieberegister dazwischen....... normal müsste es gehen....

also ich weiss jetzt nicht wo der Fehler ist...
 
Danke Dirk....

ich glaube ich hab da was entdeckt....
muss ich heute nach der Arbeit daheim ausprobieren....

melde mich
 
der Brick ist direkt an den Arduino Nano angeschlossen
Zu den Grenzen des Atmega328 (@5V):
  • jeder I/O-Pin kann 20mA liefern bzw schlucken
  • durch C0 - C5, D0- D4, ADC7 und RESET zusammen maximal 100mA
  • durch B0 - B5, D5 - D7, ADC6, XTAL1, XTAL2 zusammen maximal 100mA
Inwiefern der Arduino da irgendwelche Treiber zwischen hat, kann ich nicht sagen. Auch nicht, wie da die Pins umgelabelt sind.

Die LEDs des LED-Steines sind auf 20mA@ca 2V ausgelegt, sie sollten aber auch schon bei deutlich weniger Strom funzeln. Wenn Du 'ne "COL" auf High setzt, und alle sieben "ROW"s auf Low, fließen durch jeden "ROW" die angegebenen 20mA, durch den "COL" gehen aber dann 140mA. Um sicher zu sein, müßtest Du den Strom pro "ROW" auf knapp 3mA begrenzen - wenn da überhaupt noch was glimmt.
Oder eben die COLs über einen Transistor treiben (der die 140mA abkann).

In Deinen Code schaue ich jetzt mal rein, Du scheinst jeden Pixel einzeln zu setzen. Das ist recht aufwändig...
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)