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 3D RGB Arduclock – Bluetooth, LED NeoPixel y RTC

Componentes y Suministros

Arduino Nano R3×1
Módulo Bluetooth HC-05×1
Anillo NeoPixel WS2812 5050 RGB (7 LEDs) × 6 uds×6
Módulo RTC DS3231 (Digilent Pmod RTCC)×1
Altavoz 0,25 W 8 Ω×1
Filamento para impresora 3D (carcasa y difusores)×1

Herramientas Necesarias

Sobre el Proyecto

Evolución del Animated RGB Wall Clock. El 3D RGB Arduclock es un reloj de sobremesa portátil o regalo, controlado vía Bluetooth desde una app Android (APK incluida). Carcasa y difusores impresos en 3D; seis dígitos de 7 segmentos formados cada uno por un anillo NeoPixel de 7 LEDs (42 LEDs totales).

Funciones Principales

Arquitectura de Hardware

Detalles de Software

Librerías

Lógica Principal (loop())

  1. Lee comandos serie (Bluetooth). Parsea cadenas terminadas en ..
  2. Comandos reconocidos actualizan variables de color (dg1..dg4), hora, fecha, alarma o disparan animaciones.
  3. Cada 500 ms parpadean los dos puntos de segundos (LED 0 y 1 del anillo 7).
  4. Si coincide hora/alarma y está activada → ejecuta GameOfThrones() (melodía + luces).
  5. Función yaz() refresca los 6 dígitos según d0..d5 y colores actuales.

Melodía Game of Thrones

Secuencia de tonos con tone() en pin 13 y función ilumina()/apaga() que enciende LEDs específicos al ritmo de las notas (definidas con #define NOTE_...).

Animaciones Incluidas

Código Principal (code.ino)

#include <Adafruit_NeoPixel.h>
#include <DS3231.h>
DS3231 rtc(SDA, SCL);
Time t;

#define PIN 4  // Dígito 1 (hora decenas)
#define PIN2 5 // Dígito 2 (hora unidades)
#define PIN3 6 // Dígito 3 (min decenas)
#define PIN4 7 // Dígito 4 (min unidades)
#define PIN5 8 // Dígito 5 (seg decenas)
#define PIN6 9 // Dígito 6 (seg unidades)
#define PIN7 10// Puntos segundos
#define NUMPIXELS 7

Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB+NEO_KHZ800);
Adafruit_NeoPixel pixels2(NUMPIXELS, PIN2, NEO_GRB+NEO_KHZ800);
// ... pixels3..pixels7 igual ...

byte sevendisplay[19][7] = { /* mapeo 7 segmentos */ };
byte animation[7][7] = { /* patrón animación */ };
byte color[10][3] = { /* 10 paletas RGB */ };

int speakerPin=13, alarmPin=12;
String data="hello";
int alarmHour=0, alarmMin=0; byte alarmActive=0;

void setup() {
  pinMode(speakerPin,OUTPUT); pinMode(alarmPin,INPUT);
  rtc.begin();
  // rtc.setTime(20,19,40); rtc.setDate(3,10,2018); // descomenta once
  pixels.begin(); pixels2.begin(); pixels3.begin();
  pixels4.begin(); pixels5.begin(); pixels6.begin(); pixels7.begin();
  Serial.begin(9600);
}

void loop() {
  t = rtc.getTime();
  // 1. Procesa comandos Bluetooth/Serie
  if(Serial.available()){
    data = Serial.readStringUntil('.');
    if(data=="tarih"){ /* set fecha */ }
    else if(data=="saat"){ /* set hora */ }
    else if(data=="alarm"){ /* set alarma */ }
    else if(data=="d1"){ dg1=(dg1+1)%10; }
    else if(data=="d2"){ dg2=(dg2+1)%10; }
    else if(data=="d3"){ dg3=(dg3+1)%10; }
    else if(data=="d4"){ dg4=(dg4+1)%10; }
    else if(data=="all"){ dg1=dg2=dg3=sayac=(sayac+1)%10; }
    else if(data=="hello"){ /* demo */ }
    else if(data=="clock"){ /* muestra hora */ }
    else if(data=="date"){ /* muestra fecha */ }
    else if(data=="temp"){ /* muestra temp */ }
    else if(data=="animation"){ /* ejecuta animaciones */ }
  }
  // 2. Parpadeo puntos segundos
  static byte blink=0;
  if(millis()%1000<500){ /* enciende LED 0,1 anillo 7 */ }
  else{ /* apaga */ }
  // 3. Comprobar alarma
  if(alarmActive && alarmHour==t.hour && alarmMin==t.min){
    GameOfThrones(); alarmActive=0;
  }
  // 4. Refrescar display si modo clock/date/temp
  if(data=="clock"||data=="date"||data=="temp") yaz();
  delay(10);
}

void yaz() { /* escribe d0..d5 en los 6 anillos según sevendisplay y colores dg1..dg3 */ }
void GameOfThrones() { /* secuencia tone()+ilumina() */ }
void ilumina(int note){ /* enciende LEDs según nota */ }
void apaga(int note){ /* apaga LEDs según nota */ }
// Animaciones: colorWipe, rainbow, rainbowCycle, theaterChase, theaterChaseRainbow, Wheel

Esquemático

Reloj 3D RGB Arduclock – Bluetooth, LED NeoPixel y RTC

Recursos Adicionales

Proceso de manufactura

  1. Construye tu Juego "UFO Attack" con Arduino UNO y Pantalla MAX7219
  2. Proyecto Dados Digitales Arduino: Construye tu Propio Generador de Números Aleatorios con LCD
  3. Efecto fuego con agua: Arduino UNO + Neopixel Stick
  4. Monitor de Salud Fluvial: Sistema de Calidad de Agua con Arduino
  5. Construye un Iron Man animado con Arduino: componentes, sensores y guía paso a paso
  6. Juego interactivo con joystick analógico y LEDs en Arduino
  7. Find Me: Localizador Inteligente de Objetos con Arduino y Bluetooth
  8. Construye un Brazo Robótico Impreso en 3D Controlado por Arduino – Guía Paso a Paso
  9. Detector de Rango Portátil – Kit DIY Arduino Nano con HC-SR04, Batería 18650 y Carcasa Impresa en 3D
  10. Controlador de Humidificador DIY con Arduino y Relé: Configuración Segura de Alto Voltaje
  11. Caudalímetro de aire residencial con Arduino: Construcción y monitorización