Entradas "analógicas"

En robótica se llaman entradas analógicas en las que se pueden leer diferentes niveles de tensión. Se diferencian de las digitales en que en estas sólo se pueden leer dos niveles de tensión. Una entrada digital tiene dos posibles valores. Una entrada analógica puede interpretar hasta 256 niveles diferentes de tensión. Las entradas 0, 1 y 2 de la placa de alta potencia están conectados a pines capaces de leer valores analógicos. El chip 18M2 tiene más pines capaces de leer niveles analógicos

Conecta un potenciómetro a la entrada analógica 0

Un sensor analógico traducuirá una variable externa en un nivel de tensión que la placa puede medir. Los sensores tienen tres conexiones: dos son de alimentación (hay que conectar a positivo y a negativo) y la otra se conecta a la entrada analaógica. El Cihp 20M2 tien 3 entrasa analógicas: las entradas número 1,2 y 3 .

Una entrada digital tiene 2 estados posibles. Una entrada analógica tienen muchos (256).

Placa de sensores

Para simplificar las conexiones, hemos preparado una placa de sensores con un pontenciómetro y una LDR (entradas analógicas) y dos pulsadores (entradas digitales). Tal y como está montado el valor de la entrada analógica 2 dependerá de la cantidad de luz que reciba la LDR. El valor de la entrada analógica 3 dependerá de la posición del potenciómetro. Moviéndolo con la mano, cambia su valor.

placa de sensores

Prueba el siguiente programa moviendo el potenciómetro.


do
	readadc 2,b2
	readadc 3,b3
	b6=pin6
	b7=pin7
	debug
loop


Observa el valor de la entrada 2 (LDR) se almacena en la variable b2. Según la cantidad de luz que recibe el LDR. El valor de la variable b3 almacena el valor analógico de la entrada 3. Varia moviendo e potenciómetro.

Programa de ejemplo

Prueba el siguiente programa:

do
	readadc 3,b3; se lee el valor de la entrada 3 y se almacena en la variable b3
	debug ; nos muestra el valor de las variables en la pantalla del ordenador
	
	if b3<180 then ; Dependiendo del valor del potenciómetro, se encienden unas salidas u otras
		high 0,1,2,3
		low 4,5,6,7
	else
		high 4,5,6,7
		low 0,1,2,3
	endif
	
	pause 100; un rato parado para que lo veamos
loop
  • Ejercicio 1

    Haz un programa que funcione de manera similar pero si b3 es menor de 60 se encienden únicamente 0, y 1. Si está entre 60 y 120 (...if b3 <60 and b3 > 120 then...) se encienden únicamente las salidas 2 y 3. Si está entre 120 y 180 se encienden 4 y 5. Si es mayor de 180 se encienden 6 y 7.

  • Ejercicio 2

    Haz un programa que funcione como el siguiente ejemplo.

    Prueba el siguiente programa que quizá te ayude (descarga y observa los valores de la variables, no se encenderá ningún led):

    
    do
    	readadc 0,b3
    	
    	b4=b3*8/255
    	pause 100
    	debug b4
    loop
    
    

  • Ejercicio 3

    Haz un programa que funcione como el siguiente ejemplo.


  • Ejercicio 4

    Conecta una LDR a la controladora en una entrada analógica. Existe una resistencia interna que conecta las entradas al polo negativo. En algunas placas esa resistencia no está presente y entonces es importante ponerla.


  • Ejercicio 5

    Haz un programa que funcione como el siguiente ejemplo. El los if la condición puede ser que un valor sea mayor o menor que otro.


  • Ejercicio 6

    Haz un programa que funcione como el siguiente ejemplo.


  • Ejercicio 7

    Conecta una LDR a una entrada analógica y consigue que se enciendan más led cuanto más luz reciba.