Saltar la navegación

Magnitudes analógicas

La controladora LOG-4007 dispone de dos entradas analógicas, A1 y A2, con una resolución de 8 bit; es decir, transformarán una magnitud comprendida entre 0 y 5 voltios en un número de 0 a 255. Nosotros hemos conectado en A1 una resistencia ajustable y en A2 un sensor de luz LDR .

simular magnitudes analógicas

Ejemplo:
     ;creamos las variables "A1 y "A2 para guardar
    ;el valor de las entradas analógicas
    haz "A1 leer_entrada_analogica 1
    haz "A2 leer_entrada_analogica 2

También son analógicas las salidas para conectar el motor M1. Pueden suministrar una tensión variable entre 0 y Vmotor con 8 bit de resolución y nos permiten controlar su velocidad.

Ejemplo:
    ;asignamos al motor la velocidad máxima
    gira_motor1_derecha
    modificar_velocidad1 255

El archivo simAnalogicas.lgo nos permitirá simular este circuito:

Ficheros adjuntos: simAnalogicas.lgo

Podemos utilizar las siguientes instrucciones:

gira_motor1_derecha detiene_motor1
gira_motor1_izquierda
modificar_velocidad1 :numero (entre 0 y 255)
estado_motor 1 (devuelve derecha, izquierda, off)
activa_rele1 desactiva_rele1
activa_rele2 desactiva_rele2
estado_reles :numero (devuelve on / off)
leer_entrada_analogica :numero

Las instrucciones gira_motor1_derecha y gira_motor1_izquierda asignan al motor una velocidad 0, por tanto, no provocan su movimiento inmediato, a continuación hay que poner la instrucción modificar_velocidad1 :numero para que se ponga en marcha con la velocidad que deseemos. También hay que tener en cuenta que en un circuito real un valor muy bajo de la velocidad generará una tensión insuficiente para provocar el giro del motor.

Pinchar con el botón derecho del ratón en el enlace adjunto, seleccionar "guardar enlace como" y almacenarlo en vuestro ordenador.

En el vídeo hemos ejecutado un programa que controla, por un lado, la velocidad de un motor moviendo el cursor de una resistencia ajustable conectada a la entrada analógica 1 y, por otro, el encendido/apagado de una bombilla en función de la luz recibida por el sensor situado en la entrada 2. Tal como hemos conectado la LDR, a mayor luz menor será el valor de la entrada analógica.

Actividades

Instrucciones: Abrir y ejecutar el archivo simAnalogicas.lgo. Completar las actividades y comprobar su funcionamiento en el entorno de FMSLogo.

1.- Hacer un procedimiento que esté permanentemente mostrando, a intervalos de un segundo, los valores de las dos entradas analógicas (A1 y A2) en la ventana de trabajo.

para analogicas1
[
haz "A1 1
haz "A2 2
( "A1= "A2= )
60

fin

2.- Completar el procedimiento adjunto para que el motor1 gire durante 5 segundos a derecha a máxima velocidad (255), después gira a izquierda otros 5 segundos con una velocidad inferior (150) y finalmente se pare.

para analogicas2
gira_motor1_derecha
255

gira_motor1_izquierda



fin

3.- El programa siguiente debe mantener girando a derecha el motor1 con una velocidad que se corresponda con el valor de la entrada analógica A1.

para analogicas3

siempre [
haz "A1 1
modificar_velocidad1
espera 10
]

fin

4.- Realizar un programa que encienda la bombilla R1 cuando el valor de la entrada analógica A2 sea superior a 160 y la bombilla R2 cuando el valor sea superior a 200. Ambas se apagarán si la entrada analógica baja de 80.

Montaje real

El archivo librería.lgo suministrado por el fabricante de la tarjeta contiene algún error en la lectura de las magnitudes analógicas. En concreto, al usar leer_entradas_analogicas 1 obtendríamos el valor de la entrada A2 y viceversa. Además, el resultado de la lectura no es de 0 a 255, sino de 0 a 127 y de -128 a -1. Para solucionarlo seguimos los siguientes pasos:

  • Abrimos el archivo con el Block de notas.
  • Localizamos el procedimiento leer_entrada_analogica :entrada
  • En las instrucciones escribeCaracterPuerto cambiamos 52 por 53 y viceversa.
  •  Después de la instrucción cierraPuerto incluimos la siguiente línea:
  • si :estado<0 [haz "estado :estado+256]
  • Finalmente, guardamos el archivo.

En el vídeo las bombillas se encienden conforme va disminuyendo la luz. Como sensor utilizamos una resitencia LDR conectada a la entrada analógica A2.

Obra publicada con Licencia Creative Commons Reconocimiento Compartir igual 4.0