Tengo un anemómetro que emite pulsos de corriente. No puedo desarmarlo, pero sé que hay un fototransistor y un LED en paralelo que brillan a través de los agujeros. Me dijeron que con un viento de 30 m/s habrá pulsos de corriente de 3 uS de largo sobre la corriente normal (a través del LED).
Mi problema es transferir estos pulsos a un Arduino o convertir estos pulsos a voltaje 0/1. Arduino no es un problema para mí, pero no tengo experiencia en el diseño de circuitos.
No desea una conversión de "frecuencia a voltaje". Eso tiende a ser complicado, propenso a errores y, en general, un truco de solución.
Lo que realmente desea es ejecutar los pulsos directamente en la MCU y medir la frecuencia directamente.
Aquí hay una nota de la aplicación sobre cómo hacerlo exactamente con los MCU de AtMega. Cómo lo haces realmente con el software Arduino es algo que no puedo responder.
AVR205: Medición de frecuencia simplificada con Atmel tinyAVR y Atmel megaAVR
Sin especificaciones, no sabemos si hay pulsos de 3us (?) de una sola toma dos veces por revolución (según el diagrama mecánico) o si el pulso está completamente controlado por cortes de disco. Pero con lo que puede contar es con dos pulsos por revolución.
Es poco probable que la frecuencia del pulso abrume a un Arduino (si lo hace, ¡tienes problemas más grandes que la electrónica!) Así que podrías contar los pulsos en un bucle simple. Tome un ejemplo: un tren de pulsos de 1 KHz significa un intervalo de 1 ms entre pulsos. Recuerde, solo los estamos contando, no los estamos midiendo, por lo que un bucle sumamente ineficiente podría seguir el ritmo. ¡1000 Hz implicaría una velocidad de anemómetro de 500 RPS = 30000 RPM! Su anemómetro se desintegraría antes de eso.
Entonces el conteo de pulsos no será un problema. Puede decidir si solo necesita el Arduino para contar pulsos o hacer un procesamiento más pesado con el resultado.
En este último caso, lea la hoja de datos sobre contadores de tiempo (capítulos 15-17 para el ATmega328p, f/ex). Mediante el uso de un temporizador de contador, el hardware contará para usted mientras que su programa solo tiene que leer el valor del contador de vez en cuando para encontrar la velocidad, y toda su potencia de procesamiento está disponible para cualquier otra cosa que desee hacer con los datos.
Aquí hay cierta confusión, así que miré la imagen vinculada por el OP (abajo)
Si el período de servicio de "algo" es de 3 us, entonces no puede ser causado por los espacios en la rueda giratoria; tiene que ser que el LED está pulsando como un medio para proporcionar una contramedida para la entrada normal de la luz solar. Esa es la única explicación que se me ocurre.
Dada también la suposición de que el LED funciona con un ciclo de trabajo asimétrico hasta posiblemente 100 veces el período de marca, podría ser factible construir un circuito que convierta los trenes de pulsos en un voltaje positivo y cuando el opto se "cierre" regresa 0V. Tal vez algo como esto: -
Por lo tanto, (dados todos los supuestos y leyendo entre líneas) propondría que el fotodiodo en el optoacoplador se proteja con un amplificador de transimpedancia y luego su salida alimente un detector de AM convencional construido alrededor de un diodo, una resistencia y un condensador. Esta salida luego alimenta un comparador/cortador de datos y luego es adecuado para una entrada Arduino
Para hacer que las cosas sean menos intensivas en hardware en el lado analógico, el tren de pulsos del amplificador de transimpedancia podría alimentar directamente una entrada de Arduino y el software puede "construir" una versión demodulada que se puede contar.
El contador sería de dos pulsos por revolución (suponiendo que la imagen sea representativa) y esto debería traducirse en la velocidad del viento. Digo "debería" porque es probable que haya una relación no lineal entre la velocidad del viento y la velocidad de rotación. Buena suerte con éste proyecto.
Andy alias
pjc50
usuario22108
leon heller
usuario22108
Kvegaoro
usuario22108
usuario3624
angelagrande
angelagrande