Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

Stilvolle Wanduhr mit Adafruit 60-LED Neopixel-Ring & Arduino

Komponenten und Materialien

Software

Projektbeschreibung

Eine elegante Wanduhr aus vier 60-LED-Neopixel-Ringen (¼-Kreise), die zu einem vollen Kreis zusammengesetzt werden. Die Uhrzeit wird über ein Echtzeituhr-Modul (RTC DS1307 auf dem eDOTcore-Board) gehalten. Stunden-, Minuten- und Sekundenzeiger werden als farbige LED-Bögen dargestellt:

Die Helligkeit ist auf 20/255 gedimmt für angenehmes Umgebungslicht. 3D-Druck-Teile für das Gehäuse sind auf Thingiverse verfügbar.

Code

#include <Wire.h>
#include <RTClib.h>
#include <Adafruit_NeoPixel.h>

#define PIN 6
#define PIXEL 60 // pro Ring, 4 Ringe = 240 LEDs gesamt

Adafruit_NeoPixel strip = Adafruit_NeoPixel(PIXEL * 4, PIN, NEO_GRB + NEO_KHZ800);
RTC_DS1307 RTC;
DateTime Clock;
byte hourval, minuteval, secondval;

void setup() {
  Serial.begin(9600);
  Wire.begin();
  RTC.begin();
  if (!RTC.isrunning()) {
    // RTC.adjust(DateTime(__DATE__, __TIME__)); // Einmalig zum Stellen aktivieren
  }
  strip.begin();
  strip.show(); // alle aus
  strip.setBrightness(20);
}

void loop() {
  Clock = RTC.now();
  secondval = Clock.second();
  minuteval = Clock.minute();
  hourval = Clock.hour();
  if (hourval > 11) hourval -= 12; // 12h-Format
  // Stunde: 5 Min pro LED → (Stunde*60 + Minute)/12
  hourval = (hourval * 60 + minuteval) / 12;

  // Stunden-Zeiger (Cyan) mit weichem Rand
  strip.setPixelColor(hourval, 0x008080);
  strip.setPixelColor((hourval - 1 + 240) % 240, 0x004040);
  strip.setPixelColor((hourval + 1) % 240, 0x004040);
  strip.setPixelColor((hourval + 2) % 240, 0x001010);
  strip.setPixelColor((hourval - 2 + 240) % 240, 0x001010);

  // Minuten-Zeiger (Magenta)
  strip.setPixelColor(minuteval * 4, 0x800080); // 60 Min → 240 LEDs
  strip.setPixelColor((minuteval * 4 + 1) % 240, 0x200020);
  strip.setPixelColor((minuteval * 4 - 1 + 240) % 240, 0x200020);

  // Sekunden-Zeiger (Gelb)
  strip.setPixelColor(secondval * 4, 0x808000);
  strip.setPixelColor((secondval * 4 + 1) % 240, 0x002F00);
  strip.setPixelColor((secondval * 4 - 1 + 240) % 240, 0x002F00);

  strip.show();
  delay(25);

  // LEDs wieder löschen für nächsten Frame
  strip.setPixelColor(hourval, 0);
  strip.setPixelColor((hourval - 1 + 240) % 240, 0);
  strip.setPixelColor((hourval + 1) % 240, 0);
  strip.setPixelColor((hourval + 2) % 240, 0);
  strip.setPixelColor((hourval - 2 + 240) % 240, 0);
  strip.setPixelColor(minuteval * 4, 0);
  strip.setPixelColor((minuteval * 4 + 1) % 240, 0);
  strip.setPixelColor((minuteval * 4 - 1 + 240) % 240, 0);
  strip.setPixelColor(secondval * 4, 0);
  strip.setPixelColor((secondval * 4 + 1) % 240, 0);
  strip.setPixelColor((secondval * 4 - 1 + 240) % 240, 0);
}

3D-Druck Gehäuse

Passende Teile für die vier Viertelringe und die Wandhalterung:
Thingiverse: Neopixel Ring Wall Clock

Hinweis zum eDOTcore Board

Das eDOTcore-Board ist ein Arduino-kompatibles Board mit onboard DS1307 RTC und Batteriehalter. Es vereinfacht den Aufbau, da kein separates RTC-Modul nötig ist. Das Projekt funktioniert aber mit jedem Arduino + externem DS1307/DS3231 Modul.

Herstellungsprozess

  1. Arduino POV-Uhr: Persistence-of-Vision LED-Display selbst bauen
  2. Monitor-Ambilight selbst bauen mit Arduino Nano & WS2812B LEDs
  3. DIY Arduino Word Clock – Elegante Wortuhr mit RTC & Schieberegistern
  4. Interaktives Gyroskop-LED-Display mit NeoPixel-Ring & Arduino
  5. Einen eigenen LED-Master-Clock mit Alarm bauen – aus 12 Metern Entfernung ablesbar
  6. Intelligentes Voltmeter mit Arduino & Smartphone bauen – Einfaches DIY-Projekt
  7. Echtzeit-IoT-Herzfrequenzmonitor mit Arduino & MAX30100
  8. Arduino UNO WiFi Webserver: LED per Browser steuern
  9. Pixie: DIY NeoPixel-Armbanduhr mit Arduino Pro Mini – Schick & Selbstgebaut
  10. Zuverlässigen Wecker mit DS1302 RTC und Arduino UNO bauen