Windvane

Lectura de la dirección del viento mediante una veleta:

Veleta:

La veleta se compone de 8 interruptores cada uno conectado a una resistencia diferente. Un imán de aleta puede cerrar dos interruptores a la vez lo que permite hasta 16 posiciones diferentes.
Se trata de un simple divisor resistivo que nos da un valor de tensión diferente según la posición de la veleta. Este valor lo medimos con el ADC del microcontrolador para obtener la dirección del viento.
En el siguiente figura podemos ver como está configurado el divisor resistivo de la veleta. Tan solo tenemos que añadir una resistencia de valor conocido y la alimentación para obtener los valores de tensión diferentes a la salida según la dirección del viento.


Cuando el imán cierra 2 interruptores a la vez la vez el resultado es de dos resistencias en paralelo lo que nos permite tener hasta 16 direcciones diferentes. En la siguiente tabla se muestra un ejemplo de lo que obtendríamos a la salida si alimentamos el sensor con 3.3V y añadimos una resistencia R de 10K.


Conexión del sensor al microcontrolador:

Conectamos una resistencia de 10K a Vcc y al pin 1 de la veleta para formar el divisor resistivo. Esta salida la conectamos al pin analógico AN6(RF1) que es el canal 6 del ADC del microcontrolador. El pin 2 de la veleta la conectamos a la masa común.

Flowchart para la lectura de la veleta:


Para leer la dirección del viento lo primeo que hacemos es configurar la velocidad de muestro, el tiempo de adquisición y el justificado del resultado del ADC del microcontrolador, seguidamente seleccionamos el canal 6 (AN6)  del ADC para realizar la lectura. Iniciamos la lectura y esperamos a que finalice. Guardamos el valor y detenemos el ADC. Comprobamos el valor , determinamos la dirección del viento y enviamos los datos.

Diagrama FSM :

El estado inicial es el modo ‘Idle’, para iniciar la lectura de los datos de dirección del viento hay que pulsar el botón RB0. Para parar la lectura se pulsa de nuevo el botón RB0 y se vuelve al estado inicial ‘Idle’.

Esquema Proteus:


Para la simulación de la veleta se ha creado un circuito que simula el esquema eléctrico de la veleta que nos indica el fabricante. Se ha creado un divisor de tensión con interruptores y resistencias donde se puede seleccionar la dirección del viento cerrando o abriendo los interruptores. El divisor resistivo lo conectamos a pin analógico AN6 (RF1).

Configuración del ADC del microcontrolador:

Para capturar el valor de salida de la veleta utilizaremos el canal 6 del ADC. Se trata de un ADC de 12 bits de resolución (4096 niveles) con 24 canales de entrada. Nosotros utilizaremos el canal 6 (AN6) para digitalizar la señal de salida de la veleta.

En la siguiente figura se puede ver el diagrama del ADC que integra el microcontrolador PIC18F87K22


Para configurarlo tenemos diferentes registros en los que podemos seleccionar diferentes parámetros de nuestro ADC
  • ADCON0: Controla la operación del módulo ADC
  • ADCON1: Configura el voltaje de referencia y los eventos especiales
  • ADCON2: Configura la velocidad de muestreo del ADC, el tiempo de adquisición y la justificación del registro de salida.
  • ANCON(0...2): Podemos seleccionar el tipo de puerto que vamos a utilizar entre analógico o digital.
ADCON0:


  • CHS<4:0>: Bits para la selección del canal analógico
  • GO/DONE: Bit que inicia la conversión
  • ADON: Inicia o detiene el ADC
ADCON1:


  • TRGSEL<1:0>: Bits para la selección de eventos especiales
  • VCFG<1:0>: Bits configuración A/D Vref+
  • VNCFG<1:0>: Bits configuración A/D Vref-
  • CHSN<2:0>: Bits de configuración canal analógico negativo








ċ
Dir_Vel_Viento.X.production.cof
(87k)
Alberto Gómez,
7 sept 2016, 1:51
ċ
Dir_Vel_Viento.pdsprj
(37k)
Alberto Gómez,
7 sept 2016, 1:51
Comments