Arduino Forum

International => Français => Topic started by: willtynux on Dec 25, 2012, 06:30 pm

Title: [RESOLU]Valeur analogique sur afficheur Leds 7 segments x4 tm1637
Post by: willtynux on Dec 25, 2012, 06:30 pm
Bonjour,
j'ai cherché pendant pas mal de temps mais rien, alors je pose ma question  :smiley-roll-blue:
Je veux afficher une valeur d'une broche analogique sur un afficheur 4x 7 segments Leds (Seedstudio grove qui utilise un tm1637). J'arrive à afficher des chiffres et caractères donnés mais le problème c'est que je ne sais pas comment faire pour "séparer" les unités, dizaines, centaines et milliers d'une valeur (pour pouvoir ensuite les afficher sur chaque afficheur 7 segments).
Je ne sais pas si j'ai été très clair mais j'espère que vous pourrez m'aider  :smiley-fat:
Title: Re: Valeur analogique sur afficheur Leds 7 segments x4 tm1637
Post by: skywodd on Dec 27, 2012, 11:26 am
Bonjour,

J'ai déjà utilisé des TM1640 / TM1638, je sait pas si c'est dans la même série de driver 7 segments m'enfin bon ...
Pour séparer les digits de ton affichage tu peut faire comme moi, un bon vieux calcul à base de division et de modulo pour obtenir la valeur de chaque digits séparément.
Ensuite tu fait l'affichage comme tu le souhaite digits par digits.

http://skyduino.wordpress.com/2012/05/16/arduino-afficheur-7-segments-16-digits-base-tm1640/
http://skyduino.wordpress.com/2012/07/31/arduino-carte-tm1638-7-segments-leds-boutons/
Title: Re: Valeur analogique sur afficheur Leds 7 segments x4 tm1637
Post by: Artouste on Dec 27, 2012, 12:01 pm

Bonjour,

J'ai déjà utilisé des TM1640 / TM1638, je sait pas si c'est dans la même série de driver 7 segments m'enfin bon ...


bonjour skywodd
c'est assez compliqué de trouver de la doc , mais on dirait bien le petit frere du TM1638
(http://cjoint.com/12dc/BLBl62tff8y_tm16378.jpg)
Title: Re: Valeur analogique sur afficheur Leds 7 segments x4 tm1637
Post by: willtynux on Dec 27, 2012, 02:44 pm
Merci skywodd et Artouste pour vote aide !

J'ai donc branché un potard en A0 et l'afficheur en D2/D3 sur un shield Seeedstudio grove.
Voici ce que ça donne

(http://blog.crdp-versailles.fr/technoclergeot/public/Arduino/Afficheur_7_segments/aff_7_seg.png)

avec le code qui va bien :

Code: [Select]
#include "TM1637.h"
#define CLK 2//pins definitions for TM1637 and can be changed to other ports      
#define DIO 3
TM1637 tm1637(CLK,DIO);
void setup()
{
 Serial.begin(9600);
 
 tm1637.init();
 tm1637.set(BRIGHT_TYPICAL);//BRIGHT_TYPICAL = 2,BRIGHT_DARKEST = 0,BRIGHTEST = 7;
}
void loop()
{  
 static unsigned long t = 0;//Refreshment of the display quite 250ms
 if(millis() - t > 250)
 {  
   tm1637.display(0,(analogRead(A0) / 1000) % 10);  //Display of thousands
   tm1637.display(1,(analogRead(A0) / 100) % 10);   //Display of hundreds
   tm1637.display(2,(analogRead(A0) / 10) % 10);    //Display of tens
   tm1637.display(3,analogRead(A0) % 10);           //Display of units
   Serial.print( analogRead(A0) );                  // Show the value of A0 on the serial port    
   Serial.println("");
   
   t = millis();
 }
}


Par contre que signifie le "% 10" ??
Title: Re: Valeur analogique sur afficheur Leds 7 segments x4 tm1637
Post by: Artouste on Dec 27, 2012, 03:00 pm

...
Par contre que signifie le "% 10" ??

C'est la fonction modulo (avec le facteur modulo 10 ici )
http://www.arduino.cc/en/Reference/Modulo
http://arduino.cc/fr/Main/Modulo
Title: Re: [RESOLU]Valeur analogique sur afficheur Leds 7 segments x4 tm1637
Post by: willtynux on Dec 27, 2012, 03:28 pm
:smiley-roll: désolé, je ne comprends pas trop l'explication de la fonction ...
Si je prends une valeur, par exemple 832, pour avoir les unités je fais 832 % 10 mais ça me fait quoi exactement ?
Merci d'aider un vieux newbie  8)
Title: Re: [RESOLU]Valeur analogique sur afficheur Leds 7 segments x4 tm1637
Post by: Christian_R on Dec 27, 2012, 04:44 pm
Modulo 10 retourne le reste de la division par 10
832 = 83 x 10 + 2
832 % 10 -> reste 2
Title: Re: [RESOLU]Valeur analogique sur afficheur Leds 7 segments x4 tm1637
Post by: willtynux on Dec 27, 2012, 04:53 pm
Ok !!!!!!!!!!! facile quand on a compris ! :smiley-fat:
Encore un très grand merci à toi !
Je vais pouvoir créer un bloc pour ArduBlock maintenant  :)
Title: Re: [RESOLU]Valeur analogique sur afficheur Leds 7 segments x4 tm1637
Post by: skywodd on Dec 29, 2012, 02:40 pm
Ps: fait un seul analogRead() que tu stocke dans une variable avant de faire tes calculs ;)
Si la valeur change entre deux analogRead() tu peut te retrouver avec une valeur complétement fausse sur ton afficheur (et sur le port série).