// Afficheur LED à 7 segments à un chiffre.
// Affiche les chiffres 0 à 9 sans le point décimal
#include "SevSeg.h"
SevSeg sevseg; // Déclaration d’un objet SevSeg
void mybutton() { //ISR
if(digitalRead(10) == HIGH )
{
// Afficher les chiffres 0 à 9 avec un délai de 1 seconde
for(int i = 0; i <= 10; i++)
{
if (i == 10) // Remettre à 0 après 9
i = 0;
sevseg.setNumber(i);
sevseg.refreshDisplay();
delay(1000);
}
}
}
void setup()
{
//Afficher un seul chiffre
byte numDigits = 1;
// Définir les broches lors de l'utilisation de l'affichage à
//plusieurs chiffres. Laisser vide pour afficher un seul chiffre
byte digitPins[] = {};
// Définir les connexions des broches Arduino dans l'ordre: A, B,
//C, D, E, F, G, DP
byte segmentPins[] = {7,6,3,4,5,8,9,2};
byte displayType = COMMON_ANODE; //Afficheur ANODE
bool resistorsOnSegments = true; //resistances sont connectés
//aux broches
//Initialiser l'objet sevseg
sevseg.begin(displayType, numDigits, digitPins, segmentPins,
resistorsOnSegments);
sevseg.setBrightness(90);
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
pinMode(12, OUTPUT);
pinMode(2, INPUT_PULLUP);
attachInterrupt(0,mybutton,CHANGE);
}
void loop()
{
int i = 0;
int j = 0;
sevseg.setNumber(0);
sevseg.refreshDisplay();
if(i == 0)//Lumière rouge
{
digitalWrite(10, LOW);
digitalWrite(12, HIGH);
delay(3000);
i = 1;
}
if(i == 1) //Lumière jaune
{
digitalWrite(12, LOW);
digitalWrite(11, HIGH);
delay(1000);
i = 2;
}
if(i == 2) // lumière verte
{
digitalWrite(11, LOW);
digitalWrite(10, HIGH);
delay(3000);
i = 0;
}
}