Questo é un esempio di nomi variabili parlanti (ma parlano della frutta non di cosa significano le variabili), programmazione incasinata, Sketch dato incompleto (manca almeno una parentesi graffa finale) e interpretazione di sintassi Tua ma non quella del C.
Non hai bisogno di usare la lettura analogica del segnale, usa il digitale.
if (peragiri == 0) tempoprecedente = millis(), peragiri =1;
Un IF senza parentesi graffe si riferisce solo alla funzione/istruzione seguente non a tutte della riga. peragiri =1; viene eseguito a ogni passaggio.
if (analogRead(A5)>555 && melagiri ==0) (melagiri =1, frequenza = frequenza +1);
Dicevo parentesi graffe non parentesi tonde.
ok, avevi un brutto giorno e dimentichiamo quel sketch.
Ciao Uwe
beh... i nomi di frutti li metto come semplici segnali/bandierine per farli passare da zero a uno o (qualcosa di molto semplice)
per il fatto di adoperare l'analogRead la trovo molto comodo prendere il segnale da cose analogiche che variano poco il suo valore,
il fatto delle parentesi graffa (adesso verifico

) , ero convinto che le cose separate da virgola venivano eseguite una appresso all'altra), ne ho quasi la certezza, altrimenti questa riga stamperebbe solo la prima cosa e invece fa tutto il resto
if (millis() - tempoprecedente > 1000) Serial.print ("giri "), Serial.println (frequenza), peragiri = 0 ;