Servus. Ich habe eine 10x11 Led Matrix gebaut, die über vier Schieberegister und zwei TransistorArrays angesteuert wird. Diese Matrix soll später (hfftl. bis zum 24.12.15) ein Qlocktwo Nachbau werden. Mein Programm ist nun soweit, dass ich die Pins der Matrix ansteuern kann Und für die erste Basic-Version einen Arduino internen Timer habe, der per Minuten und Stunden Taster gesettet werden kann. Nun wäre die Frage: Wie kann ich den Code für die Ausgabe der Zeit m.H. der Matrix am schnellsten und einfachsten in der Arduino IDE verwirklichen? Ich hoffe mir kann dabei jemand helfen Vllt sogar noch heute Abend. (Soll ein Weihnachtsgeschenk werden und habe über der Woche nicht so viel Zeit daran weiter zu arbeiten) Erste Gedanken waren drei Switchcases laufen zu lassen, eines für die Stunden, das zweite für die Minuten, also "fünf nach", "zehn nach" usw. und das dritte, für die vier Led's in den Ecken, die die genaueren Minuten anzeigen, also Text: "fünf nach" und 2 EckLeds ergeben praktisch: "7 nach" Ich bin zur Zeit ratlos Ich dachte noch daran vllt BitMaps zu verwenden, und da einfach die einzelnen Leds anzusteuern Ich werde hier mal meinen bisherigen Code anhängen, vllt kann ja jmd was damit anfangen und mir sogar helfen. Vielen Dank schonmal im Voraus :D Code: #include <TimerOne.h> int latchPin = 5; int clockPin = 6; int dataPin = 4; volatile int Sekunde = 0; volatile int Minute = 0; volatile int Stunde = 0; int Taster1 = 8; int Taster2 = 9; int Tasterstatus1; int Tasterstatus2; int iState1 = 0; int iState2 = 0; int iState3 = 0; void setup() { pinMode(latchPin, OUTPUT); pinMode(dataPin, OUTPUT); pinMode(clockPin, OUTPUT); Timer1.initialize(1000000); // set a timer of length 100000 microseconds (or 0.1 sec - or 10Hz => the led will blink 5 times, 5 cycles of on-and-off, per second) Timer1.attachInterrupt( timerIsr ); // attach the service routine here pinMode(Taster1, INPUT); pinMode(Taster2, INPUT); } void loop() { switch (iState1) //Switchcase Minuten { } switch (iState2) //Switchcase Stunden { } switch (iState3) //1, 2, 3, 4, 6, 7, 8, 9, { } } //Übersetzt Logik auf Hardware void updateShiftRegister( byte spalte, uint16_t leds) { digitalWrite(latchPin, LOW); byte spalte_bit = 0; if (spalte < 6) { spalte_bit = 1 << spalte +3; } shiftOut(dataPin, clockPin, LSBFIRST, spalte_bit); digitalWrite(latchPin, LOW); spalte_bit = 0; if (spalte >= 5) { spalte_bit = 1 << spalte -3; } shiftOut(dataPin, clockPin, LSBFIRST, spalte_bit); shiftOut(dataPin, clockPin, LSBFIRST, leds << 3); shiftOut(dataPin, clockPin, LSBFIRST, leds >> 2); delay (100); digitalWrite(latchPin, HIGH); } void timerIsr() { if ( Sekunde < 59) { Sekunde ++; } else { Sekunde = 0; if (Minute < 59) { Minute ++; } else { Minute = 0; if (Stunde < 11) { Stunde ++; } else { Stunde = 0; } } } Tasterstatus1 = digitalRead(Taster1); if (Minute < 59) { if (Tasterstatus1 == HIGH) { Minute ++; delay(500); } } else { Minute = 0; } Tasterstatus2 = digitalRead(Taster2); if (Stunde < 11) { if (Tasterstatus2 == HIGH) { Stunde ++; delay(500); } } else { Stunde = 0; } }
Und ich bin ratlos, was du genau willst. Du solltest das besser erklären, evtl. mit einem Bild. Aber den Termin, den du dir da setzt, finde ich sehr gewagt.
https://backes-markus.de/blog/2014/02/diy-rgb-strip-wordclock/ ging schneller Beitrag "Re: Minutengenaue 24 Stunden-Wortuhr - wer will mitbauen?" https://www.mikrocontroller.net/attachment/266419/bei_herbert.jpg arduino atmega328p WS2812B Stripes RTC DS3231 TSOP31236 http://www.dx.com/p/24-key-wireless-infrared-ir-remote-controller-for-rgb-led-light-bulb-1-cr2025-47019#.VmyYg16xki8
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.