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

DIY Persistence-of-Vision (POV) Globe – LED-Kugel mit Arduino Mega

Komponenten

BauteilMenge
Arduino Mega 25601
Adafruit NeoPixel Ring WS2812 5050 RGB LED (58 LEDs pro Halbkugel)2
Widerstand 330 Ω1
Näherungssensor (z. B. Hall-Sensor)1
DC-Motor (für Rotation)1
Kugellager 625 2RS (5×16×5 mm)1
3D-gedruckte Teile (Halbkugelschalen, Halterungen)1 Satz

Werkzeuge

Funktionsprinzip (Persistence of Vision)

Eine LED-Reihe rotiert schnell. Durch das Nachleuchten des Auges (≈ 1/25 s) verschmelzen die einzelnen Lichtpunkte zu einem stehenden Bild. Mit 58 LEDs pro Halbkugel (gesamt 116) und ausreichender Drehzahl entsteht eine kugelförmige Grafik.

Aufbau

  1. Zwei Halbkugelschalen 3D-drucken, je einen NeoPixel-Ring (58 LEDs) einbauen.
  2. Welle mit Kugellager im Fuß lagernd, DC-Motor treibt an.
  3. Hall-Sensor (oder Reflexlichtschranke) an fester Position → 1 Impuls pro Umdrehung (Referenz).
  4. Arduino Mega steuert LEDs per FastLED-Bibliothek, synchronisiert auf Hall-Impuls.

Code (d_nya.ino)

Der Sketch nutzt ein 40×75 Pixel großes Bitmap-Array (kalp) für ein Herz-Muster. Bei jedem Hall-Impuls wird die nächste Spalte ausgegeben. Die LEDs 7–46 zeigen das Muster (Grün = Pixel an, Blau = aus), danach kurzer Weiß/Blau-Flash für Referenz.

#include <FastLED.h>
#define NUM_LEDS 58
#define DATA_PIN 6

CRGB leds[NUM_LEDS];
bool kalp[40][75] = { /* ... großes Bitmap-Array ... */ };

volatile byte hall = 0;
unsigned int wait = 1;    // µs pro Spalte
unsigned int wait2 = 10;  // µs Pause

void setup() {
  FastLED.addLeds<WS2812B, DATA_PIN, RGB>(leds, NUM_LEDS);
  attachInterrupt(1, LEDiyak, RISING); // Pin 3 auf Mega = INT1
  for (int i = 0; i < NUM_LEDS; i++) leds[i] = CRGB::Black;
  FastLED.show();
}

void LEDiyak() {
  hall++;
  if (hall > 2) hall = 0;
}

void loop() {
  if (hall > 0) {
    for (int m = 0; m < 75; m++) {
      for (int i = 0; i < 40; i++) {
        leds[i + 7] = kalp[i][m] ? CRGB::Green : CRGB::Blue;
      }
      FastLED.show();
      delayMicroseconds(wait);
    }
    // Referenz-Farben
    for (int i = 0; i < NUM_LEDS; i++) leds[i] = CRGB::Blue;
    FastLED.show(); delayMicroseconds(wait2);
    for (int i = 0; i < NUM_LEDS; i++) leds[i] = CRGB::White;
    FastLED.show(); delayMicroseconds(wait2);
  }
}

Schaltplan

Hall-Sensor → Pin 3 (INT1), NeoPixel Data → Pin 6, Motor separat versorgt. Gemeinsames GND.

Herstellungsprozess

  1. Arduino POV-Uhr: Persistence-of-Vision LED-Display selbst bauen
  2. Individuelle 4×4 Tic-Tac-Toe Visitenkarten-Platine – Design, Bau und Programmierung
  3. Multi-Position Temperatursensor-System für Smart-Home-Integration
  4. DIY Lötkolben-Controller für 862D+ – Präzision & Zuverlässigkeit
  5. MotionSense: Smarte Einbruchserkennung mit Arduino & ESP8266
  6. 3D-Drucker Brandschutz: Intelligentes Sensorsicherheitssystem
  7. Tragbares Persistence-of-Vision-Display mit Arduino UNO und ATtiny85 bauen
  8. Web-fähigen IoT-Messer mit Arduino, Yaler und IFTTT bauen
  9. Arduino-basierte abstoßende Magnetschwebung: Einfache Schaltung & DIY-Anleitung
  10. CoroFence Thermaldetektor: PIR-Sensor & IoT-Integration mit Panasonic GridEye