scusate se mi intrometto...non capisco perchè 2 volte su 3 la prima scritta che appare nel monitor seriale riporta OFF !?...dovrebbe essere ON..giusto!?
prova con questo sketch...che in pratica ogni 5 secondi ti scrive il tempo intercorso tra un impulso ed un altro in microsecondi....massimo 40 impulsi...quindi banconota da 20 Euro...:
#define INPUTPIN 3
byte myIndex;
volatile unsigned long oldMicros;
volatile unsigned long myArray[40];
void setup() {
Serial.begin(9600);
pinMode(INPUTPIN, INPUT);
myIndex = 0;
for (byte i = 0; i < sizeof(myArray) / sizeof(long); i++) {
myArray[i] = 0;
}
attachInterrupt(digitalPinToInterrupt(INPUTPIN), coinsPulseCount, RISING);
oldMicros = micros();
}
void loop() {
if (micros() - oldMicros >= 5000000) {
for (byte i = 0; i < sizeof(myArray) / sizeof(long); i++) {
Serial.println(myArray[i]);
myArray[i] = 0;
}
myIndex = 0;
oldMicros = micros();
Serial.println("");
}
}
void coinsPulseCount() {
if (myIndex == 0) {
myArray[myIndex] = 0;
oldMicros = micros();
myIndex++;
}
else {
myArray[myIndex] = micros() - oldMicros;
oldMicros = micros();
myIndex++;
}
}
ATTENZIONE: uso il PIN 3 come PIN di verifica impulso...l'impulso deve essere positivo, cioè dare i 5 volt; verifica il cablaggio...cioè vedere se realmente Arduino riconosce i 5 volt come tali.