Téléchargé 20 fois
Vote des utilisateurs
1
0
Détails
Licence : Non renseignée
Mise en ligne le 18 mars 2023
Plate-formes :
Linux, Mac, Windows
Langue : Français
Référencé dans
Navigation
Piloter un afficheur 7-segments à 8 digits (et 74HC595 x 2)
Piloter un afficheur 7-segments à 8 digits (et 74HC595 x 2)
Piloter un afficheur 7-segments à 8 digits
(2 x 4 digits à anode commune) avec 2 registres à décalage 74HC595 chainés (fonctionnement multiplexé).
Voir le schéma du document Mod-LED-Display-8D-74HC595.pdf.
Deux fonctions sont proposées pour formater et afficher des nombres entiers ou des flottants.
Affichage d'un entier non signé 16 bits :
void led_display_7seg_write_uint16(unsigned int value , enum align_t align);
- value : valeur à afficher entre 0 et 65535
- align : LEFT_ALIGN ou RIGHT_ALIGN
Affichage d'un flottant (au format "[-]d.ddd") :
void led_display_7seg_write_float(float value, byte min_width, byte num_digits_after_decimal);
- min_width = largeur mini de la chaîne de caractères
- num_digits_after_decimal = nombre de chiffres après la virgule
Voir aussi la fonction dtostrf() pour la définition des paramètres.
(2 x 4 digits à anode commune) avec 2 registres à décalage 74HC595 chainés (fonctionnement multiplexé).
Voir le schéma du document Mod-LED-Display-8D-74HC595.pdf.
Deux fonctions sont proposées pour formater et afficher des nombres entiers ou des flottants.
Affichage d'un entier non signé 16 bits :
void led_display_7seg_write_uint16(unsigned int value , enum align_t align);
- value : valeur à afficher entre 0 et 65535
- align : LEFT_ALIGN ou RIGHT_ALIGN
Affichage d'un flottant (au format "[-]d.ddd") :
void led_display_7seg_write_float(float value, byte min_width, byte num_digits_after_decimal);
- min_width = largeur mini de la chaîne de caractères
- num_digits_after_decimal = nombre de chiffres après la virgule
Voir aussi la fonction dtostrf() pour la définition des paramètres.
Bonjour, Bon Travail
J'avais des inversions de digits gauche-droite et inversée. Corrections apportées. Mais je pense que cela dépend du fabricant :
https://fr.aliexpress.com/item/32834757140.html
J'avais des inversions de digits gauche-droite et inversée. Corrections apportées. Mais je pense que cela dépend du fabricant :
https://fr.aliexpress.com/item/32834757140.html
Code : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 | const byte DIGIT_NUM[8] = { 0b00000001, //SEG0 0b00000010, //SEG1 0b00000100, //SEG2 0b00001000, //SEG3 0b00010000, //SEG4 0b00100000, //SEG5 0b01000000, //SEG6 0b10000000 //SEG7 |
Bonsoir,
Je me souviens en effet d'avoir galéré avec une façon de câbler les digits aux registres à décalage d'une logique imparable
Ce sont des afficheurs de la marque RobotDyn (j'en ai encore 5 avec ce même défaut), une marque qui m'avait l'air sérieuse à l'époque, mais il semble que la société ait fait pschitt depuis... On se demande pourquoi
Je me souviens en effet d'avoir galéré avec une façon de câbler les digits aux registres à décalage d'une logique imparable
Code : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 | const byte DIGIT_NUM[8] = { 0b00001000, //SEG0 0b00000100, //SEG1 0b00000010, //SEG2 0b00000001, //SEG3 0b10000000, //SEG4 0b01000000, //SEG5 0b00100000, //SEG6 0b00010000 //SEG7 }; |
Ce sont des afficheurs de la marque RobotDyn (j'en ai encore 5 avec ce même défaut), une marque qui m'avait l'air sérieuse à l'époque, mais il semble que la société ait fait pschitt depuis... On se demande pourquoi
Bonjour,
Pour ma part, il ne se passe rien à l'écran.
J'ai :
DIO => Pin 5
SCLK => Pin 6
RCLK => Pin 7
Programme chargé, mais rien....
Merci pour vos retours.
Pour ma part, il ne se passe rien à l'écran.
J'ai :
DIO => Pin 5
SCLK => Pin 6
RCLK => Pin 7
Programme chargé, mais rien....
Merci pour vos retours.
Bonjour,
Je pense que tu as inversé 5 et 7. DIO, c'est DATA_IN_PIN qui doit être sur la pin 7. RCLK, c'est LATCH_PIN qui doit être sur la pin 5.
Il est vrai que ce serait plus simple si tout le monde s'accordait sur les noms à donner aux entrées-sorties
Je pense que tu as inversé 5 et 7. DIO, c'est DATA_IN_PIN qui doit être sur la pin 7. RCLK, c'est LATCH_PIN qui doit être sur la pin 5.
Code : | Sélectionner tout |
1 2 3 | enum { LATCH_PIN = 5, CLOCK_PIN = 6, DATA_IN_PIN = 7 }; |
Developpez.com décline toute responsabilité quant à l'utilisation des différents éléments téléchargés.