IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Arduino Discussion :

Piloter un afficheur 7-segments à 8 digits (et 74HC595 x 2) [Sources]


Sujet :

Arduino

  1. #1
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 621
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 621
    Points : 56 866
    Points
    56 866
    Billets dans le blog
    40
    Par défaut Piloter un afficheur 7-segments à 8 digits (et 74HC595 x 2)
    Bonjour,

    Je vous propose un nouvel élément à utiliser : 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() (https://www.nongnu.org/avr-libc/user...168b3ce8771d42) pour la définition des paramètres.

    Nom : 20230318_124440.jpg
Affichages : 497
Taille : 122,6 Ko

    Qu'en pensez-vous ?

  2. #2
    Futur Membre du Club
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Avril 2023
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms

    Informations forums :
    Inscription : Avril 2023
    Messages : 5
    Points : 6
    Points
    6
    Par défaut Correction du mappage de LED-display-8digit.h
    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

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  3. #3
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 621
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 621
    Points : 56 866
    Points
    56 866
    Billets dans le blog
    40
    Par défaut
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    Fabmanager
    Inscrit en
    Août 2023
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Fabmanager
    Secteur : Service public

    Informations forums :
    Inscription : Août 2023
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    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.

  5. #5
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 621
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 621
    Points : 56 866
    Points
    56 866
    Billets dans le blog
    40
    Par défaut
    Bonjour,

    Citation Envoyé par rico07 Voir le message
    DIO => Pin 5
    SCLK => Pin 6
    RCLK => Pin 7

    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 - Visualiser dans une fenêtre à part
    1
    2
    3
    enum { LATCH_PIN = 5,
           CLOCK_PIN = 6,
           DATA_IN_PIN = 7 };
    Il est vrai que ce serait plus simple si tout le monde s'accordait sur les noms à donner aux entrées-sorties

Discussions similaires

  1. [68HC11] Horloge numérique avec afficheur 7 segments
    Par Need you dans le forum Autres architectures
    Réponses: 2
    Dernier message: 08/04/2012, 09h31
  2. piloter un afficheur client
    Par aallal dans le forum API, COM et SDKs
    Réponses: 5
    Dernier message: 18/12/2011, 08h00
  3. afficheur 7 segments
    Par Orguevirtuel dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 10/04/2011, 21h17
  4. [PIC 16F84] Afficheur 7 segments
    Par Vipear dans le forum Autres architectures
    Réponses: 5
    Dernier message: 29/05/2009, 09h01
  5. Piloter un afficheur Graphique sur ARM
    Par dlewin dans le forum C
    Réponses: 6
    Dernier message: 16/06/2007, 09h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo