Primeros pasos con Arduino: DIY LED Clock

Primeros pasos con Arduino: DIY LED Clock

febrero 06, 2021

Introducción-Inicio-Con-Arduino-DIY-LED-Reloj
Este es un tutorial de Arduino para empezar: Primeros pasos con Arduino, aprende a controlar una luz LED, haremos un reloj LED de bricolaje.

Muchas veces me despertaba en medio de la noche y quería comprobar la hora. Necesito encender las luces o despertar el teléfono para ver. Cuando enciendo la luz o el teléfono, la luz de la luz o del teléfono me deslumbró. Quería hacer un reloj con el brillo que se puede colocar en el dormitorio.

Este tutorial muestra cómo encender un LED NeoPixel y hacer un reloj simple por 12 LED timbre. Espero que sea útil para principiantes construir un proyecto.

1. Preparación del hardware

Tengo una placa ESP32 y un anillo LED WS2812 en la mano, así que lo usé. ESP32 puede ser reemplazado por cualquier placa Arduino para encender un LED. El WS2812 también se reemplaza por cualquier LED WS2812.

Aquí utilizo a continuación 2 tableros, puede obtener tableros relacionados como su preferencia:
1. LED WS2812
2.Placa de desarrollo ESP32
ESP32-Board-y-WS2812-LED

1.1 La conexión para LEDS

Un LED NeoPixel tiene 4 pines (VCC, GND, DI, DO). El cableado que muchos LED conectan entre sí es como la siguiente figura.
Conexiones LED
Sea cual sea el número de LEDs conectados, puedo controlarlos conectando los tres pines (VCC, GND, DI) a Arduino. La conexión es la siguiente:
  • VCC se conecta a los 5V de la placa ESP32.
  • GND se conecta al GND de la placa ESP32.
  • DI conéctese al IO21 de la placa ESP32.
Conexión-ESP32-Módulo-y-WS2812

2. Preparación del software

1. Instale Arduino ide a la programación si aún no lo ha instalado. IDE de Arduino://www.arduino.cc/en/software.
2. Hay muchas bibliotecas para neopixel led. Usé el Adafruit uno (Adafruit NeoPixel).
  • Haga clic en la opción Herramientas, seleccione "administrar biblioteca".
  • Ingrese "neopixel" en el cuadro de búsqueda, luego instale la biblioteca Adafruilt NeoPixel.
Arduino-Biblioteca-Gestor

3. Programación para iluminar el LED

  • Abra Arduino y cree un nuevo archivo llamado WS2812.
Arduino-WS2812
  • Elija la placa y el puerto, el puerto solo se puede seleccionar blanco, la placa Arduino está conectada a la PC.
Arduino-Herramientas
  • Agregar la biblioteca al código
#include 
  • Defina el número de pin conectado al LED y defina el número de LED conectados.
#define PIN 21
#define NUMPIXELS 12
  • Definir un objeto para los LEDs
Adafruit_NeoPixel píxeles (NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
  • Nilice los LED en el código de configuración.
pixels.begin();
  • En el código de bucle, encienda el LED a verde claro con 2s y, a continuación, apáguelo con 1s.
pixels.setPixelColor(2, píxeles. Color(0, 70, 0));
  pixels.show();
  retraso (2000);
  pixels.clear();
  retraso(1000);
Explicación del código:
1."setPixelColor()" es para establecer cuál es el LED y cuál el color.

2."2" significa el segundo LED para encender.

3."(0,70,0)" representa el color verde, "(70,0,0)" representa el rojo, "(0,0,70)" representa el azul. El número se puede cambiar de 0 a 255.

4."pixels.show()" significa enviar los colores de píxeles actualizados al hardware.

5."pixels.show()" significa establecer todos los colores de píxeles en 'off'.
  • El programa debe ser como abajo cuando se completó.
#include 
#define PIN 21
#define NUMPIXELS 12

Adafruit_NeoPixel píxeles (NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);

void setup() {
  Ponga su código de configuración aquí, para ejecutar una vez:
  pixels.begin();
}

void loop() {
  Ponga su código principal aquí, para ejecutar repetidamente:
  pixels.setPixelColor(2, píxeles. Color(0, 70, 0));
  pixels.show();
  retraso (2000);
  pixels.clear();
  retraso(1000);
}
  • Sube el programa a la placa Arduino.
Programación-ESP32-WS2812

4. Proyecto: DIY LED reloj

A continuación, presentaré un proyecto en el que utilicé el anillo WS2812 para hacer un reloj.
Quería obtener tiempo de Internet y mostrarlo con el anillo LED. Si el anillo LED es un reloj, el LED iluminado en verde será la manecilla de la hora, la azul o roja será la manecilla de los minutos. Debido a la necesidad de conexión en red, no se pueden usar otras placas Arduino en lugar de ESP32.

4.1 Programación para ESP32

const char *ssid = "Makerfabs";
const char *password = "20160704";
  • Conéctate al wifi
WiFi.begin(ssid, contraseña);
    while (WiFi.status() != WL_CONNECTED)
    {
        retraso(500);
        Serial.print(".");
    }
Serial.println(" CONECTADO");
  • Establezca la zona horaria de su área y configure la hora.
const char *ntpServer = "120.25.108.11";
const long gmtOffset_sec = 8 * 60 * 60; China+8
const int daylightOffset_sec = 0;
configTime(gmtOffset_sec, daylightOffset_sec, ntpServer);
  • Obtenga el tiempo de Internet.
if (!getLocalTime(&timeinfo))
      {
          Serial.println("Error al obtener la hora");
          devolución;
      }
  int hora = timeinfo.tm_hour;
  int min = timeinfo.tm_min;
  int sec = timeinfo.tm_sec;
  int día = timeinfo.tm_mday;
  int mon = timeinfo.tm_mon + 1;
  • Encienda los LED.
pixels.setPixelColor(hour_d, píxeles. Color(10, 70, 0));
  pixels.setPixelColor(min_d, píxeles. Color (min_r * 15 + 10, 0, (5-min_r) * 15));
  pixels.show();
  demora(999);
Aquí utilizo elMakePython ESP32para la calibración de la hora del reloj. Si utiliza otra placa ESP32 en su proyecto, es fácil usar su teléfono inteligente para verificar el reloj LED:
DIY-LED-Reloj-Calibración de tiempo

4.2 Hacer un caso para el reloj LED de bricolaje

Usé el cartón que solía ser una caja de embalaje para empaquetar el anillo LED. Primero, perfore 12 agujeros en la superficie del cartón. Luego coloque todo lo que incluye una batería para la energía en el cartón y ensamble su cartón. Dibuja en la caja para decorarla. Se completa un reloj real.
Make-A-Case-for-LED-ClockDIY-LED-Reloj-con-Estuche

4.3 DIY LED reloj terminado!

Después de hacer el reloj, puedo decir la hora distinguiendo la luz. Si el brillo de la luz sigue siendo demasiado fuerte, puedo ajustarlo a través del programa o pegar un pedazo de papel en la superficie del reloj.
DIY-LED-Reloj-TerminadoDIY-LED-RELOJ

Si tienes más preguntas para este tutorial de Arduino o necesitas algunasservicio PCBA personalizado, pls contactoservice@makerfabs.com.guiño

Contáctenos