Hilfe bei Programmierung für ein Schulprojekt?
Das ist mein Projekt die Bargraphen sollen eine Uhr werden der Bargraph links ist für die Stunden der in der Mitte ist für Minuten und der rechts für sekunden icg will es so machen dass jede stunde eine led von der linken angeht sodass ab 12 uhr alle leds leuchten. In der Mitte sollen die LEDs jede 5min das gleichr machen sodass bei 60min alle leuchten und das gleiche bei den sekunden dann auch. Alles soll mit Hilfe einer RTC funktionieren aber mir würde es erstmals reichen wenn die LEDs richtig funktionieren würden. Ich habe keine Ahnung vom Programmieren deshalb bin ich auf Hilfe angewiesen. Das ganze soll in Arduino programmiert werden und wir benutzen einen Arduino Nano R3 und falls es benötigt wird kann ich auch noch den Schaltplan aus Eagle hier reinposten.
Ich hoffe dass mir jemand hier helfen kann auch wenn es vielleicht viel verlangt ist die ganze Programmierung zu machen oder vllt den Anfang aber ich habe echt keine Ahnung wie das gehen soll. Ich bedanke mich schonmal im Voraus.
Diese fünf bauteile sollten schieberegister sein die steckt man dann rein
das ist der Schaltplan vom Projekt falls es benötigt wird
1 Antwort
Zuerst solltest du die Ansteuerung hinbekommen. Laut Plan kommen Schieberegister zum Einsatz. Genauer gesagt sind 74HC595N Chips.
Die Schieberegister sind in Reihe geschaltet, sodass am Ende nur 3 Pins am Arduino benötigt werden. Der Rest ist für die Stromversorgung und zum Verbinden der Schieberegister.
Hier ist eine gute Anleitung, die ein einzelnes Schieregister erklärt.
Das setzen des Registers musst du dir immer in Binär vor Augen halten. Auch wenn z.B. das Register mit dem Integer 28 gesetzt wird, ist binäre Form dahinter wichtig. Jeder Bit im Byte stellt eine der 8 LEDs im Schieberegister dar.
Hier gibt es ein Beispiel, wie mehrere Schieberegister benutzt werden. Ein Code Beispiel ist auch dabei.
Kurz zusammengefasst setzt du den Latch Pin auf LOW, schreibst alle Bytes für alle Schieberegister und setzt den Latch Pin wieder auf HIGH.
Ab Zeile 65 gibt es dafür ein Beispiel.
Bevor zu dem Setzen der einzelnen LEDs anfängst, solltest du dir ein Helfer anlegen, sodass du z.B. die Anzahl der LEDs vom ersten, zweiten und dritten Bargraphen durch eine vom Menschen sinvolle Zahl setzen kannst.
Du hättest dann z.B.
setGraphen(5,3,7);
Für Bargraphen 1 = 5 LEDs von z.B. links und das gleiche für die anderen Graphen.
Die Logik dahinter müsstest du dir ausdenken. Arrays könnten sinnvoll sein, sodass du per Index zugreifen kannst. Da sich Bargraphen und Schieberegister mischen, wird es noch etwas schieriger. Du musst immer alle LEDs setzen.
Wenn du deine Helfer Funktion hast, kannst du mit der Uhr (RTC) anfangen. Wenn du soweit bist, sollte es im Vergleich einfach sein.
Uhrzeit regelmäßig auslesen, aus Stunden, Minuten und Sekunden die Anzahl der LEDs setzen und dann eben die Helfer Funktion aufrufen.