//Déclaration
int btnTest=2; // boutont TEST sur PIN 2
int pot=A0; //potentiometre sur PIN A0
int led0=4; // les LED sur PIN 4 à 13
int led1=5;
int led2=6;
int led3=7;
int led4=8;
int led5=9;
int led6=10;
int led7=11;
int led8=12;
int led9=13;
int broche=0; // la variable broche=0
int pourcent=0; // la variable pourcent=0
//  Initialisation
void setup() 
{
  // PIN 4 à 13 en mode sortie par la boucle for
  for(broche=4;broche<14;broche++)
  {pinMode(broche, OUTPUT);}
pinMode(pot, INPUT); //PIN A0 en mode entrée
pinMode(btnTest, INPUT); //PIN 2 en mode entrée
Serial.begin(9600); //initialise la fonction Serial.begin à 9600 bauds
}
//Exécution
void loop() 
{
  pourcent=map(analogRead(pot),0,1023,0,100); // mappage des données entre 0 et 100
  if(digitalRead(btnTest)==1){test();} // si btnTest=1 appel la fonction test()
  bargraphe(); // appel la fonction bargraphe()
  moniteur();  // appel la fonction moniteur()
  delay(10);  // pause de 10 ms
}
//*******************************************************
// Fonctions personnalisées
 void test()  //teste les 10 LED
 {
for(broche =4;broche <14;broche++) // met les PIN 4 à 13 =1 (LED allumées)
digitalWrite(broche, HIGH);
delay(1000); //pause 1 seconde
 }
 void bargraphe()  // allume les LED selon le % du signal d'entée
 {
   for(broche=4;broche<14;broche++) // eteint toute les LED
   {digitalWrite(broche, LOW);}
if(pourcent >0)  digitalWrite(led0, HIGH);
if(pourcent >=10)  digitalWrite(led1, HIGH);
if(pourcent >=20)  digitalWrite(led2, HIGH);
if(pourcent >=30)  digitalWrite(led3, HIGH);
if(pourcent >=40)  digitalWrite(led4, HIGH);
if(pourcent >=50)  digitalWrite(led5, HIGH);
if(pourcent >=60)  digitalWrite(led6, HIGH);
if(pourcent >=70)  digitalWrite(led7, HIGH);
if(pourcent >=80)  digitalWrite(led8, HIGH);
if(pourcent >=90)  digitalWrite(led9, HIGH);
 }
 void moniteur()  // moniteur série
 {
Serial.print(pourcent);Serial.print("%");
Serial.println();
 }