Buenas, tengo en mente un proyecto pero soy bastante nuevo con arduino y no se como hacerlo exactamente.
La idea es la siguiente: Quiero usar un anemometro y medir el viento constantemente. Según las especificaciones del producto tiene un imán que al dar una vuelta completa las aspas manda una señal digital. Una vuelta en un segundo equivale a una velocidad de viento de 2.4 km/h.
Lo que no se es como hacer esto ultimo, que me lea en un segundo cuantas veces ha recibido ese 1 digital para poder hacer el calculo del viento. Os pongo el código que he escrito que seguramente no tenga sentido pero como ya he dicho soy un noob.
float vueltas;
#define anemometro 3
int lectura;
float velocidadViento;
int suma;
unsigned long tiempo;
void setup() {
pinMode(anemometro, INPUT);
Serial.begin(9600);
}
void loop() {
//una vuelta al segundo son 2.4kmh
lectura = digitalRead(anemometro);
while (lectura == 0) {
lectura = digitalRead(anemometro);
}
if(lectura==1){
tiempo=millis();
if(millis()-tiempo<1000){
lectura = digitalRead(anemometro);
while(lectura==0){
lectura=digitalRead(anemometro);
}
if(lectura==1){
suma+=lectura;
Serial.print("hola");
}
}
}
/*velocidadViento = lectura * 2.4;
if (velocidadViento > 40 && velocidadViento < 87) {
Serial.print("El viento es fuerte, de: ");
Serial.print(velocidadViento);
Serial.println("km/h");
}
else if (velocidadViento > 87) {
Serial.print("El viento es extremo, de: ");
Serial.print(velocidadViento);
Serial.println("km/h");
}
else {
Serial.print("El viento es normal, de: ");
Serial.print(velocidadViento);
Serial.println("km/h");
}*/
}