- Akku Tests und Balkonkraftwerk Speicher         
Ergebnis 1 bis 10 von 17

Thema: Arduino Mega Matrix

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    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.

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

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    13.01.2014
    Beiträge
    454
    Blog-Einträge
    3
    Kein Wunder, dass es nicht klappt, meine Matrix ist eine andere. Die hat nur einen 'Gnubbel'. Hat anscheinend auch eine andere Verschaltung.

    Dann fangen wir halt ganz von vorn an und bestimmen die Pinbelegung selbst.
    Dazu folgendes Programm benutzen:
    Code:
    //------------------------------------------------------------------------------
    //                           Matrix Inspektor
    // (c) SISOR 10/2014
    //------------------------------------------------------------------------------
    /* Mit diesem Programm lässt sich die PinBelegung einer LED-Matrix bestimmen
       Vorgehensweise:
       -Zuerst eine Bennenung der MatrixPins festlegen
         Tipp: Orientierung der Matrix mit Edding markieren 
               (auf der Rückseite oben links einen Punkt malen) 
       -ArduinoPin 22 und 24 mit jeweils einem Pin der Matrix verbinden
       -Blinkt keine LED? -Andere MatrixPins wählen, solange versuchen, 
          bis eine Led blinkt
       -Blinkt nun eine LED: 
         -Das an ArduinoPin 22 angeschlossene MatrixPin ein ReihenPin
         -Das an ArduinoPin 24 angeschlossene MatrixPin ein SpaltenPin
       -Jetzt kann ein Belegungsplan erstellt und durch weitere Versuche
          ergänzt werden:
          -z.B.: MatrixPin 1: Reihe  6
                 MatrixPin 2: Spalte 2
                 MatrixPin 3: Spalte 1
                ...
       -Nun sind wir fast fertig und können den Belegungsplan erweitern,
          indem wir jetzt festlegen, wo wir die einzelnen MatrixPins
          am Arduino anschließen:
          -z.B.: MatrixPin 1: Reihe  6  ArduinoPin 22
                 MatrixPin 2: Spalte 2  ArduinoPin 24
                 MatrixPin 3: Spalte 1  ArduinoPin 26
                ...
       -Schließlich können wir die PinBelegung ins Fritzing-Programm übertragen:
                               1  2  3  4  5  6  7  8
       int spaltenPins[8]  = {26,24, ...             };
       int reihenPins[8]   = { ...         , 22, ... };  
       ...
    */    
    
    void setup(){
      pinMode(22, OUTPUT);
      pinMode(24, OUTPUT);
      digitalWrite(22, HIGH);
    }
    
    void loop(){
      digitalWrite(24, LOW); 
      delayMicroseconds(200); 
      digitalWrite(24, HIGH);
      delay(400); 
    }
    Geändert von Sisor (04.10.2014 um 11:33 Uhr)

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    03.10.2014
    Beiträge
    8
    Das hab ich alles schon durch (sieh Tabelle). Die Spaltenansprache klappt, bloß das Flackern in Zeile 3 weist auf irgendeinen elektrischen Kurzschluss hin....

    Was kann das sein?

    ich nehme übrigens dies Programm, und Fummel zum Abtasten in der Image-Matrix rum

    int spaltenPins [8] = {30,48,46,24,42,26,34,36} ; // also S1, S2 etc
    int reihenPins [8] = {22,32,38,28,52,40,50,44} ; // also Z1 etc
    int image[8][8]= {
    {0,0,0,0,0,0,0,0},
    {1,1,1,1,1,1,1,1},
    {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,0,0,0,0,0},
    {0,0,0,0,0,0,0,0},

    };
    void setup()
    {
    for (int i=0; i<8; i++)
    {
    pinMode (spaltenPins[i],OUTPUT);
    pinMode (reihenPins[i], OUTPUT);
    digitalWrite(spaltenPins[i],HIGH);
    }
    }

    void loop()
    {
    for (int x=0; x<8; x++)
    {
    for (int y=0; y<8; y++)
    {
    if (image[x][y]==1)
    {
    digitalWrite(reihenPins[y],HIGH);
    }
    else
    {
    digitalWrite(reihenPins[y],LOW);
    }
    }
    digitalWrite (spaltenPins[x],LOW);
    delayMicroseconds(20);
    delay (200);
    digitalWrite(spaltenPins[x],HIGH);
    }
    }

  5. #5
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    13.01.2014
    Beiträge
    454
    Blog-Einträge
    3
    Das Flackern hast du mit delay(200) programmiert.

  6. #6
    Neuer Benutzer Öfters hier
    Registriert seit
    03.10.2014
    Beiträge
    8
    Zitat Zitat von joar50 Beitrag anzeigen
    @oel

    Hallo,



    Versuche es mal mit diesem PDF:

    das ist nur wenig informativer, als das Pin out, welches ich schon gepostet habe, trotschem, schön dank

    - - - Aktualisiert - - -

    Zitat Zitat von Sisor Beitrag anzeigen
    Das Flackern hast du mit delay(200) programmiert.

    ich bin langsam der Überzeugung, meine Matrix ist kaputt

    wenn ich dies uploade:

    int spaltenPins [8] = {30,48,46,24,42,26,34,36} ; // also S1, S2 etc
    int reihenPins [8] = {22,32,38,28,52,40,50,44} ; // also Z1 etc
    int image[8][8]= {

    /* {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,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},*/
    {1,1,1,1,1,1,1,1},
    {1,1,1,1,1,1,1,1},
    {1,1,1,1,1,1,1,1},
    {1,1,1,1,1,1,1,1},
    {1,1,1,1,1,1,1,1},
    {1,1,1,1,1,1,1,1},
    {1,1,1,1,1,1,1,1},
    {1,1,1,1,1,1,1,1},
    };
    void setup()
    {
    for (int i=0; i<8; i++)
    {
    pinMode (spaltenPins[i],OUTPUT);
    pinMode (reihenPins[i], OUTPUT);
    digitalWrite(spaltenPins[i],HIGH);
    digitalWrite(reihenPins[i],LOW);
    }
    }

    void loop()
    {
    for (int x=0; x<8; x++)

    {


    // digitalWrite (spaltenPins[x],HIGH);
    digitalWrite (reihenPins[x],LOW);
    delay (200);
    }
    };



    leuchtet nur die altbekannte E3 Diode. Die Anschlüsse stimmen jetzt alle, die Belegungen auch.

  7. #7
    Erfahrener Benutzer Robotik Einstein Avatar von Rabenauge
    Registriert seit
    13.10.2007
    Ort
    Osterzgebirge
    Alter
    56
    Beiträge
    2.211
    Dein Programm hier wird nicht funktionieren, da du ja die Zeile, die die Pins HIGH schalten sollte, auskommentiert hast?
    Grüssle, Sly
    ..dem Inschenör ist nix zu schwör..

  8. #8
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    13.01.2014
    Beiträge
    454
    Blog-Einträge
    3
    1. Das 63 deiner 64 Dioden kaputt sind ist SEHR unwahrscheinlich.
    2. LED sind Light Emitting Diodes, also Dioden. Sie funktionieren nur in Flussrichtung, d.h. wenn du sie verpolst, sperren sie und leuchten niemals.
    Das hast du offensichtlich bei allen Dioden bis auf eine gemacht.
    Also ist deine Anschlussbelegung DEFINITIV falsch.
    Dein Programm müsste bei richtiger PinBelegung alle LEDs zum leuchten bringen.
    3. Dein Programm gibt jetzt immer Strom. Damit überlastest du die LEDs langfristig evtl.
    Du könntest auch loop{} schreiben, denn in der Loop änderst du den Zustand der LEDs nicht.
    Besser z.B.:
    Code:
    void loop() {
      for (int x=0; x<8; x++) {
        digitalWrite (reihenPins[x],LOW);
        delayMicroseconds(100);
        digitalWrite (reihenPins[x],HIGH);
        delayMicroseconds(1000);
      }
    }
    Dein Programm hier wird nicht funktionieren, da du ja die Zeile, die die Pins HIGH schalten sollte, auskommentiert hast?
    Nein, die LEDs leuchten, wenn spaltenPins HIGH und reihenPins LOW sind.

  9. #9
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    12.07.2007
    Ort
    Eisenach
    Beiträge
    409
    @oel

    Hallo,

    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.
    Versuche es mal mit diesem PDF:
    Angehängte Dateien Angehängte Dateien

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

fchao-Sinus-Wechselrichter AliExpress