Attiny85 EMF-detektor (2 / 4 steg)
Steg 2: Koden
Se koden även på GitHub: https://github.com/masteruan/Attiny85_EMF
EMF-detektor Attiny85 och 4 led v1.0
23.10.2015
ursprungliga koden/projekt av Aaron ALAI - aaronalai1
för användning av Giovanni Gentile - giovanni
#define NUMREADINGS 15 / / antal avläsningar
int senseLimit = 15. Höja detta num för att minska känsligheten int val = 0; int antenn = A2;
int LED [] = {2,0,1,3}. Efter kontrollera position röd grön och gul lysdioder
Variabler för utjämning
int avläsningar [NUMREADINGS];
heltal index = 0;
int totala = 0;
int averange = 0;
void setup() {
pinMode (2, utgång);
pinMode (0, OUTPUT);
pinMode (1, OUTPUT);
pinMode (3, OUTPUT);
pinMode (A2, indata);
Testa lysdioder på start
för (int jag = 0; jag < 4; i ++) {
digitalWrite(LED[i],HIGH);
Delay(500);
}
för (int jag = 0; jag < 4; i ++) {
digitalWrite(LED[i],LOW);
}
Initiera alla avläsningar
för (int jag = 0; jag < NUMREADINGS; i ++) {
avläsningar [i] = 0;
}
}
void loop() {
int val = analogRead(antenna);
om (val > = 1) {
Val = begränsa (val, 1, senseLimit); Aktivera alla avläsningar högre än senseLimit in i senseLmit
värdesätter val = karta (val, 1, senseLimit, 1, 1023); mappa värdena som
totala-= avläsningar [index]; subtrahera den sista behandlingen
avläsningar [index] = val; läsa från sensorn
totala += avläsningar [index]; Lägg till läsningen av totala
index = (index + 1); avancera till nästa index
om (index > = NUMREADINGS) index = 0;
Averange = totalt / NUMREADINGS;
om (averange > 50) {
digitalWrite(2,HIGH); }
annat {
digitalWrite(2,LOW); }
om (averange > 350) {
digitalWrite(0,HIGH); }
annat {
digitalWrite(0,LOW); }
om (averange > 750) {
digitalWrite(1,HIGH); }
annat {
digitalWrite(1,LOW); }
om (averange > 950) {
digitalWrite(3,HIGH); }
annat {digitalWrite(3,LOW);}
}
}