myRaspberry

Mes aventures en Raspberry et Arduino

Afficheur 7segments TM1637

Posted on 5 juin 2017  in Arduino, Composants

 Ce composant permet d’afficher sur 4 digits. C’est trés pratique pour intégrer à vos montages un afficheur (température, vitesse…). Je l’ai acheté 0.75euro chez Ali.

Vous avez 4 connecteurs:

  • VCC & GND – 5v et GND
  • CLK – Horloge, sur un des pin de l’arduino
  • DIO – Données, sur un des pin de l’arduino

Pour le programmer, rien de plus simple, il y a une bibliothèque.

http://playground.arduino.cc/Main/TM1637

Principe:

instanciation :

         TM1637Display monAfficheur(CLK,DIO);  //Objet tm1637

 Réglage luniminosité

          monAfficheur.setBrightness (7)  // de 1 à 7

 

Afficher un nombre

   monAfficheur.showNumberDec(A,B,C,D)

  • A=Numéro de type entier. Valeurs jusqu’à 9999.
  • B=True / false. Afficher des zéros pour ddes valeurs non affichées. La valeur par défaut est FALSE;
  • C=Correspond au nombre de chiffres à afficher.
  • D=Position du chiffre le moins significatif (0 – à gauche, 3 à droite).

Exemple : afficher 19:30

#include <TM1637Display.h>

// Connexion sur carte (Digital Pins)
#define LED 13 
#define CLK 2 // pin CLK sur ma carte
#define DIO 3 // pin DATA sur ma carte
TM1637Display tm1637(CLK,DIO);  //mon Objet tm1637

void setup() {
  tm1637.setBrightness(2); /BRIGHT_TYPICAL = 2,BRIGHT_DARKEST = 0,BRIGHTEST = 7;
  /
}


void loop()
{

  //ecrire 19H30
  tm1637.showNumberDec(19,false,2,0); // 19 sur 2 digit et on commence à gauche (0)
  tm1637.showNumberDec(30,true,2,2);  // 30 sur 2 digit et on commence au 3 eme à partir de la gauche (2)
}
TM167

pour afficher le : central

 uint8_t segto;

int value = 1244;

segto = 0x80 | display.encodeDigit((value / 100)%10);

display.setSegments(&segto, 1, 1);

Composer des caractères

const uint8_t SEG_DONE[] = {

  SEG_B | SEG_C | SEG_D | SEG_E | SEG_G | 0b10000000,          // d
  SEG_A | SEG_B | SEG_C | SEG_D | SEG_E | SEG_F,   // O
  SEG_C | SEG_E | SEG_G,                           // n
  SEG_A | SEG_D | SEG_E | SEG_F | SEG_G            // E
  };

//pour afficher °C
  data[0] =SEG_A |SEG_B |SEG_F | SEG_G; // Stupanj
  data[1] = tm1637.encodeDigit(0x0C);
  tm1637.setSegments(data,2, 2);