Ciao, attualmente il mio problema è questo: devo calcolare il tempo tra un frote di salita ed un altro attraverso un interrupt e poi riportare il valore in un vettore che poi gli farò compiere una media.
Attualmente ho provato così ma non è quello che voglio. ualche consiglio, GRAZIE
// GESTIONE ENCODER
#define encoderCLK 2 // CLK (canale A) connesso al pin D2
#define encoderDT 4 // DT (Canale B) connesso al pin D4
#define encoderSW 3 // SW (bottone) connesso al pin D3
#define interrupt0 0 // Associato al pin 2 di Arduino
#define interrupt1 1 // Associato al pin 3 di Arduino
unsigned long istante_finale = 0;
unsigned long istante_iniziale = 0;
unsigned long differenza = 0;
int i = 0;
void setup() {
// I pin sono impostati come ingresso
pinMode(encoderCLK, INPUT); // interrupt 0
pinMode(encoderDT, INPUT);
// Attivo l'interrupt 0 quando lo stato del canale CLK "cambia" poiche'
// questo devo effettuare la lettura di DT ad ogni variazione di CLK
attachInterrupt(interrupt0, CLKChanged, RISING);
Serial.begin(9600);
}
void loop() {
if(i==1){
istante_iniziale = millis();
}
if(i==2){
istante_finale = millis();
}
if(i==0){
differenza = istante_finale - istante_iniziale;
Serial.println(differenza);
}
}
void CLKChanged()
{
valore_stato_DT = digitalRead(encoderDT);
if(valore_stato_DT == HIGH){
i++;
if(i==2){
i=0;
}
}
}