Question comment affiche la température sur un 4 digits 7 segemnts

Bonjour,j'essai en vains de divise ma variable en deux partis pour pouvoir l'affiche sur le 4 digits
Exemple:
si variable est égale 37 alors si je sépare en deux le chiffre sa fait v1 est égale au premier chiffre c est a dire 7 et v2 est égale au deuxième chiffre c'est a dire 3
Si je veux faire cela ces pour avoir plus facile (c'est pour affiche la variable plus facilement que je la sépare) le code

unsigned long horloge;
unsigned long temp;
int digit1=13;
int digit2=12;
int digit3=11;
int digit4=10;
int A=2;
int F=3;
int B=4;
int G=5;
int C=6;
int DP=7;
int D=8;
int E=9;
int v=0;
int i;
int a;
int modedigit=1;
void setup() {
  pinMode(digit1,OUTPUT);
  pinMode(digit2,OUTPUT);
  pinMode(digit3,OUTPUT);
  pinMode(digit4,OUTPUT);
  pinMode(A,OUTPUT);
  pinMode(F,OUTPUT);
  pinMode(B,OUTPUT);
  pinMode(G,OUTPUT);
  pinMode(C,OUTPUT);
  pinMode(DP,OUTPUT);
  pinMode(D,OUTPUT);
  pinMode(E,OUTPUT);

}

void loop() {
 i=v;
 if(i>=10){
  i=0;
 }
 a=v/10;
 if(a>=10){
  a=0;
 }
 if(millis()-horloge>1000){
 horloge=millis();
 v++;
 }
 if(millis()-temp>5){
  temp=millis();
  modedigit++;
 }
switch (modedigit){
 case 1:
 affichagedigit2();
 nombre(i);
 break;
 case 2:
 affichagedigit1();
 nombre(a);
 break;
 case 3:
 if(modedigit==3){
  modedigit=1; 
 }
break;
}
}
void affichagedigit1(){
  digitalWrite(digit1,LOW);
  digitalWrite(digit2,HIGH);
  digitalWrite(digit3,HIGH);
  digitalWrite(digit4,HIGH);
}
void affichagedigit2(){
  digitalWrite(digit1,HIGH);
  digitalWrite(digit2,LOW);
  digitalWrite(digit3,HIGH);
  digitalWrite(digit4,HIGH);
}
void nombre(int u){
  switch (u){
    case 0:
    digitalWrite(A,HIGH);
    digitalWrite(F,HIGH);
    digitalWrite(E,HIGH);
    digitalWrite(D,HIGH);
    digitalWrite(C,HIGH);
    digitalWrite(B,HIGH);
    digitalWrite(G,LOW);
    break;
    case 1:
  digitalWrite(A,LOW);
    digitalWrite(F,LOW);
    digitalWrite(E,LOW);
    digitalWrite(D,LOW);
    digitalWrite(C,HIGH);
    digitalWrite(B,HIGH);
    digitalWrite(G,LOW);
  break;
  case 2:
  digitalWrite(A,HIGH);
    digitalWrite(F,LOW);
    digitalWrite(E,HIGH);
    digitalWrite(D,HIGH);
    digitalWrite(C,LOW);
    digitalWrite(B,HIGH);
    digitalWrite(G,LOW);
  break;
  case 3:
  digitalWrite(A,HIGH);
    digitalWrite(F,LOW);
    digitalWrite(E,LOW);
    digitalWrite(D,LOW);
    digitalWrite(C,HIGH);
    digitalWrite(B,HIGH);
    digitalWrite(G,HIGH);
    break;
    case 4:
    digitalWrite(A,LOW);
    digitalWrite(F,HIGH);
    digitalWrite(E,LOW);
    digitalWrite(D,LOW);
    digitalWrite(C,HIGH);
    digitalWrite(B,HIGH);
    digitalWrite(G,HIGH);
    break;
    case 5:
    digitalWrite(A,HIGH);
    digitalWrite(F,LOW);
    digitalWrite(E,HIGH);
    digitalWrite(D,LOW);
    digitalWrite(C,LOW);
    digitalWrite(B,HIGH);
    digitalWrite(G,HIGH);
    break;
    case 6:
    digitalWrite(A,HIGH);
    digitalWrite(F,HIGH);
    digitalWrite(E,HIGH);
    digitalWrite(D,HIGH);
    digitalWrite(C,HIGH);
    digitalWrite(B,LOW);
    digitalWrite(G,HIGH);
    break;
    case 7:
    digitalWrite(A,HIGH);
    digitalWrite(F,LOW);
    digitalWrite(E,LOW);
    digitalWrite(D,LOW);
    digitalWrite(C,HIGH);
    digitalWrite(B,HIGH);
    digitalWrite(G,LOW);
    break;
    case 8:
    digitalWrite(A,HIGH);
    digitalWrite(F,HIGH);
    digitalWrite(E,HIGH);
    digitalWrite(D,HIGH);
    digitalWrite(C,HIGH);
    digitalWrite(B,HIGH);
    digitalWrite(G,HIGH);
    break;
    case 9:
    digitalWrite(A,HIGH);
    digitalWrite(F,HIGH);
    digitalWrite(E,LOW);
    digitalWrite(D,LOW);
    digitalWrite(C,HIGH);
    digitalWrite(B,HIGH);
    digitalWrite(G,HIGH);
    break;
    
  }
}

merci

Bonjour,

Il suffit de faire ce qu'on t'as dit dans un autre post.

  int v2=v%10;      // deuxième digit
  int v1=(v/10)%10; // premier digit

Ce qui donne le programme

unsigned long horloge;
unsigned long temp;
int digit1 = 13;
int digit2 = 12;
int digit3 = 11;
int digit4 = 10;
int A = 2;
int F = 3;
int B = 4;
int G = 5;
int C = 6;
int DP = 7;
int D = 8;
int E = 9;
int v = 0;
int i;
int a;
int modedigit = 1;
void setup() {
  pinMode(digit1, OUTPUT);
  pinMode(digit2, OUTPUT);
  pinMode(digit3, OUTPUT);
  pinMode(digit4, OUTPUT);
  pinMode(A, OUTPUT);
  pinMode(F, OUTPUT);
  pinMode(B, OUTPUT);
  pinMode(G, OUTPUT);
  pinMode(C, OUTPUT);
  pinMode(DP, OUTPUT);
  pinMode(D, OUTPUT);
  pinMode(E, OUTPUT);

}

void loop() {
  int v2 = v % 10;  // deuxième digit
  int v1 = (v / 10) % 10; // premier digit

  if (millis() - horloge > 1000) {
    horloge = millis();
    v++;
  }

  if (millis() - temp > 5) {
    temp = millis();
    modedigit++;
  }
  switch (modedigit) {
    case 1:
      affichagedigit1();
      nombre(v1);
      break;
    case 2:
      affichagedigit2();
      nombre(v2);
      break;
    case 3:
      modedigit = 1;
      break;
  }
}
void affichagedigit1() {
  digitalWrite(digit1, LOW);
  digitalWrite(digit2, HIGH);
  digitalWrite(digit3, HIGH);
  digitalWrite(digit4, HIGH);
}
void affichagedigit2() {
  digitalWrite(digit1, HIGH);
  digitalWrite(digit2, LOW);
  digitalWrite(digit3, HIGH);
  digitalWrite(digit4, HIGH);
}
void nombre(int u) {
  switch (u) {
    case 0:
      digitalWrite(A, HIGH);
      digitalWrite(F, HIGH);
      digitalWrite(E, HIGH);
      digitalWrite(D, HIGH);
      digitalWrite(C, HIGH);
      digitalWrite(B, HIGH);
      digitalWrite(G, LOW);
      break;
    case 1:
      digitalWrite(A, LOW);
      digitalWrite(F, LOW);
      digitalWrite(E, LOW);
      digitalWrite(D, LOW);
      digitalWrite(C, HIGH);
      digitalWrite(B, HIGH);
      digitalWrite(G, LOW);
      break;
    case 2:
      digitalWrite(A, HIGH);
      digitalWrite(F, LOW);
      digitalWrite(E, HIGH);
      digitalWrite(D, HIGH);
      digitalWrite(C, LOW);
      digitalWrite(B, HIGH);
      digitalWrite(G, LOW);
      break;
    case 3:
      digitalWrite(A, HIGH);
      digitalWrite(F, LOW);
      digitalWrite(E, LOW);
      digitalWrite(D, LOW);
      digitalWrite(C, HIGH);
      digitalWrite(B, HIGH);
      digitalWrite(G, HIGH);
      break;
    case 4:
      digitalWrite(A, LOW);
      digitalWrite(F, HIGH);
      digitalWrite(E, LOW);
      digitalWrite(D, LOW);
      digitalWrite(C, HIGH);
      digitalWrite(B, HIGH);
      digitalWrite(G, HIGH);
      break;
    case 5:
      digitalWrite(A, HIGH);
      digitalWrite(F, LOW);
      digitalWrite(E, HIGH);
      digitalWrite(D, LOW);
      digitalWrite(C, LOW);
      digitalWrite(B, HIGH);
      digitalWrite(G, HIGH);
      break;
    case 6:
      digitalWrite(A, HIGH);
      digitalWrite(F, HIGH);
      digitalWrite(E, HIGH);
      digitalWrite(D, HIGH);
      digitalWrite(C, HIGH);
      digitalWrite(B, LOW);
      digitalWrite(G, HIGH);
      break;
    case 7:
      digitalWrite(A, HIGH);
      digitalWrite(F, LOW);
      digitalWrite(E, LOW);
      digitalWrite(D, LOW);
      digitalWrite(C, HIGH);
      digitalWrite(B, HIGH);
      digitalWrite(G, LOW);
      break;
    case 8:
      digitalWrite(A, HIGH);
      digitalWrite(F, HIGH);
      digitalWrite(E, HIGH);
      digitalWrite(D, HIGH);
      digitalWrite(C, HIGH);
      digitalWrite(B, HIGH);
      digitalWrite(G, HIGH);
      break;
    case 9:
      digitalWrite(A, HIGH);
      digitalWrite(F, HIGH);
      digitalWrite(E, LOW);
      digitalWrite(D, LOW);
      digitalWrite(C, HIGH);
      digitalWrite(B, HIGH);
      digitalWrite(G, HIGH);
      break;

  }
}

dieu est en toi Kamil merci beaucoup pour ta réponse :slight_smile: :slight_smile: :slight_smile: :slight_smile:

Bonjour,

la réponse sera la même que l'autre jour:

arithmétique: la division et son reste