Étape 2: Le code
Voir le code aussi sur GitHub : https://github.com/masteruan/Attiny85_EMF
Attiny85 détecteur EMF et 4 led v1.0
23.10.2015
code/projet original de Aaron ALAI - aaronalai1
modifiés pour l’usage de Giovanni Gentile - giovanni
#define NUMREADINGS 15 / / nombre de lectures
int senseLimit = 15 ; Soulever ce num pour diminuer la sensibilité int val = 0 ; antenne int = A2 ;
int LED [] = {2,0,1,3} ; Après avoir vérifier la position du rouge LED verte et jaune
Variables pour le lissage
int lectures [NUMREADINGS] ;
int index = 0 ;
total int = 0 ;
int averange = 0 ;
void setup() {}
pinMode (sortie 2) ;
pinMode (0, sortie) ;
pinMode (1, sortie) ;
pinMode (3, sortie) ;
pinMode (entrée, A2) ;
Test des leds sur Démarrer
pour (int i = 0; i < 4; i ++) {}
digitalWrite(LED[i],HIGH) ;
Delay(500) ;
}
pour (int i = 0; i < 4; i ++) {}
digitalWrite(LED[i],LOW) ;
}
Initialiser toutes les lectures
pour (int i = 0; i < NUMREADINGS; i ++) {}
les lectures [i] = 0 ;
}
}
void loop() {}
int val = analogRead(antenna) ;
Si (val > = 1) {}
Val = contraindre (val, 1, senseLimit) ; tourner des lectures plus élevés que le senseLimit dans la senseLmit
la valeur val = carte (val, 1, senseLimit, 1, 1023) ; remapper les valeurs
Total = lectures [index] ; soustraire la dernière lecture
lectures [index] = val ; lire à partir du capteur
Total += lectures [index] ; Ajouter la lecture au total
indice = (index + 1) ; passer à l’index suivant
Si (index > = NUMREADINGS) indice = 0 ;
averange = total / NUMREADINGS ;
Si {(averange > 50)
digitalWrite(2,HIGH) ; }
else {}
digitalWrite(2,LOW) ; }
Si {(averange > 350)
digitalWrite(0,HIGH) ; }
else {}
digitalWrite(0,LOW) ; }
Si {(averange > 750)
digitalWrite(1,HIGH) ; }
else {}
digitalWrite(1,LOW) ; }
Si {(averange > 950)
digitalWrite(3,HIGH) ; }
else {digitalWrite(3,LOW);}
}
}