« ESP32 Matrice de led » : différence entre les versions
mAucun résumé des modifications |
mAucun résumé des modifications |
||
(3 versions intermédiaires par le même utilisateur non affichées) | |||
Ligne 3 : | Ligne 3 : | ||
On veut utiliser une carte prototype standard ESP32 pour afficher du texte sur une matrice de LED 32x8 (4 modules 8x9) . A noter que c'est la même chose pour n'importe quel nombre de Modules. | On veut utiliser une carte prototype standard ESP32 pour afficher du texte sur une matrice de LED 32x8 (4 modules 8x9) . A noter que c'est la même chose pour n'importe quel nombre de Modules. | ||
Cet afficheur utilise le contrôleur MAX7219. Ce contrôleur fonctionne suivant le protocole SPI. Plusieurs contrôleurs peuvent être chainés entre eux. Le contrôleur prends en charge, soit 8 afficheurs 7 segments soit une matrice de LED 8x8. Ici 4 afficheurs LED 8x8 utiliseront 4 MAX7219 (regardez | Cet afficheur utilise le contrôleur MAX7219. Ce contrôleur fonctionne suivant le protocole SPI. Plusieurs contrôleurs peuvent être chainés entre eux. Le contrôleur prends en charge, soit 8 afficheurs 7 segments soit une matrice de LED 8x8. Ici 4 afficheurs LED 8x8 utiliseront 4 MAX7219 (regardez sous les afficheurs il y a le circuit). | ||
Beaucoup de librairies existent, on peut même attaquer le contrôleur directement en SPI ce qui est un joli exercice. Cependant ici je vais utilise une librairie assez classique MD_MAX72xx. | Beaucoup de librairies existent, on peut même attaquer le contrôleur directement en SPI ce qui est un joli exercice. Cependant ici je vais utilise une librairie assez classique MD_MAX72xx. | ||
Ligne 34 : | Ligne 34 : | ||
|SCK du protocole SPI | |SCK du protocole SPI | ||
|} | |} | ||
<blockquote>Dans tous les cas une alim externe spécifique à l'afficheur serait plus raisonnable. Avec l'afficheur branché sur le VIN j'ai du mal a reprogrammer l'ESP32 en même temps que les LEDs brillent.</blockquote> | J'utilise pour cet exemple une carte basée ESP32 WROOM-32 appelée [[ESP32 DEVKITV1]].<blockquote>Dans tous les cas une alim externe spécifique à l'afficheur serait plus raisonnable. Avec l'afficheur branché sur le VIN j'ai du mal a reprogrammer l'ESP32 en même temps que les LEDs brillent. | ||
Pour que cela fonctionne à tous les coups j'utilise un câble USBC-µUSB pour relier la carte breakout au dock de mon Laptop. (Lenovo ThinkPad pour les deux). Là j'ai assez le courant pour faire briller les LEDS a fond et continuer a utiliser le port série USB.</blockquote> | |||
== Le programme == | == Le programme == | ||
Ligne 69 : | Ligne 71 : | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight>[[Fichier:Dotmatrixhello.png|sans_cadre|514x514px]] | ||
J'aime beaucoup cette librairie car elle sait gérer des caractères proportionnels (les "l" prennent moins de place que les "e") ca nous permet d'écrire "Hello" sur un afficheur qui ne serait capable d'afficher que 4 lettres avec des caractères 7x7 (ou 5 avec des caractères 5x7) |
Version actuelle datée du 27 octobre 2023 à 16:56
Présentation
On veut utiliser une carte prototype standard ESP32 pour afficher du texte sur une matrice de LED 32x8 (4 modules 8x9) . A noter que c'est la même chose pour n'importe quel nombre de Modules.
Cet afficheur utilise le contrôleur MAX7219. Ce contrôleur fonctionne suivant le protocole SPI. Plusieurs contrôleurs peuvent être chainés entre eux. Le contrôleur prends en charge, soit 8 afficheurs 7 segments soit une matrice de LED 8x8. Ici 4 afficheurs LED 8x8 utiliseront 4 MAX7219 (regardez sous les afficheurs il y a le circuit).
Beaucoup de librairies existent, on peut même attaquer le contrôleur directement en SPI ce qui est un joli exercice. Cependant ici je vais utilise une librairie assez classique MD_MAX72xx.
Le branchement se fait selon le "pinout":
ESP32 dev kit | MAX7219 module | |
---|---|---|
VIN | Vcc | Attention l'afficheur consomme beaucoup! Vous pouvez brancher sur le 3.3V mais ca surcharge le régulateur. VIN est directement sur l'alimUSB*. |
GND | GND | Rien a dire |
D23 | DIN | MOSI (Master out slave in) c'est un standard SPI |
D21 | CS | Ca se configure dans le code |
D18 | CLK | SCK du protocole SPI |
J'utilise pour cet exemple une carte basée ESP32 WROOM-32 appelée ESP32 DEVKITV1.
Dans tous les cas une alim externe spécifique à l'afficheur serait plus raisonnable. Avec l'afficheur branché sur le VIN j'ai du mal a reprogrammer l'ESP32 en même temps que les LEDs brillent. Pour que cela fonctionne à tous les coups j'utilise un câble USBC-µUSB pour relier la carte breakout au dock de mon Laptop. (Lenovo ThinkPad pour les deux). Là j'ai assez le courant pour faire briller les LEDS a fond et continuer a utiliser le port série USB.
Le programme
On utilise donc les librairies MD_Parola.h et MD_MAX72xx.h.
/*
* This ESP32 code is created by esp32io.com
*
* This ESP32 code is released in the public domain
*
* For more detail (instruction and wiring diagram), visit https://esp32io.com/tutorials/esp32-led-matrix
*/
#include <MD_Parola.h>
#include <MD_MAX72xx.h>
#define HARDWARE_TYPE MD_MAX72XX::FC16_HW
#define MAX_DEVICES 4 // 4 blocks
#define CS_PIN 21
// create an instance of the MD_Parola class
MD_Parola ledMatrix = MD_Parola(HARDWARE_TYPE, CS_PIN, MAX_DEVICES);
void setup() {
ledMatrix.begin(); // initialize the LED Matrix
ledMatrix.setIntensity(0); // set the brightness of the LED matrix display (from 0 to 15)
ledMatrix.displayClear(); // clear LED matrix display
}
void loop() {
ledMatrix.setTextAlignment(PA_CENTER);
ledMatrix.print("Hello!"); // display text
delay(2000);
}
J'aime beaucoup cette librairie car elle sait gérer des caractères proportionnels (les "l" prennent moins de place que les "e") ca nous permet d'écrire "Hello" sur un afficheur qui ne serait capable d'afficher que 4 lettres avec des caractères 7x7 (ou 5 avec des caractères 5x7)