-         

Ergebnis 1 bis 5 von 5

Thema: 8X8 Matrix mit Arduino zum duchlaufen bringen

  1. #1

    8X8 Matrix mit Arduino zum duchlaufen bringen

    Anzeige

    Hallo,
    ich arbeite mich grade in die Programmierung von Arduino ein.
    Nun habe ich das "fritzing" creator kit dem auch eine 8 X 8 LED matrix beiliegt.

    folgende "einfache" Aufgabenstellung habe ich mir überlegt.
    Die LED sollen hintereinander Zeile für Zeile die Spalten durchlaufen.
    Hört sich ja ersteinmal recht trivial an. Bedauerlicherweise bin ich damit schon gescheitert.
    hier mein Versuch:

    Code:
    // Pinbelegung für Arduino MEGA
    int spaltenPins[8] = {13,3,4,10,6,11,15,16};   // Anschlüsse der Spaltenpins am Arduino in der Reihenfolge der Spalten auf der Matrix
    int reihenPins[8] = {9,14,8,12,1,7,2,5};      // Anschlüsse der Reihenpins am Arduino in der Reihenfolge der Reihen auf der Matrix                                      
    
    void setup(){
      for (int i=0; i<8; i++){                       // Alle Pins werden als OUTPUT deklariert 
        pinMode(reihenPins[i],OUTPUT);
        pinMode(spaltenPins[i],OUTPUT);
    
      }
    }
    
    void loop(){
    
        for (int x=0; x<8; x++){
          digitalWrite(spaltenPins[x],LOW);      // Spalte 1 auf Masse schalten
          for (int y=0; y<8; x++){
            digitalWrite(reihenPins[y],HIGH);   // Zeile 1 auf +5V schalten
            delay(300);                                  // 300 milli Sekunden warten
            digitalWrite(reihenPins[y],LOW); } // Zeile 1 auf Masse schalten
                                  
       digitalWrite(spaltenPins[x],HIGH); }   // Spalte 1 auf +5V schalten
    }

    Was passiert? die Erste Zeile leuchtet kontinuierlich komplett.

    Ich wüde gerne die
    Code:
    for
    Schleife verstehen lernen.

  2. #2
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    13.01.2014
    Beiträge
    398
    Blog-Einträge
    3
    Code:
    // Pinbelegung für Arduino MEGA
    int spaltenPins[8] = {13,3,4,10,6,11,15,16};   // Anschlüsse der Spaltenpins am Arduino in der Reihenfolge der Spalten auf der Matrix
    int reihenPins[8] = {9,14,8,12,1,7,2,5};      // Anschlüsse der Reihenpins am Arduino in der Reihenfolge der Reihen auf der Matrix                                      
    
    void setup(){
      for (int i=0; i<8; i++){                       // Alle Pins werden als OUTPUT deklariert 
        pinMode(reihenPins[i],OUTPUT);
        pinMode(spaltenPins[i],OUTPUT);
        digitalWrite(spaltenPins[i],HIGH);
      }
    }
    
    void loop(){
    
        for (int x=0; x<8; x++){
          digitalWrite(spaltenPins[x],LOW);      // Spalte 1 auf Masse schalten
          for (int y=0; y<8; y++){
            digitalWrite(reihenPins[y],HIGH);   // Zeile 1 auf +5V schalten
            delay(300);                                  // 300 milli Sekunden warten
            digitalWrite(reihenPins[y],LOW); } // Zeile 1 auf Masse schalten
                                  
       digitalWrite(spaltenPins[x],HIGH); }   // Spalte 1 auf +5V schalten
    }

  3. #3
    Guten morgen,
    vielen Dank für die schnelle Antwort.
    Wenn es denn nun an der fehlenden Variabele und dem erstmaligen Deaktivieren der der Masse Ausgänge (na das hört sich ja vielleicht idiotisch an ) gelegen haben sollte wäre ich hochzufrieden.
    Das würde ja schon mal bedeuten, das ich das Prinip verstanden habe.
    Ich bin schon gespannt darauf den code heute nach mittag zu testen.

  4. #4
    So, nun konnte ich den optimierten code testen.
    Eines vorweg, ich weiss es zu schätzen, dass Ihr hier im forum Euch die Mühe macht über meine Zeilen zu schauen. Vielen Dank dafür!
    Die Funktionalität sieht nun mit dem Code folgendermassen auss:

    Komplette Matrix leuchtet, bis auf die erste Zeile und Spalte.
    die Spalte wird nach rechts duchgeschaltet (also dunkel geschaltet) und nach erreichen der letzten Spalte wird die nächste Zeile dunkel geschaltet und die Spalten entsprechend wieder von links nach rechts.
    Ich hoffe das war einigermassen verständlich.

    Eine ähnliche Funktion hatte ich auch schon errreicht. Da wurde das "dunkle Kreuz" quasi diagonal durch die matrix geschaltet.

    Vielleicht findet sich ja doch noch eine Lösung.

  5. #5
    Okay,
    nach etwas herumprobieren, habe ich mein Lauflicht bekommen.
    Es mussten nur noch die Polaritäten invertiert werden (HIGH -> LOW / LOW -> HIGH) und initial auch die Reihen definiert auf einen Wert gesetzt

    Code:
    // 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
    
    void setup(){
      for (int i=0; i<8; i++){                       // Alle Pins werden als OUTPUT deklariert 
        pinMode(reihenPins[i],OUTPUT);
        pinMode(spaltenPins[i],OUTPUT);
        digitalWrite(spaltenPins[i],LOW);
        digitalWrite(reihenPins[i],HIGH);
      }
    }
    
    void loop(){
    
        for (int x=0; x<8; x++){
          digitalWrite(spaltenPins[x],HIGH);      // Spalte +5V
          for (int y=0; y<8; y++){
            digitalWrite(reihenPins[y],LOW);   // Zeile 1 Masse
            delay(300);                                  // 300 milli Sekunden warten
            digitalWrite(reihenPins[y],HIGH); } // Zeile 1 +5V
                                  
       digitalWrite(spaltenPins[x],LOW); }   // Spalte 1 Masse
    }

Ähnliche Themen

  1. LED Matrix mit Arduino ansteuern?
    Von robots4-ever im Forum Elektronik
    Antworten: 2
    Letzter Beitrag: 01.03.2012, 08:56
  2. 8x8 Matrix ?
    Von whynot im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 4
    Letzter Beitrag: 13.07.2008, 23:33
  3. Ringmagnet zum Schwimmen bringen
    Von Lordcyber im Forum Mechanik
    Antworten: 10
    Letzter Beitrag: 21.03.2008, 13:37
  4. LED Matrix - 8x8 - Layout
    Von darkkiller im Forum Konstruktion/CAD/Sketchup und Platinenlayout Eagle & Fritzing u.a.
    Antworten: 4
    Letzter Beitrag: 23.06.2007, 11:49
  5. Diode mit Pc zum Leuchten bringen (kein Plan)
    Von MischaMV im Forum Elektronik
    Antworten: 35
    Letzter Beitrag: 12.03.2005, 17:30

Berechtigungen

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