Ciao a tutti sto provando a costruire un tester per tempi per interruttori di media tensione in pratica dovrei misurare il tempo che intercorre tra il fronte di salita del comando e il fronte di salita dell indicatore di posizione sia in apertura che in chiusura(sarebbe piu preciso sui contatti di potenza ma non servirebbe allo scopo di essere un apparecchio adatto a testare interruttori in servizio) lo sketch sembrava poter eseguire quanto detto per tempi molto maggiori dei 50/70 ms che sono tipici di queste apparecchiature , qualcuno potrebbe darmi una spintarella nella giusta direzione?L'uso degli interrupt potrebbe fare al caso mio?
Grazie.
int stato;
int tch;
int tAP;
const int PREMUTO = 1;
const int RILASCIATO = 0;
const int ON = HIGH;
const int OFF = LOW;
long t0;
long t;
void setup() {
Serial.begin(9600);
pinMode(3, INPUT);
pinMode(4, INPUT);
pinMode(7, INPUT);
pinMode(8, INPUT);
stato = RILASCIATO;
tch = OFF;
}
void loop(){
int pAP= digitalRead(3);
int pCH = digitalRead(4);
int _52AP = digitalRead(7);
int _52CH = digitalRead(8);
if ((tch == OFF) && (pCH == HIGH) &&(_52AP == HIGH)) {
tch = ON;
t0 = millis();
Serial.println("TCH");
}
if ((tch == ON) && (_52CH == HIGH)) {
tch = OFF;
t = millis() - t0;
Serial.println(t);
}
if ((tAP == OFF) && (pAP == HIGH)&& (_52CH ==HIGH)) {
tAP = ON;
t0 = millis();
Serial.println("TAP");
}
if ((tAP == ON) && (_52AP == HIGH)) {
tAP = OFF;
t = millis() - t0;
Serial.println(t);
}