Programme affichage Arduino
Répondre à la discussion
Affichage des résultats 1 à 6 sur 6

Programme affichage Arduino



  1. #1
    inviteaf7d2772

    Programme affichage Arduino


    ------

    Bonsoir à tous,

    Je dois pour les cours faire un programme pour Arduino Micro pour compter des impulsions venant d'une roue de vélo et l'afficher sur 6 afficheurs 7 segments BCD.

    J'ai fais la simulation sur Proteus ISIS 8.2 et ça donne ça:

    Nom : schéma isis.jpg
Affichages : 178
Taille : 156,0 Ko


    Donc le shéma est bon et pour le moment je souhaite juste afficher les dizaines de mètres et les centaines de mètres, pour cela j'utilise le Port B et envoi en code DCB, mon programme est presque terminé mais j'ai un problème d'affichage en fait..

    Je m'explique et j'espère être assez clair sinon je pourrais vous montrer une vidéo capture d'écran,

    Donc en fait les deux afficheurs s'allument bien, ils passent bien de 1 à 9 tout les deux comme il le faut, mais l'affichage passe du chiffre affiché au 0 très rapidement et celà constamment, c'est donc illisible :/

    Je vous met mon programme:
    Code:
    volatile int Impulsion;
    int Distance, dzn, ctn ;
    
    void setup()
        {
        Serial.begin(9600);
        DDRB=0xFF;
        Impulsion=0;
        Distance=0;
        dzn=0;
        ctn=0;
        
        attachInterrupt(0,monisr,RISING); 
        }
    
    void monisr()
      {
      Impulsion=Impulsion+1;
      }
      
     void loop()
     {
    
       if (Impulsion>4)
       {
     
       Distance=Distance+1;
       Impulsion=0; 
       
       }
    
       
       ctn=Distance/10;	
       dzn=Distance%10;
       PORTB=dzn;
       ctn=ctn<<4;
       PORTB=ctn;
    
     }

    Voilà si vous pouvez me donner un petit coup de pouce pour régler mon problème :/

    Merci à tous de votre aide et bonne soirée!

    -----
    Dernière modification par Antoane ; 07/04/2015 à 19h32. Motif: Ajout balises [code]

  2. #2
    Yvan_Delaserge

    Re : Programme affichage Arduino

    Dans void loop, tu envoies sur PORTB dzn puis très vite après, ctn. Donc dzn ne sera donc pas visible sur l'afficheur.

    Je ne comprends pas non plus comment fonctionne l'affichage. PORT B a 8 bits. Et tu contrôles 6 afficheurs en leur envoyant un code BCD de 4 bits chacun.
    mais PORTB contient ctn ou dzn, pas 2 bits en BCD.

    Il faudrait que les afficheurs soient multiplexés. Tu ne pourras jamais contrôler 6 afficheurs nécessitant 4 bits chacun, ça fait 24 bits.

    Bref, je ne comprends pas comment fonctionne ton affichage, mais je serais intéressé de le savoir parce que ça donne vraiment très peu de lignes de code!
    Un civet, un plat de côtes et puis, glissez-moi une petite paupiette avec.( Lino Ventura)

  3. #3
    inviteaf7d2772

    Re : Programme affichage Arduino

    Pour l'instant je souhaite seulement faire fonctionner le PORTB avec 2 afficheurs, pour les 4 qui restent je devrai utiliser une liaison SPI ou I2C, mais je dois d'abord terminer l'affichage des 2 premiers afficheurs...

    J'envoi très vite dzn et de suite après ctn sur le PORTB, mais comment puis-je faire pour le ralentir sans bloquer mon programme?
    Si je met un Delay juste après l'envoi de dzn et celui de ctn je peux voir que l'afficheur fait: 1-0-2-0-3-0 et ainsi de suite, et c'est la même chose sur l'afficheur des centaine une fois que celui des dizaine arrive à 9..

    Je sais que c'est vraiment un tout petit problème et que la solution est certainement sous mes yeux mais la je sèche ...

  4. #4
    Yvan_Delaserge

    Re : Programme affichage Arduino

    Je dirais que l'instruction
    ctn=ctn<<4;
    décale les bits à gauche de 4 crans, mais en introduisant des zéros. Il faudrait introduite un code BCD (de A à F) qui provoque l'extinction de l'afficheur, si ce dernier réagit bien en s'éteignant.
    Un civet, un plat de côtes et puis, glissez-moi une petite paupiette avec.( Lino Ventura)

  5. A voir en vidéo sur Futura
  6. #5
    inviteaf7d2772

    Re : Programme affichage Arduino

    D'accord je vois ce que tu veux dire, je vais essayez ça voir si ça donne quelque chose, merci

  7. #6
    Yvan_Delaserge

    Re : Programme affichage Arduino

    Par exemple essaie d'injecter des 1. Comme ça ne correspond pas à du BCD, l'afficheur devrait s'éteindre (ou alors afficher la lettre "F") Tout dépend de l'afficheur.
    Un civet, un plat de côtes et puis, glissez-moi une petite paupiette avec.( Lino Ventura)

Discussions similaires

  1. Arduino Problème Programme
    Par invite995929e1 dans le forum Électronique
    Réponses: 62
    Dernier message: 04/04/2015, 16h25
  2. programme arduino
    Par invitec078c399 dans le forum Électronique
    Réponses: 26
    Dernier message: 24/07/2014, 12h33
  3. Arduino ,affichage de température
    Par invite9e8b2371 dans le forum Électronique
    Réponses: 7
    Dernier message: 25/02/2014, 12h38
  4. Programme sur Arduino
    Par invite364f7719 dans le forum Programmation et langages, Algorithmique
    Réponses: 5
    Dernier message: 22/02/2013, 23h36
  5. Arduino, moteurs, affichage, shields... Quelques questions.
    Par invitef8135372 dans le forum Électronique
    Réponses: 7
    Dernier message: 18/02/2010, 03h52
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...