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 de Matriz LED 4x64 con Arduino Nano – Nueva Versión

Componentes y Suministros

ComponenteCantidad
Arduino Nano R31
Matriz LED 4 en 1 (8x8 cada una, total 32x8)1
Fotorresistencia (LDR)1
Protoboard (genérica)1
RTC DS32311

Aplicaciones y Servicios en Línea

Sobre el Proyecto

Reloj de Matriz LED 4x64 con Arduino Nano – Nueva Versión
Reloj de Matriz LED 4x64 con Arduino Nano – Nueva Versión
Reloj de Matriz LED 4x64 con Arduino Nano – Nueva Versión

Leer la hora a varios metros en una habitación requiere una pantalla de matriz LED como esta.

Compré a buen precio un display de 4 celdas y busqué proyectos en Hackster para Arduino Nano. Hay varios, pero para ver hora, minutos y segundos simultáneamente, pocos funcionan porque se necesitan dígitos más pequeños que los típicos de 5x7 píxeles. Una opción es la librería MD_Parola, pero su código es demasiado grande para un reloj simple. La librería Max72xxPanel está anticuada y llama a otras librerías. Finalmente, el proyecto se basa en la librería base MD_MAX72XX, incluida en las demás.

Los comentarios en este sitio me hicieron revisar hardware y código.

El nuevo código usa 13558 bytes (44%) y 372 bytes (18%) para variables, un poco más corto.

La fecha se muestra como "dd Mmm" y temperatura ambiente en °C (estimada con sensor interno del RTC) en página separada. El brillo se controla con la fotorresistencia. El código funciona incluso sin sensor de luz.

¡Gracias por vuestro interés, mostrado con el botón "respect"!

Código

Versión Antigua – Reloj Matriz Arduino Nano Arduino

Como muchas librerías cambiaron desde la versión inicial, este código es obsoleto. Usa la nueva versión. Todas las conexiones descritas en el código. Para fuentes pequeñas, modificar unas líneas en MD_MAX72xx_font.cpp como se explica en el código.

/* ADVERTENCIA: Código inicial ahora obsoleto. Usa el nuevo (versión 2)
 * Arduino Nano DS3231 clock con LED Matrix 4x(8x8) SPI
 * Arduino Nano 5V logic - 32kB prog. space
 * Tools:Board: Arduino Nano; Processor: ATmega328P (Old Bootloader)!!
 * LED Matrix 4x(8x8) SPI con conector a la derecha (último módulo)
 * CONEXIONES:
 * LCD 4x64 -> Arduino Nano: (usando Hardware SPI):
 * 5V -> 5V pin, GND -> GND pin
 * CLK_PIN -> 13 (o SCK), DATA_PIN -> 11 (o MOSI), CS_PIN -> 10 (o SS)
 * DS3231 RTC -> Arduino Nano: SDA (DAT) -> A4, SCL (CLK) -> A5
 * Autor: MVP https://www.hackster.io/M-V-P
 */
#include <SPI.h>
#include "DS3231.h"
#include "MD_MAX72xx_lib.h"
DS3231 rtc(SDA, SCL);
const byte LDR_PIN = A2;
#define MAX_DEVICES 4
#define CLK_PIN 13
#define DATA_PIN 11
#define CS_PIN 10
#define HARDWARE_TYPE MD_MAX72XX::ICSTATION_HW
#define USE_NEW_FONT 1
#define BUF_SIZE 20
#define CHAR_SPACING 1
char buf[BUF_SIZE], secs[4];
uint8_t dots;
MD_MAX72XX matrix = MD_MAX72XX(HARDWARE_TYPE, CS_PIN, MAX_DEVICES);
const byte WAIT = 100;
const byte SPACER = 1;
byte FONT_WIDTH;
bool timeset=false;
// ... (funciones: adjustClock, ledintensitySelect, printText, setup, getDate, getHour, showsec, loop)
// Código completo en el adjunto del proyecto.

Nueva Versión (v2) – Reloj Matriz Arduino Nano Arduino

Actualizada según nuevas librerías.

/* Arduino Nano DS3231 clock con LED Matrix 4x(8x8) SPI
 * Versión 2 - actualizada 15/05/2021
 * Arduino Nano 5V logic - 32kB prog. space
 * Tools:Board: Arduino Nano; Processor: ATmega328P (Old Bootloader)!!
 * CONEXIONES: (igual que arriba)
 * Definir abajo tu modelo de matriz LED:
 * #define HARDWARE_TYPE MD_MAX72XX::ICSTATION_HW
 * #define HARDWARE_TYPE MD_MAX72XX::FC16_HW
 * Autor: MVP https://www.hackster.io/M-V-P
 */
#include <SPI.h>
#include "DS3231.h"
#include "MD_MAX72xx_lib.h"
DS3231 rtc(SDA, SCL);
const byte LDR_PIN = A2;
#define MAX_DEVICES 4
#define CLK_PIN 13
#define DATA_PIN 11
#define CS_PIN 10
#define HARDWARE_TYPE MD_MAX72XX::FC16_HW
#define USE_NEW_FONT 1
#define BUF_SIZE 20
#define CHAR_SPACING 1
char buf[BUF_SIZE], secs[4];
uint8_t hh, mm, ss, dots;
// Definición de fuentes pequeñas 3x5:
uint8_t Font3x5[10][3] = {
  {248, 136, 248}, // 0
  {144, 248, 128}, // 1
  {200, 168, 184}, // 2
  {136, 168, 248}, // 3
  {112, 72, 224},  // 4
  {184, 168, 232}, // 5
  {248, 168, 232}, // 6
  {8, 232, 24},    // 7
  {248, 168, 248}, // 8
  {184, 168, 248}  // 9
};
char months[12][4] = {"Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"};
char* wday;
MD_MAX72XX matrix = MD_MAX72XX(HARDWARE_TYPE, CS_PIN, MAX_DEVICES);
const byte WAIT = 100;
const byte SPACER = 1;
byte FONT_WIDTH;
bool timeset=false;
// ... (funciones: adjustClock, ledintensitySelect, printText, setup, getDate, getHour, showsec, loop)
// Código completo en el adjunto del proyecto.

Esquemáticos

Inspirado en Leonardo Sposina, pero #define CS_PIN(Matrix) <-> 10(Nano)

El esquemático es CASI el mismo para todos los proyectos de matriz. Aquí la fotorresistencia es original. Como se menciona en el código: #define CS_PIN(Matrix) <-> 10(Nano)
Referencia: GitHub de Leonardo Sposina

Proceso de manufactura

  1. Construye un reloj en tiempo real con Arduino para horarios de oración islámica
  2. Monitor de Temperatura y Reloj en Tiempo Real con Arduino Due y Pantalla TFT 3.2"
  3. Controla un LED por Bluetooth con Arduino – Guía DIY paso a paso
  4. Proyecto HMI Interactivo con Nextion, Arduino Mega y Múltiples Sensores
  5. Pantalla LED Matricial Interactiva en Puerta con Sensor PIR - Saludo Navideño Arduino
  6. Controla Dos Motores Paso a Paso con Arduino Nano y Joystick - Tutorial Sencillo
  7. Reloj flip Arduino con matriz LED 8×8: proyecto DIY de reloj en tiempo real
  8. Control de Matriz LED 8×8 con Arduino Uno: Guía Paso a Paso
  9. Contador Geiger Portátil con Arduino Nano: Construye tu Detector de Radiación
  10. Cargador inteligente de baterías avanzado con multiplexación y display digital
  11. Reloj Meteorológico Arduino en Tiempo Real: Pantalla OLED para Hora, Fecha y Temperatura