L'écran matriciel 4x64 a manifestement séduit notre client Hans-Ulrich Küster, qui nous avait parlé de son projet de "sablier électronique/calendrier à œufs". En effet, il est parfaitement adapté à un affichage grand format. Il écrit : La vieillesse signifie que la vue et l'ouïe ne fonctionnent plus correctement. C'est comme ça pour un de mes proches. Il ne peut pas reconnaître une montre normale la nuit, et la montre parlante ne fonctionne pas vraiment sans une aide auditive. Je devais donc trouver quelque chose. Pour obtenir l'affichage le plus grand possible, j'ai mis deux MAX7219 8x32 4 en 1 dot matrix LEDs l'un sur l'autre. Une horloge en temps réel RTC DS3231 I2C a servi d'horloge.
J'ai également reconstruit ce projet et j'aimerais le partager avec vous. Dans une suite, je raconterai comment j'ai remplacé le micro contrôleur ATMEGA 328P par les micro contrôleurs WLAN d'Espressif. Parce qu'à la fin de ce blog, je voudrais écrire sur le développement ultérieur du sablier de M. Küster.
Hardware utilisé
Numéro | Component |
---|---|
1 | MICROCONTRÔLEUR AVEC CÂBLE USB |
2 | MAX7219 8x32 4 in 1 Dot Matrix LED Display Module |
1 | Horloge en temps réel RTC DS3231 I2C |
Breadboard and Cable (Jumper Wire) |
Dans ma reconstruction provisoire, après avoir soudé la deuxième bande de broches coudées, j'ai simplement relié les deux écrans matriciels avec un long morceau de ruban adhésif, j'ai connecté la "guirlande" avec le câble fourni et j'ai effectué la connexion à l'alimentation et à l'interface SPI du microcontrôleur.
Le circuit ne présente aucune particularité : L'interface SPI sur le micro contrôleur est l'affectation secondaire des broches numériques D13=SCK (=Serial Clock), D12=MISO (=Master in-Slave out, non nécessaire sur les écrans), D11=MOSI (=Master out - Slave in) et D10=SS (=Slave Select). Les désignations sur l'écran matriciel diffèrent légèrement : DIN (=data in) est connecté à MOSI, CS (=chip select) est un synonyme de SS (=slave select) et SCL est la ligne d'horloge et est connecté à SCK. Alors, il ne manque que l'alimentation électrique : GND à GND et VCC à 5V.
L'horloge en temps réel (RTC DS3231) utilisée a une interface I2C, donc SDA à la broche analogique A4 et SCL à A5, alimentation à GND et VCC à 3.3V ou 5V.
Au début du sketch, trois bibliothèques de programmes sont chargées pour intégrer facilement le matériel utilisé :
#include // Display
// i2c interface
// Real Time Clock ZS-042
Si vous ne l'avez pas encore fait, recherchez-les et ajoutez-les de la manière habituelle dans le menu /Outils/Gestion_Bibliothèques.
L'écran est ensuite intégré à
HARDWARE_TYPE MD_MAX72XX::FC16_HW
// Number of segments
MD_MAX72XX uhr = MD_MAX72XX(HARDWARE_TYPE, CS_PIN, MAX_DEVICES);
La bibliothèque MD_MAX72xx.h pouvant être utilisée pour différents affichages, l'écran matriciel utilisé ici et distribué par AZ-Delivery est défini comme FC16_HW. Étant donné qu'un total de 8 écrans matriciels sont connectés en série (en cascade), MAX_DEVICES 8 est défini. L'interface SPI est intégrée dans la bibliothèque MD_MAX72xx.h.
Si vous souhaitez utiliser un affichage différent, vous pouvez utiliser le sketch d'exemple MD_MAX72xx_HW_MAPPER pour déterminer vos paramètres.
Les deux autres bibliothèques sont nécessaires pour activer l'interface I2C et l'horloge en temps réel.
Il n'existe pas de modèle sur Internet pour les grands nombres. M. Küster les a ensuite décrites selon des fonctions qu'il a lui-même définies.
Pour la synchronisation de l'horloge en temps réel, l'heure système de l'ordinateur est utilisée lors du téléchargement du sketch. À cette fin, la variable de la ligne 22
bool syncOnFirstStart = false; // true mit PC synchronisieren, ansonsten false
défini comme vrai lors du premier téléchargement, puis défini comme faux lors d'un nouveau téléchargement.
Voici l'intégralité du croquis à télécharger
Mise à jour du sablier / minuteur
Maintenant, comme annoncé, une brève mise à jour sur le sablier électronique/calendrier à œufs.
Afin de pouvoir entrer le temps du compte à rebours de manière encore plus flexible, le commutateur 2 a été remplacé par un potentiomètre.
La valeur du potentiomètre n'est pas critique, tout ce qui est compris entre 1 kOhm et 10 kOhm est possible. Maintenant pour le timing. Dans la partie déclaration, pause_1 et pause_x sont responsables des temps. Si le potentiomètre est réglé sur la valeur minimale, pause_1 détermine le temps, dans le sketch avec la valeur pour 5 minutes. Si le potentiomètre est réglé sur la valeur maximale, pause_x détermine le temps.
En changeant la valeur pause_x, on peut modifier la durée qui peut être fixée. Les valeurs suivantes ont été mesurées :
35 -> 6:05 minutes
30 -> 6h15 minutes
25 -> 6h30 minutes
20 -> 6h50 minutes
15 -> 7h30 minutes
10 -> 8h45 minutes
9 -> 9h10 minutes
8 -> 9h40 minutes
7 -> 10:20 minutes
6 -> 11: 15 minutes
5 -> 12h30 minutes
Cependant, si vous modifiez la valeur de pause_1, tous les autres paramètres changent et vous devez réessayer les temps.
Il est certainement judicieux, quelles que soient les valeurs que vous choisissez, de créer une échelle pour votre propre potentiomètre.
Voici le croquis Hourglass_poti à télécharger
Amusez-vous avec les suggestions de M. Küster. La prochaine fois, nous utiliserons un micro contrôleur WLAN d'Espressif pour l'affichage de l'heure.
1 commentaire
Himmerlich
Nachdem der Sommer vorbei ist habe ich wieder mehr Zeit zum Basteln. Mir gefällt die Uhr mit Großbuchstaben sehr gut, so dass ich diese gebaut habe. Es klappt auch mit der Anzeige, nur müssen in der 2. Reihe die Punkte verschoben oder gespiegelt werden. Ich habe schon die FC16_HW ersetzt durch ICSTATION_HW. Da ist jetzt die Zeit schon zu erahnen. Gibt es noch weitere xxxxx-HW?
Vielleicht kann mir jemand helfen. Ich baue erst einmal auf den ESP32 um. Wozu kann ich dann WIFI verwenden?
Viele Grüße
Wolfgang