Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

Reloj analógico por persistencia de visión (POV) con Arduino Nano – Proyecto DIY

Componentes y materiales

Herramientas

Aplicaciones y servicios

Sobre el proyecto

Un display Persistencia de Visión (POV) muestra imágenes al encender LEDs en posiciones angulares precisas mientras giran. El cerebro integra los destellos en una imagen continua. Este reloj muestra una esfera analógica con manecillas de horas, minutos y segundos, marcadores de minutos/horas/cuartos y un círculo interior.

Mecánica

El mayor reto fue la estabilidad mecánica. Inicialmente la batería descentrada causaba vibraciones a alta velocidad. La solución: colocar la batería en el centro de rotación. El motor DC de 12V se alimenta de una fuente variable para ajustar RPM. El sensor Hall detecta una vuelta completa (imán fijo en la base) y sincroniza el refresco.

Electrónica

Software

El bucle principal espera flanco descendente del sensor Hall (inicio de vuelta). Luego, en 60 pasos angulares (6° cada uno), enciende los LEDs correspondientes a marcadores y manecillas durante delayMicroseconds(140) (ancho de píxel), apaga (delayMicroseconds(600) entre píxeles). Los valores de delayMicroseconds deben ajustarse según la velocidad real del motor. El reloj interno (hora/min/seg) se actualiza cada 1000 ms con millis().

Código

// Reloj POV analógico - Arduino Nano
// Autor: hobbyprojects

int LED[16] = {2,3,4,5,6,7,8,9,10,11,12,A1,A2,A3,A4,A5}; // 16 LEDs
int sensorPin = A0;

unsigned long previousTime = 0;
byte hours = 12, minutes = 15, seconds = 0;
int propeller_posn, n, val;

void setup() {
  for (int i = 0; i < 16; i++) pinMode(LED[i], OUTPUT);
  pinMode(sensorPin, INPUT_PULLUP);
  if (hours == 12) hours = 0;
}

void loop() {
  // Espera flanco descendente (inicio de vuelta)
  val = digitalRead(sensorPin);
  while (val == LOW) val = digitalRead(sensorPin);

  // Actualiza reloj cada segundo
  if (millis() >= previousTime) {
    previousTime += 1000;
    if (++seconds == 60) { seconds = 0; if (++minutes == 60) { minutes = 0; if (++hours == 12) hours = 0; } }
  }

  // Barrido angular: 60 posiciones
  propeller_posn = 30; // offset inicial
  n = 0;
  while (n < 60) {
    drawMinuteMarker();
    if (propeller_posn % 5 == 0) drawHourMarker();
    if (propeller_posn % 15 == 0) drawQuarterMarker();
    if (propeller_posn == hours * 5 || (propeller_posn == 0 && hours == 0)) drawHoursHand();
    if (propeller_posn == minutes) drawMinutesHand();
    if (propeller_posn == seconds) drawSecondsHand();

    delayMicroseconds(140); // ancho píxel (ajustar a RPM)
    displayClear();
    drawInnerCircle();
    delayMicroseconds(600); // gap entre píxeles (ajustar a RPM)

    n++;
    propeller_posn++;
    if (propeller_posn == 60) propeller_posn = 0;
  }

  // Espera flanco ascendente (fin de vuelta)
  val = digitalRead(sensorPin);
  while (val == HIGH) val = digitalRead(sensorPin);
}

void displayClear() {
  for (int i = 0; i < 16; i++) digitalWrite(LED[i], LOW);
}
void drawMinuteMarker() { digitalWrite(LED[15], HIGH); }
void drawHourMarker()   { digitalWrite(LED[14], HIGH); digitalWrite(LED[13], HIGH); }
void drawQuarterMarker(){ digitalWrite(LED[12], HIGH); digitalWrite(LED[11], HIGH); }
void drawHoursHand() {
  for (int i = 0; i < 7; i++) digitalWrite(LED[i], HIGH);
}
void drawMinutesHand() {
  for (int i = 0; i < 9; i++) digitalWrite(LED[i], HIGH);
}
void drawSecondsHand() {
  for (int i = 0; i < 11; i++) digitalWrite(LED[i], HIGH);
}
void drawInnerCircle() {
  digitalWrite(LED[0], HIGH);
  delayMicroseconds(30);
  digitalWrite(LED[0], LOW);
}

Esquema

Reloj analógico por persistencia de visión (POV) con Arduino Nano – Proyecto DIY

Proceso de manufactura

  1. Reloj de cuco: historia, artesanía y evolución moderna
  2. Construya su propio LUMAZOID: Visualizador de música DIY con Arduino
  3. Reloj POV con Arduino: Construye una pantalla LED de persistencia de visión
  4. Dispositivo de Medición de Presión y Flujo de Aire de Precisión con Sensor Analógico
  5. Construye tu Propio Juego de Ruleta de 37 LEDs con Arduino Nano
  6. Construye un Reloj Maestro LED Personalizado con Alarma – Visible desde 12 Metros
  7. Reloj 3D RGB Arduclock – Bluetooth, LED NeoPixel y RTC
  8. Rueda de Trimado Compacta para FlightGear con Arduino Nano: Control Analógico DIY
  9. Pantalla LED Matricial Interactiva en Puerta con Sensor PIR - Saludo Navideño Arduino
  10. Controlar un LED de Arduino con Cortana vía Bluetooth en Windows 10
  11. Construye un Secuenciador LED con Temporizador 555 y Contador 4017 – División de Frecuencia y Antirrebote