LED Matrix mit Uhrzeit, Temperatur, Luftfeuchtigkeit und LDR zur Helligkeitsregelung

    This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

    • LED Matrix mit Uhrzeit, Temperatur, Luftfeuchtigkeit und LDR zur Helligkeitsregelung

      Hallo !
      Hiermit stelle ich mein erstes Projekt hier vor.

      Ich weiß, das meine Programmierung nicht optimal ist und würde mich auch über Vorschläge freuen wie ich manches besser / anders gestalten kann.
      Ich möchte auch gleich hier darauf hinweisen das ich einiges von dem Code aus anderen Projekten geklaut habe, z.B. von tschoetsch die LED Matrix ansteuerung. Diese hab ich nur etwas angepasst. Danke an ihn an dieser Stelle ! ;)

      Mein Vorhaben sieht folgendermaßen aus:
      Eine große gut lesbare Uhr mit Temperatur Anzeige und Luftfeuchtigkeitsanzeige für die Werkstatt. (Relativ große Werkstatt mit Hebebühne etc.) Daher man soll es auch aus einiger Entfernung gut ablesen können.

      Was ich nicht will: Irgendwelche Lauftexte etc. es soll immer alles gleichzeitig angezeigt werden.

      Daher hab ich mich für MAX7219 Module aus China entschieden, diese sind groß genug. Leider hab ich aktuell nur 4 Module da, somit kann ich nicht alles gleichzeitig anzeigen und muss noch auf die anderen Module warten.

      Als RTC habe ich ein DS3231 Modul genommen, da ich mit den ds1307 Modulen schlechte Erfahrungen gemacht habe (Sehr ungenau), ich hoffe die DS3231 sind hier besser, das ist mein erstes Projekt bei dem ich so eins verwende.

      Als Temperatur und Luftfeuchtigkeitsfühler hab ich ein Si7021 Modul mit integriertem Pegelwandler ausgewählt.

      Der LDR ist aus der Bastelkiste, und ist so angeschlossen: +5V - 56kOhm - ADC Pin A.0 - LDR - GND
      Bei Helligkeit ist der Widerstand ca. 2kOhm bei Dunkelheit ca 50kOhm, diese Werte muss ich noch anpassen.

      Die Zeit Einstellung sollte möglichst einfach funktionieren. deswegen hat mein Projekt nur 3 Taster. Mit dem 1ten werden die Stunden um 1 hochgestellt, mit dem 2ten die Minuten, und mit dem 3ten werden die Sekunden genullt.

      Die Anzeige soll in etwa so aussehen: "12:05 12°C 54%" auf Sekunden und Kommastellen verzichte ich bewusst um nicht allzuviele Module verwenden zu müssen. Ausserdem sind beide für diese anzeige Irrelevant.

      Ich habe schnell festgestellt das die MAX7219 Module ordentlich Strom ziehen auf höchster Helligkeits einstellung. Deswegen auch die automatische Regelung per LDR. Ich habe gemessen das 4 Module bei alle Dots eingeschaltet und auf voller Helligkeit 1,2 A bei 5V brauchen. Das sind immerhin 6 Watt. Bei normalem Anzeigetext und höchster Helligkeit sind wir bei 0,45 A = 2,25 Watt, bei niedrigster Helligkeit bei 0,05A = 0,25 Watt. Wenn keiner in der Werkstatt ist (Licht aus) soll natürlich nicht unnötig Energie verbraten werden. Ausserdem werden die Module auch relativ warm.

      Dieses Projekt ist noch nicht fertig, aktuell auch nur auf dem Experimentierboard aufgebaut. Als µC habe ich eigentlich einen Atmega328 geplant, der Atmega644 ist nur der auf meinen Board. Ein Layout auf Lochraster wird noch folgen.

      Über Verbesserungsvorschläge und Feedback freue ich mich!

      Mein Code im Anhang, da er zu lange ist um ihn hier posten zu können ;)





      Mfg
      Files
    • Hallo Ghostrider,

      ich habe mir auch so eine Uhr gebastelt und das Ganze in eine Plexiglas Röhre gesteckt. Deckel und Füße sind aus dem 3 Drucker.

      Der Stromverbrauch ist immens, da die Jungs den Widerstandswert für den Strom aus dem Datenblatt genommen habe.

      Wenn du den Widerstand, ist nur einer auf der Platine, von 10 kohm auf 150 kohm änderst, ist die Anzeige immer noch mehr als hell genug. Kannst dann in 15 Schritten regeln und der Stromverbrauch ist nur noch minimal.

      IMG_2679.JPG
    • hallo @Ghostrider1911

      Anmerkungen/Vorschläge von meiner Seite.

      1. Vorschlag
      Du könntest die Anzeige auf die Breite für die Uhrzeit auslegen und im Betrieb die Anzeige wechseln.
      Also z.B. 5s die Zeit anzeigen, dann 1s Temperatur, dann 1s Feuchte, dann wieder alles von vorne.
      Damit könntest du Module sparen und damit auch Strom.

      2. Vorschlag.
      Ist ein Projekt halb fertig, fallen einem oft noch Dinge ein, die man noch gerne eingebaut hätte. Vielleicht willst du die maximale Helligkeit ja z.B. einstellbar machen oder auch die Schwelle, ab welchem Dämmerungswert die Anzeige aus gehen soll.
      Auch die Zeit kann man einstellbar machen im Betrieb.
      Vielleicht fallen dir noch mehr Spielereien ein. Das lässt sich alles mit 3 Tasten machen.
      Dazu müsste man aber schon beim Schreiben der Software die Struktur flexiebel und erweiterbar halten.
      An der Stelle möchte ich dir das Tutorial Statemachine von mir im Lexikon nahe legen.
      Das hat sich bei meinen Projekten immer bewährt. Spätere Erweiterungen lassen sich nach dem Schema einfach implementieren.

      3. Vorschlag
      Tasten sollten immer entprellt werden. Vor allem, wenn die Funktionalität der Tasten etwas erweitert wird (Mehrfachfunktionen auf einer Taste).
      Wie das geht findest du z.B. auch hier im Tutorial Menüs in Bascom. Im Code zum Wecker ist eine einfache Tastenentprellung in einem Modul 'Tasten.inc" aufgezeigt.