TM1637 4 Digit - Comment gérer plusieurs afficheurs sur 1 carte arduino ?

Bonjour à tous,
j’ai besoin d’afficher plusieurs données lisibles de loin, c’est pourquoi j’ai choisi le TM1637

il est “simple” => 4 broches ; +vcc / Gnd / Clk / Dio

donc si j’ai 2 modules => je peux placer Clk module 1 sur in2 / Dio module 1 sur in3
Clk module 2 sur in4 / Dio module 2 sur in5

voir placer Clk module 1 et Clk module 2 ensemble sur 1 seule entrée ? ( car non commandé ensemble ? )

donc je veux afficher 2 variables (a,b) sur mes 2 compteurs ,
que pensez-vous de ce programme ?
( pas encore essayé car j’attends les composants )

// Include the library:
#include <TM1637Display.h>

int a=1234;
int b= 5678;

void setup() {

module1 ();                  // sous programme
// Set the brightness:
display.setBrightness(7);
// Clear the display:
  display.clear();

module2() ;                 // sous programme
// Set the brightness:
display.setBrightness(7);
// Clear the display:
  display.clear();
}


void loop() {

     module1 ();
     display.showNumberDec(a);
    
     module2();
     display.showNumberDec(b);
  }

void module1(){
// Module 1:
#define CLK 2
#define DIO 3

// Create display object of type TM1637Display:
TM1637Display display = TM1637Display(CLK, DIO);
}

void module2(){
// Module 2:
#define CLK 4
#define DIO 5

// Create display object of type TM1637Display:
TM1637Display display = TM1637Display(CLK, DIO);
}

qu’en pensez-vous ? cela doit-il fonctionner ? y a t il plus simple ?

pour clk ? 1 ou 2 entrees sur arduino ?

merci

Bonjour,

Mets ton code entre balises.

Est ce que ton programme compile?

Tu dois créer les instances de tes deux afficheurs en variables globales pour qu'elles soient accessible par toutes les fonctions.

Merci Kamil, ( j’ai rectifier mon message, j’ai ajouté les balises )

le programme compile? => je ne sais pas si cela fonctionne car pas le matériel pour l’instant

“Tu dois créer les instances de tes deux afficheurs en variables globales pour qu’elles soient accessible par toutes les fonctions.”
==> en effet ! ! je pense que tu as raison ! ! mais comment faire ? ?

=> je ne peux pas utiliser #define ! dans mon programme, car cette instruction est utilisé avant près-compilation ! de plus suivant le module, les valeurs ckl et Dio changent

et comme cela ( ci-dessous ) , cela vous parait-il mieux ? ( y a t il une solution plus simple ? )

// Include the library:
#include <TM1637Display.h>

byte CLK;                   // DECLARATION de variable GLOBALES
byte DIO;

int a=1234;
int b= 5678;

void setup() {

module1 ();                  // sous programme
// Set the brightness:
display.setBrightness(7);
// Clear the display:
  display.clear();

module2() ;                 // sous programme
// Set the brightness:
display.setBrightness(7);
// Clear the display:
  display.clear();
}


void loop() {

     module1 ();
     display.showNumberDec(a);
   
     module2();
     display.showNumberDec(b);
  }

void module1(){                         // Module 1:
CLK=2;
DIO=3;

TM1637Display display = TM1637Display(CLK, DIO);
}

void module2(){                         // Module 2:
CLK=4;
DIO=5;

TM1637Display display = TM1637Display(CLK, DIO);
}

Ton programme ne compile toujours pas.

Tu les déclares comme ça par exemple:

#include <TM1637Display.h>

const byte CLK1 = 2;
const byte DIO1 = 3;
const byte CLK2 = 4;
const byte DIO2 = 5;

TM1637Display display1(CLK1, DIO1);
TM1637Display display2(CLK2, DIO2);

int a = 1234;
int b = 5678;

void setup()
{
  display1.setBrightness(7);
  display1.clear();

  display2.setBrightness(7);
  display2.clear();
}


void loop()
{
    display1.showNumberDec(a);
    display2.showNumberDec(b);
}

Excusez du retard,

mais je ne fais que de recevoir mes composants,

un très grand MERCI à Karma ! ! ! car ton code FONCTIONNE PARFAITEMENT ! ! !

encore merci, et j'en profite également de souhaiter de bonnes fêtes de fin d'année ainsi qu'une bonne année 2020 ( déjà ! )

donc pour tous ceux qui sont intéressé pour utiliser plusieurs 1637 dans un montage, vous pouvez utilisez le code ci-dessus de Karma

cette page est donc close.