Ciao a tutti, ecco il mio problema:
sto implementando un contatore triggerato: quando arduino registra un certo valore di trigger basso (valtri1<100) inizia a contare per tot. secondi grazie a millis() e la libreria FreqCount.h; dopodiché voglio che stampi il valore che ha trovato e, anche se il valore del trigger è ancora basso aspetti fin quando il valore del trigger si ri-alzi per resettare tutto e ripartire eventualmente con un ulteriore ciclo. Di seguito il codice.
Grazie per chi mi vorrà aiutare!
#include <FreqCount.h>
unsigned long count = 0;
unsigned long prior_count=0;
int trigPin = 3; //pin di trigger
int valPin = A0; //pin lettura tensione
int trigPin1 = A1; // trigger analogico
unsigned long startTime=0;
int ciclo=0;
void setup() {
Serial.begin(2400);
FreqCount.begin(100);
pinMode(trigPin, INPUT);
pinMode(valPin, OUTPUT);
}
void loop() {
int trig = digitalRead(trigPin);
int trig1 = analogRead(trigPin1);
//Serial.println(trig1);
if(trig1<670 && ciclo==0){
//Serial.println(ciclo);
startTime = millis();
//Serial.println(startTime);
while(millis()-startTime < 10000){
if (FreqCount.available()){
count = count + FreqCount.read();
if (count != prior_count) {
prior_count = count;
Serial.println(count);}
}
if (millis()-startTime>10000){
ciclo=2;
break;}
}}}