- 3D-Druck Einstieg und Tipps         
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 Matrix

    Hallo,

    habe von Papa einen Fritzing Creator Kit bekommen mit Arduino Mega. Im Buch ist aber ein Arduino Uno. Nun sitzen wir und wollen die Matrix anschließen. Wo bekommt man die Info, wie man diese, bzw an welche Pins des Bords man die 8x8 Matrix anschließt.

    Danke für die Information

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    13.01.2014
    Beiträge
    454
    Blog-Einträge
    3
    Hier gibts das Programm:
    Matrix

    Im Code steht...
    Code:
    /*
    Matrix
    LED-Matrix zeigt ein Bild
    
    Dieses Beispiel aus dem Fritzing Creator Kit: www.fritzing.org/creator-kit.
    */
    
    // Pinbelegung für Arduino UNO
    int reihenPins[8] = {9,3,2,12,15,11,7,6}; // Anschlüsse der Reihenpins am Arduino
    int spaltenPins[8] = {13,8,17,10,5,16,4,14}; // Anschlüsse der Spaltenpins am Arduino
    
    
    // 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,57,10,5,56,4,54}; // Anschlüsse der Spaltenpins am Arduino
    
    ...
    Für den Mega müssen die Kommentarzeichen '//' entfernt werden, und der Uno-Teil wird am besten gelöscht.
    Dein Programm sollte dann so beginnen:

    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,57,10,5,56,4,54}; // Anschlüsse der Spaltenpins am Arduino
    
    ...
    Wie du sieht, bleiben die Reihenpins die gleichen, die Spaltenpins ändern sich zum Teil.
    Z.B. wird Matrix-Spaltenpin 3 auf Arduino-Mega-Pin 57 gelegt (statt 17 beim Uno).
    Also insgesamt 3 Änderungen:
    57 statt 17
    56 statt 16
    54 statt 14

    Viel Spass mit dem Arduino!
    Geändert von Sisor (03.10.2014 um 19:31 Uhr)

  3. #3
    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?

  4. #4
    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)

  5. #5
    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)

  6. #6
    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.

Ä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
  •  

MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad