Referencia: https://es.wikipedia.org/wiki/Anem%C3%B3metro
Con el objetivo de medir la velocidad del viento, se dispone de un motor eléctrico al que se le añadieron 3 aspas. Ante la exposición al viento, las aspas hacen girar el motor generando un voltaje entre los terminales.
La relación velocidad de viento y voltaje debe obtenerse experimentalmente por algún medio propuesto y así obtener la tabla que relaciona ambos valores.
Velocidad de viento | Voltage generado por el motor |
Con los valores obtenidos, realice la función que describa la relación entre los valores. Usar algun método de interpolación para usar un polinomio que describa la realción entre los valores. Revisar unidad05 Interpolación de MATG1013
http://blog.espol.edu.ec/matg1013/
Luego usando la función es posible usar un arduino con una pantalla para mostrar los valores de voltaje transformados a su equivalente de velocidad.
Se usa un pin de sensor analógico para realizar la lectura de voltajes.
Recuerde revisar el voltaje máximo obtenido del motor en la parte experimental, para que en caso que se exceda la capacidad del sensor de 5V, se utilice un divisor de voltaje con resistencias.
Instrucciones Arduino
/* Lecturas del anemometro a Km/h * http://blog.espol.edu.ec/edelros/velocidad-del-viento/ * Referencia: ReadAnalogVoltage * http://www.arduino.cc/en/Tutorial/ReadAnalogVoltage */ #include <LiquidCrystal_I2C.h> // LCD por I2C #include <Wire.h> //comunicación I2C // Pantalla LCD. npxmp const byte mp = 16; const byte np = 2; LiquidCrystal_I2C lcd(0x27,mp,np); int SensorPin = 0; // Analógico void setup() { // inicializa monitor serial Serial.begin(9600); // Inicializa Pantalla lcd.init(); lcd.backlight(); lcd.setCursor(0,0); lcd.print("Anemometro Voltaje a Kmh"); lcd.setCursor(0,1); lcd.print("/matg1013"); delay (2000); lcd.clear(); } void loop() { double valorsensor = analogRead(SensorPin); float voltaje = valorsensor * (5.0 / 1023.0); float kmh = convertirV_Kmh(voltaje); // SALIDA A MONITOR SERIAL Serial.print("volts: "); Serial.println(voltaje); Serial.print(" Km/h: "); Serial.print(kmh); // SALIDA A PANTALLA LCD lcd.clear(); lcd.setCursor(0,0); // muestra decimales = 3 lcd.print("Votaje: "); lcd.print(voltaje,3); lcd.setCursor(0,1); lcd.print("Km/h: "); lcd.print(kmh,3); delay (500); } float convertirV_Kmh(float voltaje){ float resultado = 0; // usar polinomio del experimento resultado = 2.0+10.0*voltaje; return resultado; }