Willkommen in unserer Community

Werde Teil unserer Community und registriere dich jetzt kostenlos ...

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

5x7 dot Matrix TA01-11

Dieses Thema im Forum "Arduino-Projekte" wurde erstellt von Thor Wallhall, 26. August 2017.

  1. Thor Wallhall

    Thor Wallhall Neues Mitglied

    Registriert seit:
    25. August 2017
    Beiträge:
    19
    Zustimmungen:
    0
    Map
    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??
     
  2. Dirk

    Dirk Administrator Mitarbeiter

    Registriert seit:
    28. Januar 2007
    Beiträge:
    4.064
    Zustimmungen:
    100
    Ort:
    Mittelhessen, Giessen
    Sprachen:
    C, Assembler, Pascal, C++, PHP, Java
    Map
    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.
     
  3. LotadaC

    LotadaC Sehr aktives Mitglied

    Registriert seit:
    22. Januar 2009
    Beiträge:
    2.695
    Zustimmungen:
    37
    Ort:
    Hennigsdorf
    Sprachen:
    BascomAVR, Assembler
    Map
    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.
     
  4. Thor Wallhall

    Thor Wallhall Neues Mitglied

    Registriert seit:
    25. August 2017
    Beiträge:
    19
    Zustimmungen:
    0
    Map
    Verzeihung....
    ein TA07-11 ist eine 5x7 dot Matrix
    hab mich da oben vertippt
     
  5. Mikro23

    Mikro23 Mitglied

    Registriert seit:
    2. Januar 2017
    Beiträge:
    82
    Zustimmungen:
    7
    Ort:
    Großraum Hannover
    Sprachen:
    C, Assembler
    Map
  6. Thor Wallhall

    Thor Wallhall Neues Mitglied

    Registriert seit:
    25. August 2017
    Beiträge:
    19
    Zustimmungen:
    0
    Map
    ich arbeite mit nem arduino nano
     
  7. Thor Wallhall

    Thor Wallhall Neues Mitglied

    Registriert seit:
    25. August 2017
    Beiträge:
    19
    Zustimmungen:
    0
    Map
    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
     
  8. Thor Wallhall

    Thor Wallhall Neues Mitglied

    Registriert seit:
    25. August 2017
    Beiträge:
    19
    Zustimmungen:
    0
    Map
    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
     
  9. Dirk

    Dirk Administrator Mitarbeiter

    Registriert seit:
    28. Januar 2007
    Beiträge:
    4.064
    Zustimmungen:
    100
    Ort:
    Mittelhessen, Giessen
    Sprachen:
    C, Assembler, Pascal, C++, PHP, Java
    Map
    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
    ... kein Problem, du "belastigst" uns nicht!

    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:
     
  10. Thor Wallhall

    Thor Wallhall Neues Mitglied

    Registriert seit:
    25. August 2017
    Beiträge:
    19
    Zustimmungen:
    0
    Map
    Das mach ich...Danke!!1
     
  11. TommyB

    TommyB Premium Benutzer

    Registriert seit:
    17. Mai 2010
    Beiträge:
    1.612
    Zustimmungen:
    45
    Ort:
    127.0.0.1 ;)
    Sprachen:
    C, Assembler, LunaAVR, VB.Net, Python
    /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 ^^)
     
  12. LotadaC

    LotadaC Sehr aktives Mitglied

    Registriert seit:
    22. Januar 2009
    Beiträge:
    2.695
    Zustimmungen:
    37
    Ort:
    Hennigsdorf
    Sprachen:
    BascomAVR, Assembler
    Map
    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
     
  13. Mikro23

    Mikro23 Mitglied

    Registriert seit:
    2. Januar 2017
    Beiträge:
    82
    Zustimmungen:
    7
    Ort:
    Großraum Hannover
    Sprachen:
    C, Assembler
    Map
    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.
     
  14. TommyB

    TommyB Premium Benutzer

    Registriert seit:
    17. Mai 2010
    Beiträge:
    1.612
    Zustimmungen:
    45
    Ort:
    127.0.0.1 ;)
    Sprachen:
    C, Assembler, LunaAVR, VB.Net, Python
    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: ;)
     
  15. LotadaC

    LotadaC Sehr aktives Mitglied

    Registriert seit:
    22. Januar 2009
    Beiträge:
    2.695
    Zustimmungen:
    37
    Ort:
    Hennigsdorf
    Sprachen:
    BascomAVR, Assembler
    Map
    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.
     
  16. Thor Wallhall

    Thor Wallhall Neues Mitglied

    Registriert seit:
    25. August 2017
    Beiträge:
    19
    Zustimmungen:
    0
    Map
    hab mir jetzt mal diesen Sketch zusammengebastelt...

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



    CodeBox C und 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
     
    #16 Thor Wallhall, 27. August 2017
    Zuletzt von einem Moderator bearbeitet: 27. August 2017
  17. Thor Wallhall

    Thor Wallhall Neues Mitglied

    Registriert seit:
    25. August 2017
    Beiträge:
    19
    Zustimmungen:
    0
    Map
  18. Thor Wallhall

    Thor Wallhall Neues Mitglied

    Registriert seit:
    25. August 2017
    Beiträge:
    19
    Zustimmungen:
    0
    Map
    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...
     
  19. Thor Wallhall

    Thor Wallhall Neues Mitglied

    Registriert seit:
    25. August 2017
    Beiträge:
    19
    Zustimmungen:
    0
    Map
    Danke Dirk....

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

    melde mich
     
  20. LotadaC

    LotadaC Sehr aktives Mitglied

    Registriert seit:
    22. Januar 2009
    Beiträge:
    2.695
    Zustimmungen:
    37
    Ort:
    Hennigsdorf
    Sprachen:
    BascomAVR, Assembler
    Map
    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...
     

Diese Seite empfehlen

  • Über uns

    Unsere immer weiter wachsende Community beschäftigt sich mit Themenbereichen rund um Mikrocontroller- und Kleinstrechnersysteme. Neben den Themen Design von Schaltungen, Layout und Software, beschäftigen wir uns auch mit der herkömmlichen Elektrotechnik.

    Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  • Coffee Time

    Unser makerconnect-Team arbeitet hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und unser eigener makerconnekt-Server regelmäßig gewartet wird. Wir nehmen das Thema Datensicherung und Datenschutz sehr ernst und sind hier sehr aktiv, auch sorgen wir uns darum, dass alles Drumherum stimmt!

    Dir gefällt das Forum und die Arbeit unseres Teams und du möchtest es unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft, unser Team freut sich auch über eine Spende für die Kaffeekasse :-)
    Vielen Dank!
    Dein makerconnect-Team

    Spende uns! (Paypal)