Le but de la manoeuvre : afficher la valeur d'une entrée analogique (0 à 1023 par exemple) sur un afficheur 4 x 7 segments Led

Matériels : que du Seeedstudio Grove !

Infos sur l'afficheur : http://www.seeedstudio.com/wiki/Grove_-_4-Digit_Display

ça donne ça :

Le programme :


#include "TM1637.h"
#define CLK 2//pins definitions for TM1637 and can be changed to other ports      
#define DIO 3
TM1637 tm1637(CLK,DIO);
int _ABVAR_1_var;

void setup()
{
  Serial.begin(9600);
 
  tm1637.init();
  tm1637.set(BRIGHT_TYPICAL);//BRIGHT_TYPICAL = 2,BRIGHT_DARKEST = 0,BRIGHTEST = 7;
  _ABVAR_1_var = 0;
}
void loop()
{
  _ABVAR_1_var = analogRead(A1) ;
  static unsigned long t = 0;//Refreshment of the display quite 250ms
  if(millis() - t > 250)
  {  
    tm1637.display(0,(_ABVAR_1_var / 1000) % 10);  //Display of thousands
    tm1637.display(1,(_ABVAR_1_var / 100) % 10);   //Display of hundreds
    tm1637.display(2,(_ABVAR_1_var / 10) % 10);    //Display of tens
    tm1637.display(3,_ABVAR_1_var % 10);           //Display of units
    Serial.print( _ABVAR_1_var );                  // Show the value of A0 on the serial port    
    Serial.println("");
   
    t = millis();
  }
}

Télécharger le programme : Test_afficheur_4_leds.ino