Simplificate 2.0

Si algo parece muy complicado, es que esta mal explicado.

Veleta con Arduino, parte Hardware (1/2)

with 8 comments


Equipo de viento completo

El Lunes me trajo un familiar una veleta de la marca Raymarine (Raytheon Marine Equipment) un equipo muy usando en navegación a vela, el equipo viene acompañado de un anemómetro y una pantalla para intemperie que se pone frente al timón de mando para controlar la velocidad y el angulo de ataque del viento relativo al velero.

El problema es que la pantalla se ha roto por un golpe y el fabricante no vende repuesto, te vende el equipo de viento completo que sale un dinero muy curioso, así que este familiar (mi papa) quiere a ver como podemos fabricar una versión casera de la pantalla para poder seguir usando la veleta y el anemómetro pero sin tener que comprar un equipo completo para la pantalla, antes de todo hay que investigar como funciona el equipo de viento.

En principio tenemos dos aparatos que aunque comparten el mismo mástil son independientes entre si:

Sensor SS94A1, vista frontal del mismo.

  • Una  veleta: La veleta esta formada internamente por dos sensores de efecto Hall tipo SS94A1 de la marcaHoneywell, este sensor es básicamente un detector de campos magnéticos y da una salida lineal más positiva cuanto más campo magnético detecta, según el Datasheet este sensor alimentado a 6,6 Voltios da una salida de 4 Voltios por la patilla ‘O’ cuando no tiene aplicado ningún campo magnético y un voltaje menor de 4 Voltios cuando el campo es negativo ( el campo magnético es negativo cuando entra por el polo sur atravesando el detector, esto es cuando el detector esta enfrentado con el polo sur ) y de más de 4 Voltios cuando el campo es positivo ( cuando esta enfrentado el detector con el polo norte ), y el detector dará una salida de 4 Voltios cuando el campo es paralelo al detector, en este caso no detecta campo magnético ya que las lineas de campo no atraviesan el detector y por lo tanto es como si no hubiera campo, ( si recordamos del BUP y el COU la densidad de campo magnético se enuncia como el numero de lineas de campo que atraviesan una superficie de área determinada, y para que una linea atraviese una superficie estas no deben estar paralelas ya que por definición dos lineas paralelas son aquellas que cuando tienden al infinito no se cruzan en ningún punto y por lo tanto la densidad de campo es “cero” “cero patatero”) , a parte de los dos sensores lógicamente la veleta en si tiene un imán permanente en un eje que gira junto a los detectores y los detectores están colocados de forma perpendicular uno respecto al otro, así que cuando uno esta enfrentado con el polo Sur o Norte del imán el otro no detecta campo alguno.

  • Un anemómetro: Este equipo aun no he encontrado el Datasheet del detector que lleva pero conectando la salida al Osciloscopio puedo ver que en ciertas posiciones me da cero voltios por la salida y en otras me da una señal senoidal de frecuencia fija, la verdad que me esta costando descifrar como funciona aunque imagino que cuanto más rápido gira el anemómetro menor numero de ciclos tiene la señal senoidal y contando el numero de ciclos de la señal senoidal podemos saber la velocidad que lleva el anemometro pero de momento lo dejaremos para otro día.

Vista del conjunto de sensores Hall de la veleta.

Ahora nos vamos a centrar en la veleta que era lo que principalmente quiere mi señor padre que funcione, así que tenemos dos sensores que nos dan una salida lineal proporcional al numero de lineas de campo que lo atraviesan el problema principal es diferenciar salida negativa de positiva y esto lo podemos hacer sabiendo que el centro de la lectura es 4 Voltios, así que tenemos una lectura donde 4 Voltios es el centro y menos de cuatro son negativos y mas positivos, aclarado entonces nuestro cero de lectura es 4 Voltios en los dos sensores, que ademas están perpendiculares entre si como si fuera un sistema de coordenadas cartesianas donde el punto en el cual se cruzan es el de 4 Voltios para los dos sensores que es a su vez es el centro de nuestro sistema cartesiano.

Como ya sabéis los sistemas cartesianos pueden tener valores positivos y negativos, pero nosotros solo podemos obtener valores positivos del sensor lo que vamos a hacer para obtener medidas negativas es restar 4 Voltios a las lecturas para que me de valores negativos que pueda yo representar en el sistema de coordenadas y con el punto resultante  ‘punto P’ creamos un vector con el centro del eje ‘punto O’ el vector resultante es el vector PO.

Vector PO = (Px – Ox, Py – Oy) = (Px,Py) ya que O es ‘cero patatero’

Bueno ahora tenemos un vector PO que nos indica una dirección, dirección que tiene la veleta en si y con esto podemos saber los grados distan con otro vector que llamaremos Vector Avance ‘VA’ que representa el avance del barco.

El angulo entre dos vectores dados se puede obtener por la formula

Sistema de coordenadas cartesianas

cos α = PO • VA / ||PO|| x ||VA|| = POx*VAx + POy*VAy / √(POx² + POy²) * √(VAx² + VAy²)

teniendo el valor del coseno de α se puede obtener el angulo en grados.

acos(α) = Π Radianes.

La función acos() devuelve un valor en Radianes y para pasar de Radianes a grados la formula es

(Π Rad / Π ) * 180 = Grados decimales.

Así que ya tenemos los grados entre el vector dirección del barco y el vector del viento relativo al avance del barco.

Ahora toca la parte divertida, hacer que funcione…

Ahora lo primero que debemos hacer es pensar como hacer la lectura del sensor, como dice el Datasheet el sensor debe estar alimentado entre 6,6 y 12,6 Voltios, devolviendo este una señal más o menos positiva dependiendo de si el campo es Cero, negativo o positivo, de base esto ya supone un problema para la lectura con nuestro Arduino ya que si el centro es 4 Voltios y llega hasta los 8 segun el Datasheet no seremos capaces de leer su valor con el Arduino por que la entrada analógica lee hasta 4,96 Voltios solamente, solución :

Esquema electronico de la conexion.

La solución a nuestro problema es hacer un divisor de tensión que nos entregue unos valores que seamos capaces de leer con nuestro Arduino:

Como se puede apreciar la salida de los sensores están conectadas a una serie de dos resistencias de igual valor que disipan el voltaje en el “Ground” logrando así dividir la señal a la mitad, y la mitad de 8 (que es la máxima salida del sensor) es 4 que si que lo lee el Arduino.

Como se puede ver en el esquema las resistencias ( que son de 10 K Ω no de 50 ) están en serie por lo que se comportan como un divisor de tensión, cualquier tensión que entre por ‘Hall’ sera dividida por la mitad en la salida ‘Arduino’ según las leyes de Kirchhoff:

“En toda malla la suma de todas las caídas de tensión es igual a la suma de todas las subidas de tensión. De forma equivalente, En toda malla la suma algebraica de las diferencias de potencial eléctrico es igual a O;”

 \sum_{k=1}^n V_k = V_1 + V_2 + V_3\dots + V_n = 0

Explicado: Kirchhoff, solo quería dar a entender que la diferencia de tensión entre ‘Hall’ y ‘Ground’ es la misma que si sumamos la diferencia de tensión en R1 y en R2, Vtotal = V(R1) + V(R2)

Dato importante: tened en cuenta que la salida del sensor es de 1 mA, es por esto que las resistencias son de 10K para que no disipen este miliamperio y no podamos tener medida, no poner resistencias muy pequeñas.

Ya somos capaces de leer la salida de los sensores, con dos divisores de tensión ahora tenemos que tener claro que el punto ‘Ground’ de nuestro Arduino debe ser el mismo ‘Ground’ que el de los sensores de la veleta que como queda claro debe alimentarse con otra fuente de mas de 6,6 Voltios y el Arduino para eso no nos sirve pues trabaja a 5 Voltios, yo he usado una fuente de PC que da un voltaje muy limpio y ademas esta es cortocircuitable así que si me equivoco no quemo nada, así que unimos la patita ‘GND’ del Arduino con el ‘Ground’ de la fuente ( Normalmente los cables negros de los Molex ).

Bueno esto es toda la parte del Hardware, ya tenemos los sensores conectados a nuestras patillas del Arduino y lo siguiente es el código para leer los datos e interpretarlos correctamente que lo haremos en la segunda parte ya que sino se va a hacer un poco espeso el post.

Detalle de la posición perpendicular de un sensor respecto al otro.

Imán que gira solidario con la veleta justo en el centro de los dos sensores.

Conexionado de la Protoboard

Written by cuningan

15 octubre, 2010 a 8:14

Publicado en Inventos

8 comentarios

Subscribe to comments with RSS.

  1. Bueno parece ser que la red esta llena de teoricos que no saben llevar a la practica los proyectos.
    Las matematicas son muy importantes en la programacion lo cual no significa que un matematico sepa de moverse en la programacion.
    Si no sabes terminar lo que has empezado, elimina esta publicacion que no tiene ninguna utilidad practica.

    Santy

    6 mayo, 2018 at 10:34

  2. Bien aca les dejo el enlace de una parte intermedia 😀 https://cuningan.wordpress.com/2011/01/14/control-de-hasta-8-digitos-de-7-segmentos-con-arduino-o-como-quieras/ al parecer el reemplazo de la pantalla 😀 …..

    Alberto Jovito

    26 octubre, 2016 at 10:45

  3. Hola, hay parte 2?

    fabian

    17 octubre, 2016 at 1:42

    • Hola, veo q la entrada tiene su tiempo, quería saber si hay parte 2

      fabian

      17 octubre, 2016 at 1:43

  4. Hola cuningan,

    Gracias por el post, muy completo.

    Creo que el sensor de velocidad se trata de un switch Reed que lo que hace es poner en contacto cada vez que pasa un imán por el y el CA si no esta presente,es decir cada vuelta completa tienes los 2 estados . La señal sinusoidal puede ser inducida por algo externo supongo.

    Julian

    25 noviembre, 2015 at 13:20

  5. Hi i have the same anemometer, have you made an arduino sketch? i cant find the second part of your tutorial 🙂

    BlackStuffLabs

    5 diciembre, 2012 at 17:34

    • I have it working but i had not time to blog it, i will publish the sketch here shortly.

      cuningan

      5 diciembre, 2012 at 17:40

      • thanks for your support, i will wait for the second part: sketch + wiring!
        thanks again 🙂

        BlackStuffLabs

        5 diciembre, 2012 at 17:44


Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s

A %d blogueros les gusta esto: