
Aufgepasst!
Günstige Hardware und kostenlose eBooks für den Arduino gibt es bei AZ Delivery
Info zu meinen Partnerlinks
Seit ich mich mit dem Arduino beschäftige, finde ich die Neopixels aka WS2812 auch ziemlich geil.
Das sind quasi RGB-LEDs, die man alle einzeln ansteuern kann. Meist kennt man sie als Lichterkette, ich hab mir aber nun kürzlich einen Ring aus 12 WS2812 LEDs bestellt, um eine kleine Uhr damit zu bauen.
Der Anschluss ist denkbar einfach: 5V, GND, 1 digitaler PIN, fertig.
Für mein Projekt musste ich noch ein RTC (real time clock) Modul benutzen, da es ja sonst keine Uhrzeit gibt, die ich darstellen kann.
Mit 12 LEDs hat man so einige Möglichkeiten, die Uhrzeit darzustellen.
Ich habe mir überlegt, die verstrichenen Stunden in Weiß darzustellen. Damit man aber auch ungefähr weiß, wo man sich in der aktuellen Stunde befindet, habe ich die Stunde in sechs 10-Minuten-Teile zerstückelt und jedem dieser Abschnitte eine eigene Farbe zugeteilt.
Die ersten 10 Minuten sind gelb, 10-20 ist orange, 20-30 rot und so weiter. Aktuell ist es 6 Uhr grün, also irgendwo zwischen 06:30 Uhr und 06:40 Uhr.
Wer, wie ich, neu auf dem Gebiet der Neopixels ist, findet einen super detaillierten Neopixel-Guide auf der Ardafruit-Website. Dort kann auch die Library heruntergeladen werden, sollte man diese noch nicht besitzen.
Hier mein Code und 2 Bildchen zu diesem kleinen Projekt.
Der 60 LED-Ring ist schon bestellt und dann baue ich eine große Uhr!
Da es bei einigen immer wieder Probleme mit der DS3231.h gibt, habe ich meine Version mal bereitgestellt (klick).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
#include <Adafruit_NeoPixel.h> #include <DS3231.h> #define PIN 6 #define NUMPIXELS 12 Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800); int delayval = 500; RTCDateTime dt; DS3231 clock; uint32_t color; boolean reset = false; void setup() { Serial.begin(9600); pixels.begin(); clock.begin(); clock.setDateTime(__DATE__, __TIME__); pixels.setBrightness(128); } void loop() { dt = clock.getDateTime(); String hour = clock.dateFormat("g", dt); String minute = clock.dateFormat("i", dt); int hLED = hour.toInt(); int mLED = minute.toInt(); if (hLED==12) reset = true; if (hLED==1 && reset == true) { for (int i=0;i<=NUMPIXELS-1;i++) { pixels.setPixelColor(i, pixels.Color(0,0,0)); } reset = false; } /* the colors * 00-10 - yellow - 128,128,0 * 10-20 - orange - 255,128,0 * 20-30 - red - 255,0,0 * 30-40 - green - 0,255,0 * 40-50 - blue - 0,0,255 * 50-60 - purple - 128,0,128 */ if (mLED <10) { color = pixels.Color(16,16,0); } else if (mLED >= 10 && mLED<20) { color = pixels.Color(16,8,0); }else if (mLED >= 20 && mLED<30) { color = pixels.Color(16,0,0); } else if (mLED >= 30 && mLED<40) { color = pixels.Color(0,16,0); } else if (mLED >= 40 && mLED<50) { color = pixels.Color(0,0,16); } else if (mLED >= 50) { color = pixels.Color(16,0,16); } //Serial.println(hLED); for (int i=0;i<=hLED-1;i++) { pixels.setPixelColor(i, pixels.Color(16,16,16)); } pixels.setPixelColor(hLED-1, color); pixels.show(); delay(delayval); } |
- Arduino kleine LED-Uhr Schaltung
- Arduino kleine LED-Uhr Ziffernblatt
Wenn Dir dieser Beitrag geholfen hat und/oder Du mich finanziell unterstützen magst, kannst Du dies gerne per Paypal machen.
Alternativ kannst Du Dir meinen Amazon-Partnerlink in die Favoriten legen und Amazon bei Deinen zukünftigen Einkäufen darüber aufrufen:
Es entstehen Dir dadurch keine Mehrkosten, ich erhalte aber eine kleine Provision.
Über einen Kommentar freue ich mich natürlich auch :-)

Jan B-Punkt

Neueste Artikel von Jan B-Punkt (alle ansehen)
- Adventskalender Gewinnspiele 2024 - 1. Dezember 2024
- Freie News für freie User – Schneller als die Paywall - 22. April 2024
- Adventskalender Gewinnspiele 2023 - 1. Dezember 2023
- Angespielt: Starship Troopers: Extermination - 19. Mai 2023
- Fazit zum ATOMSTACK A5 pro nach zwei Monaten Nutzung - 9. Mai 2023
Hey Jan, Hammer. Die Uhr wollte ich schon immer bauen, allerdings im infinity mirror style. Hobbys haben wir schon mal die selben. Zum Arduino kam ich eigentlich übers Fotografieren. Würde mir gerne die Uhr nachbauen wenn ok ist.? Bräuchte nur ne art Schaltplan der rest hab ich schon hier liegen
Klar, leg los :)
Hatte ursprünglich auch mit dem unendlichen Spiegelkasten geliebäugelt, es dann aber bleiben lassen und doch lieber mit Plexi gearbeitet (s. https://janbpunkt.de/2017/01/23/grosse-lichtspiel-uhr-mit-arduino-und-neopixels/).
Schaltplan ist easy. Schau Dir das Bild mit dem Breadboard nochmal genauer an. Sind nur 9 Kabel. 4 die zum Clock-Modul gehen und 3 die den Ring versorgen. Dazu kommt dann noch Strom.
Viel Spaß!
Hey klasse. Danke schon mal. Mal schauen was ich auf deiner seite noch so tolles finde.
Hi finde das ein tolles Projekt und wollte das nachbauen. Welche Version von den Adafruit NeoPixel hast du verwendet?
Das sind „normale“ WS2812, die ich fertig „am Ring“ gekauft habe. Den 12er Ring findest Du z.B. hier: https://www.az-delivery.de/products/kopie-von-rgb-led-ring-ws2812-mit-12-rgb-leds-5v-fuer-arduino?rfsn=1013417.4e119b (ref-Link)
Hey Jan, Hammer Code.Sitze gerade in der schule und habe die selbe aufgabe bekommen und kopiere dein Code.
LG Olaf KampfHolz
Coole Schule! Viel Erfolg :-)
Sehr geehrter herr B-punkt,
wir haben ein Problem mit ihrem Code „RTCDateTime dt;“ does not name a type (wir sind Anfänger). Können sie uns behilflich sein ? Das wäre sehr freundlich, wenn sie uns helfen können.
LG
Olaf Holz
Moin Moin,
das sind leider etwas wenig Informationen zum Fehler. Welche Zeile meckert die IDE denn an? Welche Library verwendet ihr? Habe die, die ich verwendet hatte, ja extra verlinkt.
Davon ab liegt das Projekt ca. sieben Jahre zurück. Ich kann nicht sagen, ob ich da wirklich helfen kann.
Viele Grüße
Jan