Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Horloge à matrice LED 4x64 avec Arduino Nano – Nouvelle version

Composants et fournitures

ComposantQuantité
Arduino Nano R31
Matrice LED 4×(8×8) (module 4 en 1 MAX7219)1
Photorésistance (LDR)1
Plaque d'essai (breadboard)1
Module RTC DS32311

Applications et services en ligne

À propos du projet


Horloge à matrice LED 4x64 avec Arduino Nano – Nouvelle version
Horloge à matrice LED 4x64 avec Arduino Nano – Nouvelle version
Horloge à matrice LED 4x64 avec Arduino Nano – Nouvelle version

L'affichage d'une horloge lisible à plusieurs mètres dans une pièce nécessite une telle matrice LED.

Ayant acheté à bon prix un afficheur 4 modules, j'ai cherché sur Hackster des projets existants pour Arduino Nano. Il y en a plusieurs, mais peu permettent d'afficher simultanément heures, minutes et secondes, car il faut des chiffres plus petits que les polices 5×7 pixels habituelles. Une option est la bibliothèque MD_Parola, mais son code est trop volumineux pour une simple horloge. L'autre option testée, la bibliothèque Max72xxPanel, est trop ancienne et appelle d'autres bibliothèques. Finalement, ce projet repose sur la bibliothèque d'interface de base MD_MAX72XX, incluse dans les autres.

Les remarques sur ce site m'ont amené à revoir les aspects matériels et le code.

Le nouveau code utilise 13 558 octets (44 %) et 372 octets (18 %) pour les variables, donc un peu plus court !

La date s'affiche sous la forme « jj Mmm » et la température ambiante en degrés Celsius (estimée via le capteur interne du RTC) sur une page séparée. La luminosité est contrôlée par la photorésistance. Le code fonctionne cependant même sans capteur de lumière.

Merci pour votre intérêt, montré par le bouton « respect » !

Code

Ancienne version (obsolète)

Comme de nombreuses bibliothèques ont changé depuis la sortie initiale, ce code est obsolète. Utilisez la nouvelle version. Toutes les connexions sont décrites dans le code. Pour les petites polices, modifiez quelques lignes dans MD_MAX72xx_font.cpp, comme expliqué dans le code.


/* WARNING: Initial code is now obsolete. Use the new one (version 2)
 * Arduino Nano DS3231 clock with 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 with connector on the right side (last module)
 * https://www.banggood.com/MAX7219-Dot-Matrix-Module-4-in-1-Display-For-Arduino-p-1072083.html
 * CONNECTIONS:
 * >> LCD 4x64 -> Arduino Nano: (using Hardware SPI):
 * 5V -> 5V pin
 * GND -> GND pin
 * CLK_PIN -> 13 // or SCK
 * DATA_PIN -> 11 // or MOSI
 * CS_PIN -> 10 // or SS
 * >> DS3231 RTC -> Arduino Nano:
 * SDA (DAT) -> A4
 * SCL (CLK) -> A5
 * Inspired by: 1) Arduino Clock by AnthoTRONICS...
 * Not using Max72xxPanel.h, but small size digits are still used.
 * Replace in library MD_MAX72XX/src/MD_MAX72xx_font.cpp:
 * 1) #define USE_NEW_FONT 1
 * 2) fonts #148 ... 158 must be replaced with 3x5 fonts...
 * project: 13790 bytes (44%); variables 361 bytes (17%)
 * Author: MVP https://www.hackster.io/M-V-P
 */
#include 
#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;
// ... fonctions adjustClock, ledintensitySelect, printText, setup, getDate, getHour, showsec, loop ...

Nouvelle version (v2) – mise à jour pour les nouvelles bibliothèques


/* Arduino Nano DS3231 clock with LED Matrix 4x(8x8) SPI
 * Version 2 - updated 15/05/2021
 * Arduino Nano 5V logic - 32kB prog. space
 * Tools: Board: Arduino Nano; Processor: ATmega328P (Old Bootloader)!!
 * LED Matrix 4x(8x8) SPI with connector on the right side (last module)
 * https://www.banggood.com/MAX7219-Dot-Matrix-Module-4-in-1-Display-For-Arduino-p-1072083.html
 * CONNECTIONS:
 * >> LCD 4x64 -> Arduino Nano: (using Hardware SPI):
 * 5V -> 5V pin
 * GND -> GND pin
 * CLK_PIN -> 13 // or SCK
 * DATA_PIN -> 11 // or MOSI
 * CS_PIN -> 10 // or SS
 * >> DS3231 RTC -> Arduino Nano:
 * SDA (DAT) -> A4
 * SCL (CLK) -> A5
 * Inspired by: 1) Arduino Clock by AnthoTRONICS...
 * Not using Max72xxPanel.h, but small size digits are still used.
 * project: 13558 bytes (44%); variables 372 bytes (17%)
 * Author: MVP https://www.hackster.io/M-V-P
 */
#include 
#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 below your LED matrix hardware model:
//#define HARDWARE_TYPE MD_MAX72XX::ICSTATION_HW
#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;
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;
// ... fonctions adjustClock, ledintensitySelect, printText, setup, getDate, getHour, showsec, loop ...

Schémas

Inspiré par Leonardo Sposina, mais #define CS_PIN(Matrix) <-> 10(Nano)

Le schéma est PRESQUE le même pour tous les projets à matrice. Ici la photorésistance est originale. Comme mentionné dans le code : #define CS_PIN(Matrix) <-> 10(Nano). Voir GitHub de Leonardo Sposina.

Processus de fabrication

  1. Horloge Arduino temps réel pour les heures de prière islamiques
  2. Moniteur de Température et Horloge Temps Réel Arduino avec Écran TFT 3.2"
  3. Contrôler une LED par Bluetooth avec Arduino et MIT App Inventor
  4. Station météo interactive Nextion HMI avec Arduino Mega et capteurs
  5. Affichage LED matrice interactif porte avec capteur PIR - Salutations fêtes Arduino
  6. Contrôler 2 moteurs pas-à-pas avec Arduino Nano et joystick – Tutoriel Visuino
  7. Horloge à bascule Arduino avec matrice LED 8×8 – Projet DIY d'horloge temps réel
  8. Maîtriser une matrice LED 8×8 avec Arduino Uno : Guide pas à pas
  9. Compteur Geiger Portable avec Arduino Nano : Construction Pas à Pas