Arduino Projekt: LED Matrix Uhr

Mit zwei (oder mehr) MAX7219 läßt sich relativ einfach und schnell eine LED Uhr erzeugen. Als Zeitgeber verwende ich ein RTC Modul DS3231.

Benötigte Bauteile

Für den Ausbau verwende ich folgende Bauteile:

Das Shield MAX7219

Das Shield gibt es bei eBay.de aufgebaut und nicht aufgebaut zu kaufen, wenn man sich mit dem Lötkolben gut auskennt dann kann ich das Kit zum selber aufbauen empfehlen.

Aufbau

Das Projekt besteht aus 2x MAX7219 LED Matrix Shields sowie einer RTC und dem Arduino UNO.

ModulArduino UNO
 MAX7219 LED Matrix Shield
VCC 5V
GND GND
DIN digitaler PIN 9
 CS digitaler PIN 10
CLK digitaler PIN 11
RTC DS3231
VCC 5V
GND GND
 SDA analoger PIN A4
 SCL analoger PIN A5

 

Aufbau der Schaltung für die LED Matrix Uhr
Aufbau der Schaltung für die LED Matrix Uhr

Der Anschlussplan für dieses Projekt sieht wie folgt aus:

Anschlussplan für MAX7219 LED Matrix Uhr mit RTC
Anschlussplan für MAX7219 LED Matrix Uhr mit RTC

Quellcode

Der nachfolgende Quellcode ist nur ein Auszug es werden noch die Dateien „statics.h“, „rtc_functions.h“ sowie „max7219_functions.h“ benötigt (Diese sind am Ende de Tutorials als Paket zum Download bereitgestellt.) Des Weiteren wird die Bibliothek für das Max7219 Shield und die Wire.h Bibliothek benötigt.

 

Video

Arduino LED Uhr mit Max7219 Shield

Download

 

 

12 Gedanken zu „Arduino Projekt: LED Matrix Uhr

  • Juni 4, 2018 um 16:23
    Permalink

    Hallo Stefan,

    Sketch läuft. Anzeige müsste um 90 Grad gedreht werden.
    Ich konnte keine Lösung finden.

    Grüße Heli

    Antwort
    • Mai 17, 2019 um 11:27
      Permalink

      Hallo zusammen,
      gibt es hier mittlerweile eine Lösung damit die ANzeige auch wieder sauber von links nach rechts läuft?

      Gruß Hansi

      Antwort
      • Mai 18, 2019 um 08:05
        Permalink

        Hi,

        ich habe bisher noch keine Zeit gehabt mich damit zu beschäftigen.
        Das steht jedoch ziemlich weit oben auf meiner ToDo Liste.

        Gruß,

        Stefan

        Antwort
  • Pingback:Arduino Projekt: Temperaturanzeige auf einer 8x8 LED Matrix - Technik Blog

  • Mai 19, 2019 um 13:59
    Permalink

    Hallo,

    wie kann man zeit einstellen ?

    grüß

    Antwort
    • Mai 19, 2019 um 19:22
      Permalink

      Hi,

      die Zeit kann zbsp. über den seriellen Monitor der Arduino IDE gesetzt werden.
      Wenn dieses Fenster geöffnet wird und der Microcontroller gestartet wird, sollte ein Text erscheinen welcher den Befehl erläutert.

      Beispiel: set 28.08.2013 10:54

      Gruß,

      Stefan

      Antwort
      • Mai 24, 2019 um 23:45
        Permalink

        Hallo Stefan,

        Fenster geöfnet aber leer, Ich habe zeit gegeben und gesendet aber funktioniert nicht, ich mache ein fehler aber wo..?

        Grüß

        Alex

        Antwort
        • Juni 7, 2019 um 14:23
          Permalink

          Hi Alex,

          leider verstehe ich dein Problem nicht.
          Gerne kannst du auch in englisch schreiben wenn es für dich einfacher ist.
          Dein Sketch kannst du mir gerne per E-Mail senden, dann schaue ich mir es mal an.

          Gruß,

          Stefan

          Antwort
      • Mai 25, 2019 um 15:22
        Permalink

        Hallo Stefan Kannst du mal bitte funktionierte sketch senden oder welche spalte muss ich ändern.

        danke

        Alex

        Antwort
        • Mai 26, 2019 um 09:55
          Permalink

          Hi,

          ich verstehe nicht welchen Sketch. Auf dem Chip des Bausatzes ist bereits ein fertiges Sketch / Programm drauf.

          Gruß,

          Stefan Draeger

          Antwort
  • Juni 13, 2019 um 11:05
    Permalink

    Hi,
    Ich habe jetzt ne Stunde rumgespielt und kann die Zeit immernoch nicht einstellen.
    Wenn ich setRTCTime auskommentiere kommt ein Fehler beim überprüfen.
    Der serielle Monitor zeigt nichts.
    Könntest du es bitte erklären (für dumme).
    Hier mal die Stelle im Code:
    //Manuelles setzen der Uhrzeit über den Seriellen Monitor der IDE.
    void setRTCTime(){
    char linebuf[30];
    byte counter;
    if (Serial.available()){
    delay(100); // Warte auf das Eintreffen aller Zeichen vom seriellen Monitor
    memset(linebuf,0,sizeof(linebuf)); // Zeilenpuffer löschen
    counter=0; // Zähler auf Null
    while (Serial.available()){
    linebuf[counter]=Serial.read(); // Zeichen in den Zeilenpuffer einfügen
    if (counter<sizeof(linebuf)-1) counter++; // Zeichenzähler erhöhen
    _____________________________________________________________________
    Gruß
    Rob

    Antwort
    • Juni 17, 2019 um 20:02
      Permalink

      Hi Robert,

      ich habe gemerkt das so einige ein Problem mit diesem Beitrag haben, daher habe ich mich entschlossen einen erweiterten Beitrag zu verfassen wo ich hoffentlich alle Fragen abschließend klären kann.

      Gruß,

      Stefan Draeger

      Antwort

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.