/*
Montage d'un potentiomètre en diviseur de tension :
Patte de droite : 5V
Patte du milieu : A0 (entrée analogique Arduino)
Patte de gauche : 0 V (GND : ground, masse)
Attention ne pas mettre 0V ou 5V sur la patte du milieu : risque de court circuit !

Afficher la tension mesurée sur le moniteur série
Fonction alarme à compléter ...
 */

/* 1) Zone 1 : la partie déclaration des variables (optionnelle) */
float v;  // tension mesurée par l'Arduino
int n;   // sortie du CAN Arduino (N=0 -> 0V   Nmax=1023 -> 5 V ou PE = Pleine Echelle)
int led=13;  // sélection de la broche (pin) sur laquelle est connectée la LED

/* 2) Zone 2 : la partie initialisation et configuration des entrées/sorties : la fonction setup ()*/
void setup() {
  Serial.begin(9600);   // Initialise la liaison série à 9600 bauds pour afficher les résultats sur le moniteur série
}

/* 3) Zone 3 : la partie principale qui s'exécute en boucle : la fonction loop () */
void loop() {
  n=analogRead(A0);  // n = tension numérisée par l'Arduino patte A0
  v=5.0/1023*n;      // v = tension calculée à partir de n en Volt
  affiche();        // appel de la fonction utilisateur affiche()
  alarme();        // appel de la fonction utilisateur affiche()
}  // fin du programme principal

/* Les fonctions utilisateur : */

void affiche() {
  Serial.print(n);     // Affiche n sur le moniteur série : la tension numérisée
  Serial.print("\t"); // \t : tabulation (caractère spécial \t : tab  \n : retour à la ligne \r retour chariot...
  Serial.print(v);    // affiche la tension en volt
  Serial.println(" V"); // affiche l'unité + retour à la ligne
 }  // fin de la fonction affiche
 
 void alarme() {
// Si v < 3 Led allumée
// Si 3 < v < 3.5 Led éteinte
// Si V > 3.5  Led clignote rapidement (400 ms)
  ... // si_1 (v < 3) Led allumée
    ... // Début sinon_1
           ... // si_2 (3 < v < 3.5) Led éteinte
              ... // sinon_2 : V > 3.5  Led clignote rapidement (400 ms)
         } // Fin sinon 1
         } // fin de la fonction alarme
         
void clingote_rapide() {  // Led clignote rapidement (400 ms)
    digitalWrite (led,  HIGH) ;
    delay (200) ;
    digitalWrite (led,  LOW) ;
    delay (200) ;
}  // fin de la fonction alarme clingote_rapide