1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
|
const int MAX_INPUT = 6;
const int inputs[6] = {1,2,3,4,5,6}; // pins utilisés pour les 6 voies
boolean flags[6];
int i;
void setup()
{
// initialisation
for (i=0; i<MAX_INPUT; i++)
{
pinMode(inputs[i], INPUT);
flags[i] = false;
}
i = 0;
}
void loop()
{
// lecture de l'état de la voie i
// état bas (LOW) voie i correspond à +30V sur l'entrée
// état haut (HIGH) voie i correspond à +0V sur l'entrée
if (digitalRead(inputs[i]) == LOW && !flags[i])
{
// traitement
//......
// fin traitement, le flag passe à 1
// (pour éviter qu'au prochain tour on refasse la même analyse)
flags[i] = true;
}
// la voie i est repassé à l'état haut, le flag
// est réinitialisé
if (digitalRead(inputs[i]) == HIGH && flags[i])
{
flags[i] = false;
}
// incrément de i pour analyse voie suivante
// (attention il faut MAX_INPUT tours pour analyser à nouveau la voie n !)
i++;
if (i >= MAX_INPUT)
i = 0; // toutes les voies ont été traitées, on recommence à 0
} |