modification temps minuteur

Portrait de Guiard.mly

Bonjour,

je cherche a avancé dans mon projet de minuteur  qui me permet de faire un contact avec un relais au bout d'un certain temps.

Mon problème et que j'aimerais savoir qu'elle code je peux mettre et comment relier un bouton poussoir a mon Arduino permettent d'ajouter du temps avant le déclenchement ou d'en enlever pour ça je souhaite mettre 2 boutons poussoir merci .Voici mon code actuelle pas du tout optimisé et non modifiable sans ordinateur ce qui n'es pas du tout pratique .

int sega=2; // le segmeent A est connecter au pin 2 de l'arduino
int segb=3; // le segment B est connecter au pin 3 de l'arduino
int segc=4; // le segment C est connecter au pin 4 de l'arduino 
int segd=6; // le segment D est connecter au pin 6 de l'arduino
int sege=9; // le segment E est connecter au pin 9 de l'arduino
int segf=11; // le segment F est connecter au pin 11 de l'arduino
int segg=13; // le segment G est connecter au pin 13 de l'arduino
int tempo = 1000; // tempo est le temps qui va se passer entre chaque nombre donc la cest une 1 seconde d'attente entre chaque nombre car 1000 ms = 1 second

void setup() // je déclare mes sortie de mon arduino 
{
pinMode (sega,OUTPUT);
pinMode (segb,OUTPUT);
pinMode (segc,OUTPUT);
pinMode (segd,OUTPUT);
pinMode (sege,OUTPUT);
pinMode (segf,OUTPUT);
pinMode (segg,OUTPUT);
pinMode (7,OUTPUT);
}

void loop() // ceci est la boucle pour afficher les nombres de 0 juqu'a 9 avec 1 seonde entre chaque nombre 

{

//laisser 1 seconde d'attente

// afficher 1
digitalWrite (sega,LOW);
digitalWrite (segg,LOW);
digitalWrite (segd,LOW);
digitalWrite (sege,LOW); 
digitalWrite (segf,LOW); 
digitalWrite (segb,HIGH);
digitalWrite (segc,HIGH);

// laisser 1 seconde d'attente 
delay (tempo);

// afficher 2
digitalWrite (sega,HIGH);
digitalWrite (segg,HIGH);
digitalWrite (sege,HIGH);
digitalWrite (segd,HIGH);
digitalWrite (segb,HIGH);
digitalWrite (segc,LOW);
digitalWrite (segf,LOW);

// laisser 1 seonde d'attente
delay (tempo);

// afficher 3
digitalWrite (segf,LOW);
digitalWrite (sege,LOW);
digitalWrite (segc,HIGH);
digitalWrite (sega,HIGH);
digitalWrite (segb,HIGH);
digitalWrite (segd,HIGH);
digitalWrite (segg,HIGH);

// laisser 1 seconde d'attente
delay (tempo);

// afficher 4
digitalWrite (sega,LOW);
digitalWrite (segf,HIGH);
digitalWrite (sege,LOW);
digitalWrite (segd,LOW);
digitalWrite (segb,HIGH);
digitalWrite (segc,HIGH);
digitalWrite (segg,HIGH);

// laisser 1 seconde d'attente
delay (tempo);

// afficher 5
digitalWrite (sege,LOW);
digitalWrite (sega,HIGH);
digitalWrite (segd,HIGH);
digitalWrite (segb,LOW);
digitalWrite (segc,HIGH);
digitalWrite (segf,HIGH);
digitalWrite (segg,HIGH);

// laisser 1 seconde d'attente
delay (tempo);

// afficher 6
digitalWrite (segb,LOW);
digitalWrite (segf,HIGH);
digitalWrite (sege,HIGH);
digitalWrite (segd,HIGH);
digitalWrite (segg,HIGH);
digitalWrite (sega,HIGH);
digitalWrite (segc,HIGH);

// laisser 1 seconde d'attente
delay (tempo);

// afficher 7
digitalWrite (sege,LOW);
digitalWrite (segf,LOW);
digitalWrite (segg,LOW);
digitalWrite (segd,LOW);
digitalWrite (segb,HIGH);
digitalWrite (sega,HIGH);
digitalWrite (segc,HIGH);

// laiserr 1 seconde d'attente
delay (tempo);

// afficher 8
digitalWrite (segg,HIGH);
digitalWrite (segf,HIGH);
digitalWrite (sege,HIGH);
digitalWrite (segd,HIGH);
digitalWrite (segc,HIGH);
digitalWrite (segb,HIGH);
digitalWrite (sega,HIGH);

// laisser 1 seconde d'attente
delay (tempo);

// afficher 9
digitalWrite (segg,HIGH);
digitalWrite (segf,HIGH);
digitalWrite (sege,LOW);
digitalWrite (segd,HIGH);
digitalWrite (segc,HIGH);
digitalWrite (segb,HIGH);
digitalWrite (sega,HIGH);
delay (tempo);

// afficher le 0
digitalWrite (sega,HIGH);
digitalWrite (segb,HIGH);

digitalWrite (segc,HIGH);
digitalWrite (segd,HIGH);
digitalWrite (sege,HIGH);
digitalWrite (segf,HIGH);
digitalWrite (segg,LOW);
// laisser 1 seconde d'attente
delay (tempo);

{
 digitalWrite(7, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(4000);   
    digitalWrite(7, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);     
  }
// et la sa repart a 0 et sa boucle
}

Cordialement 

Portrait de Alex

Je te conseille déjà dans un premier de simplifier l'écriture de ton code pour qu'il soit plus facilement lisible et modifiable.

Je te conseille de commencer par créer les fonctions suivante:

afficher_0();

afficher_1();

etc...