Paso 2: El código
Véase también el código en GitHub: https://github.com/masteruan/Attiny85_EMF
EMF Detector Attiny85 y 4 led v1.0
23.10.2015
original proyecto de código por Aarón ALAI - aaronalai1
modificado para el uso de Giovanni Gentile - giovanni
#define NUMREADINGS 15 / / número de lecturas
int senseLimit = 15; Levantar este num para disminuir sensibilidad int val = 0; antena int = A2;
LED de int [] = {2,0,1,3}; Después de verificar la posición de LED ' s rojos verde y amarillo
Variables para alisar
int lecturas [NUMREADINGS];
Índice de int = 0;
int total = 0;
averange int = 0;
void setup() {}
pinMode (2, salida);
pinMode (0, salida);
pinMode (1, salida);
pinMode (3, salida);
pinMode (A2, entrada);
Prueba de leds en Inicio
para (int i = 0; i < 4; i ++) {}
digitalWrite(LED[i],HIGH);
Delay(500);
}
para (int i = 0; i < 4; i ++) {}
digitalWrite(LED[i],LOW);
}
Inicializar todas las lecturas
para (int i = 0; i < NUMREADINGS; i ++) {}
lecturas [i] = 0;
}
}
void loop() {}
int val = analogRead(antenna);
Si (val > = 1) {}
Val = restringir (val, 1, senseLimit); convertir cualquier lecturas superiores a la senseLimit en el senseLmit
valor val = mapa (val, 1, senseLimit, 1, 1023); reasignación de los valores
total = lecturas [índice]; Reste la lectura
lecturas [índice] = val; lectura del sensor
total += lecturas [índice]; Añadir la lectura al total
Índice = (Índice + 1); avanzar al índice siguiente
Si (Índice > = NUMREADINGS) index = 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);}
}
}