- SF800 Solar Speicher Tutorial         
Ergebnis 1 bis 10 von 17

Thema: Arduino Mega Matrix

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    03.10.2014
    Beiträge
    8

    Arduino Mega und Matrix

    Danke, soweit war ich schon. Das hatte ich auch im Netz gefunden und empfand es teils als hilfreich.

    Ich finde die Pins auf dem Bord nicht. Sollten es die Zahlen neben der Steckleiste sein, dann ist bei mir mit 53 Schluss, 54 und 55 sind dann wahrscheinlich GND aber 56 und 57 ist nicht zu finden.

    Gibt es nicht ein Bild, wo die Steckverbindungen zu sehen sind, oder eine Schaltzeichnung, denn die Pin-Belegung von Uno und Mega scheint doch recht verschieden zu sein. ICH BIN ABSOLUTER NEULING.

    Danke für die weitere Hilfe

    http://pighixxx.com/unov3pdf.pdf
    Das hab ich angesehen und das
    http://arduino.cc/en/Hacking/PinMapping2560

    Was ist zum Beispiel der unterschied zwischen digital Pin und mapped Pin?

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    13.01.2014
    Beiträge
    454
    Blog-Einträge
    3
    Na sowas, die Pins gibts ja gar nicht.
    Naja, dann schreiben wir das Programm halt um, und suchen uns die Pins selbst aus.
    Wir können im Prinzip alle Digital-Pins (0-53) als Digitalausgang benutzen.
    Vorschlag: Statt 57, 56, 54 nehmen wir 47, 46, 44.

    Sähe dann so aus:
    Code:
    /*
    Matrix
    LED-Matrix zeigt ein Bild
    
    Dieses Beispiel aus dem Fritzing Creator Kit: www.fritzing.org/creator-kit.
    */
    
    // Pinbelegung für Arduino MEGA
    int reihenPins[8] = {9,3,2,12,55,11,7,6}; // Anschlüsse der Reihenpins am Arduino
    int spaltenPins[8] = {13,8,47,10,5,46,4,44}; // Anschlüsse der Spaltenpins am Arduino
    
    ...

    Was ist zum Beispiel der unterschied zwischen digital Pin und mapped Pin?
    Mapped bedeutet, dass sich die Arduino-Entwickler eine eigene Pin-Bezeichnung überlegt haben.
    Sie nennen die Pins des Boards z.B. Analog- oder Digitalpins. Das dient der Vereinfachung.
    In Wirklichkeit liegen die Pins an unterschiedlichen Ports und haben andere, kryptische Bezeichnungen.
    Diese kann man im Datenblatt des Microcontrollers finden.
    Unter der Haube wird also z.B. Digitalpin 40 über eine Art Tabelle (Map) in eine Adresse überführt,
    die den Port direkt adressiert. Man kann auch nicht direkt ein Bit eines Ports setzen, sondern nur alle 8.
    Das geht über eine Bitoperation, die im Hintergrund ausgeführt wird, und für den Arduino-Programmierer
    nicht sichtbar sind.
    Für den normalen Arduino-Nutzer reicht daher zu wissen, wieviele Pins sein Arduino hat,
    und welche davon durch sein Programm schon belegt sind.
    Die Grundidee von Arduinos: Dem Programmierer den Low-Level Kram abzunehmen,
    sodass er eigentlich kein Datenblatt des Microcontrollers lesen braucht, und sich stattdessen auf das
    Lösen der eigentlichen Aufgabe konzentrieren kann (z.B. Ansteuerung einer Led-Matrix).
    Geändert von Sisor (03.10.2014 um 22:12 Uhr)

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    03.10.2014
    Beiträge
    8
    Danke, das hab ich gemacht.

    Nun muß ich nur noch wissen, was die Zahlen bedeuten an der Matrix

    Da steht z. b. 16 15 11 6 10 4 3 13 oben und an der Seite 9 14 8 12 1 7 2 5

    Woher weiß ich, welche Matrix-Zahl an welche Arduino Zahl kommt, also damit verbunden wird?

    Und wo gibt es eine Legende, die die kryptischen Bezeichnungen auf der Pin-Map mir deutet?

    solche Sache, wie a - analog d-digital, pwm - power with modulation, tx und rx krieg ich ja gedeutet, aber OCA4 (sieht aus wie ne Adresse) und PE1 nicht.
    Geändert von oel (03.10.2014 um 22:37 Uhr)

  4. #4
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    13.01.2014
    Beiträge
    454
    Blog-Einträge
    3
    Ja, beim Anschluss kann man sich schnell vertun...
    Versuch mal folgende Belegung:


    o o o o o o o o
    22 24 26 28 30 32 34 36



    38 40 42 44 46 48 50 52
    o o o o o o o o
    __

    Hier das auf die neue Belegung abgestimmte Programm:
    Code:
    /*
    Matrix
    LED-Matrix zeigt ein Bild
    
    Dieses Beispiel aus dem Fritzing Creator Kit: www.fritzing.org/creator-kit.
    */
    
    // Belegung der Matrix (Z=Zeile / S=Spalte)
    // obere Pins
    // S1 Z5 Z3 S4 Z8 S2 Z2 Z1
    // untere Pins
    // S3 S6 Z4 S8 Z6 Z7 S7 S5
    
    // Anschluss Matrix an Arduino Mega
    // obere Pins
    // 22 24 26 28 30 32 34 36
    // untere Pins
    // 38 40 42 44 46 48 50 52
    
    // Pinbelegung für Arduino MEGA
    int reihenPins[8]  = {36,34,26,42,24,46,48,30};
    int spaltenPins[8] = {22,32,38,28,52,40,50,44};
    
    
    int image[8][8]={ // Bild, das auf der Matrix gezeigt wird. 1 = LED an, 0 = LED aus
    
    {0,1,0,0,0,0,1,0},
    {1,1,1,0,0,1,1,1},
    {0,1,0,0,0,0,1,0},
    {0,0,0,1,1,0,0,0},
    {0,0,0,1,1,0,0,0},
    {1,0,0,0,0,0,0,1},
    {0,1,1,1,1,1,1,0},
    {0,0,1,1,1,1,0,0}
    
    };
    
    void setup(){
      for (int i=0; i<8; i++){ // Alle Pins werden als OUTPUT declariert
        pinMode(reihenPins[i],OUTPUT);
        pinMode(spaltenPins[i],OUTPUT);
      }
    }
    
    void loop(){
      for (int y=0; y<8; y++){                  // zeilenweise werden
        for (int x=0; x<8; x++){                // von links nach rechts alle Einträge des Arrays geprüft
          if (image[x][y]==1){                  // ist der Eintrag = 1
            digitalWrite(spaltenPins[x],HIGH);  // wird der Spaltenpin eingeschalten
          } else {                              // sonst
            digitalWrite(spaltenPins[x],LOW);   // abgeschalten
          }
        }
        digitalWrite(reihenPins[y],LOW); // nun wird der Reihenpin auf LOW geschalten (da es die Kathode der LED betrifft bedeutet LOW eingeschalten: LOW = GND)
        delayMicroseconds(100); // das Programm hällt 100 Mikrosekunden an
        digitalWrite(reihenPins[y],HIGH); // danach wird der Reihenpin wieder auf HIGH (in diesem Fall also abge-) schalten
      }
    }
    Und wo gibt es eine Legende, die die kryptischen Bezeichnungen auf der Pin-Map mir deutet?
    Im Datenblatt des ATMega2560-Microcontrollers von Atmel.
    Aber wie schon geschrieben, dieses Wissen braucht man zum Arduino-Programmieren eigentlich nicht.

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    03.10.2014
    Beiträge
    8
    Danke, hab alles umgesetzt, aber er tuts noch nicht. Also das Muster vom Image-Befehl wird nicht angezeigt.

    Sag mir doch einfach mal, wie ich gezielt die Lampe A1 anspreche. Und dann muß dass doch analog für die anderen Zellen ebenso gelten, weil ich Zeile und Spalte hab ....

    Ich hab jetzt kapiert, die Zahlen bei int ReihenPins sind die Anschlüsse auf dem Arduino Board.


    Jetzt leuchten viele Zellen, außer A1, A8, A3, A4 und andere. Manche leuchten sehr stark, manche Glimmen nur. Wie das? Liegen unterschiedliche Spannungen auf den Ausgängen? Oder ist die Matrix kaputt?

    Wenn ich ein zweites Delay (200) aktiviere, gibt es ein Wandern der nicht vollständigen Zeilen.

  6. #6
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    13.01.2014
    Beiträge
    454
    Blog-Einträge
    3
    Jetzt leuchten viele Zellen, außer A1, A8, A3, A4 und andere. Manche leuchten sehr stark, manche Glimmen nur. Wie das? Liegen unterschiedliche Spannungen auf den Ausgängen? Oder ist die Matrix kaputt?
    Nein, falsch angeschlossen.
    Ich hab jetzt kapiert, die Zahlen bei int ReihenPins sind die Anschlüsse auf dem Arduino Board.
    Ja, aber nicht in der Reihenfolge.

    Leg die Matrix mal auf den Rücken, sodass du die Pins siehst. Du siehst jetzt, dass die Ecken der Matrix etwas erhöht sind.
    Aber da ist noch eine Erhöhung auf der Mitte einer Seite. Dreh die Matrix so, dass diese Erhöhung unten ist.
    Jetzt hast du die Matrix so liegen, wie sie auf dem Belegungs-Schema oben zu sehen ist.
    Mein Beispiel ist so gewählt, dass du das Matrix-Pin oben links mit Arduino-Pin 22 verbindest, das daneben mit 24 usw.

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    03.10.2014
    Beiträge
    8
    Zitat Zitat von Sisor Beitrag anzeigen
    Aber da ist noch eine Erhöhung auf der Mitte einer Seite.
    Meinst Du mit Erhöhung den Gnubbel links obere Hälfte Mitte auf der Linie, der einen Lötpunkt verdeckt im Bild?

    http://www.bilder-hochladen.net/files/kiyp-j-1f0e.jpg

    Wenn ich, wegen meines Rumfummelns alle Bits auf 1 setzt, bleibt alles dunkel. Warum das?

    Warum muß ich mich alle 3 Minuten hier im Forum neu einloggen?

    So ich hab die Verbindungen jetzt mir total allein rausklamüsert:


    MEGA PIN 36 34 32 30 28 26 24 22
    BredbrdNr 12 13 14 15 16 17 18 19
    Matrix Pin A B C D E F G H Oben
    legt dod S8 S7 Z2 S1 Z4 S6 S4 Z1
    A Zeile 1 DH H3 H4 GH H6 FH BH AH
    A Zeile 2 DC C3 C4 GC C6 FC BC AC
    A Zeile 3 D8 83 84 G8 86 F8 B8 A8
    A Zeile 4 DE E3 E4 GE E6 FE BE AE
    A Zeile 5 D1 13 14 G1 16 F1 B1 A1
    A Zeile 6 D7 73 74 G7 76 F7 B7 A7
    A Zeile 7 D2 23 24 G2 26 F2 B2 A2
    A Zeile 8 D5 53 54 G5 56 F5 B5 A5
    legt dod Z5 Z7 S2 S3 Z8 S5 Z6 Z3
    Matrix Pin 1 2 3 4 5 6 7 8 Unten
    BredbrdNr 12 13 14 15 16 17 18 19
    MEGA PIN 52 50 48 46 44 42 40 38

    Danach geht es so: Wenn ich Zelle A1 ansprechen will muß ich den Strom über oben D und oben H leiten. Matrix Pin 1 legt dod Z5 (Zeile 5)

    Was ich noch nicht verstehe ist, wenn ich im Image-Befehl alle Bits auf 0 setze, warum dann trotzdem in Zeile 3 alle Dioden außer H3 aufleuchten im bestimmten Rhythmus?

    Es stört, daß er zugleich mit Spalte A auch die Zelle E3 einschaltet. Wie kann das sein?
    Geändert von oel (04.10.2014 um 11:34 Uhr)

Ähnliche Themen

  1. 8X8 Matrix mit Arduino zum duchlaufen bringen
    Von PatrickHH im Forum Software, Algorithmen und KI
    Antworten: 4
    Letzter Beitrag: 12.07.2014, 07:36
  2. Arduino Mega upload Problem
    Von Artemis_Simetra im Forum Arduino -Plattform
    Antworten: 0
    Letzter Beitrag: 11.02.2014, 20:33
  3. Arduino UNO, MEGA und Bascom
    Von Ripper121 im Forum Arduino -Plattform
    Antworten: 1
    Letzter Beitrag: 27.03.2013, 16:57
  4. LED Matrix mit Arduino ansteuern?
    Von robots4-ever im Forum Elektronik
    Antworten: 2
    Letzter Beitrag: 01.03.2012, 07:56
  5. 2 x HDMM01 auf Arduino Mega
    Von arnoa im Forum Sensoren / Sensorik
    Antworten: 2
    Letzter Beitrag: 08.02.2012, 16:19

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiFePO4 Speicher Test