Está en la página 1de 19

SEMANA 2

Curso orientado al desarrollo de dispositivos


robóticos a través de la programación por
código en ARDUINO UNO
Robótica Avanzada
Curso orientado al desarrollo de dispositivos robóticos a
través de la programación por código en ARDUINO
UNO
Semana 3:
Sensores Analógicos
¿Qué son las señales analógicas?

● Una señal analógica es una señal generada por algún tipo de fenómeno físico y se
caracteriza por ser matemáticamente continua. Algunos ejemplos más comunes
pueden ser la luz, el sonido o la misma energía.
● En nuestro caso la magnitud que nos interesa es la diferencia de potencial
eléctrico también denominado voltaje.
● ARDUINO UNO cuenta con seis puertos que nos permiten leer señales analógicas
dentro del rango de 0 a 5 Volts, nomenclados como A0, A1, A2, etc.
● Esto lo consigue gracias a que dentro de su sistema posee conversores analógico-
digitales (también denominados A/D) con una resolución de 10 bits.
● Por lo tanto, las señales analógicas que midamos serán expresadas en un rango de
1024 valores discretos.
Ejemplo: Temperatura ambiente

Analógico Digital

1024
puntos

Más adelante en este encuentro veremos dos sensores que nos permitirán adquirir fácilmente la
temperatura del ambiente.
Analog Read
● Los pines analógicos funcionan únicamente como
puertos de entrada, por lo que no hará falta
configurarlos en el void setup.
● Para realizar la lectura de una variable analógica
utilizaremos la función analogRead() y
guardaremos el valor devuelto en una variable.
● Luego aplicaremos una condición para que en
función del valor leído, se imprima un mensaje en
Analog Ins de
10 bits el monitor Serial.
● Recordando que al tener 10 bits, el rango de
representación del voltaje medido en la entrada
puede variar entre 0 y 1023.
Analog Read
Analog Read - Tensión en un potenciómetro
Analog Read - Circuito con LDR
Mapeo
● Como ya hemos visto, el valor de las señales analógicas se expresan en Arduino
en un rango de 0 a 1023.
● Dicho rango puede resultar poco práctico para la interpretación de un fenómeno
físico y obstaculizarnos a la hora de realizar un código más complejo.
● Por suerte existe la función map() que nos permitirá pasar del rango original a otro
rango distinto más útil si le introducimos los parámetros necesarios.
● En este caso vemos cómo mapear una señal de 0 a 5 V:

ValorMapeado = map(variable, min_inicial, max_inicial, min_final, max_final)


;
ValorMapeado = map(Valor, 0, 1023, 0, 5) ;
Mapeo

ValorMapeado = map(Valor, 0, 1023, 0, 5) ;

● El problema con este ejemplo es que la función map() devuelve un número entero,
por lo que en el monitor solo se observarán valores redondeados de 0 a 5,
dejando de lado los valores intermedios que se podrían expresar en decimales.
● Para eso es que existe otra función similar denominada fmap() que nos permitirá,
ahora sí, mapear de un rango de valores a otro con decimales.
● Un detalle importante es que ahora la variable para guardar el valor mapeado
deberá ser del tipo float, que permite codificar números con coma.
Mapeo

● Para que fmap() funcione correctamente debemos incluir fuera de las estructuras
void el siguiente código tal cual está escrito:

● Y ya podremos utilizar la función fmap() correctamente.


● Un detalle no menor, es que las variables del tipo float son más pesadas
(contienen más bits) por lo que, a menos que sea realmente necesario, no se
recomienda utilizar mucho esta función ya que podría reducir la velocidad de
nuestro algoritmo y por tanto de nuestro sistema.
Mapeo - Ejemplo con fmap
Sensores Analógicos
● Ahora que ya hemos visto como trabaja Arduino con las señales analógicas y conocemos el
mapeo, es momento de explorar las posibilidades de los sensores analógicos.

TMP36 DHT11
Sensores Analógicos: Datasheet
● Todos los sensores y componentes electrónicos tienen asociada una hoja de datos ofrecida por
su fabricante denominada Datasheet. En ésta, podremos encontrar las especificaciones técnicas y
la información necesaria para poder conectar y entender cómo se comporta el componente.
Sensores Analógicos: LM35 y TMP36
● Los dispositivos LM35 y TMP36, son sensores analógicos que permiten medir la temperatura
ambiente con un factor de escala lineal de 10mV/ºC, es decir que por cada grado Celsius
observaremos una variación de 10mV en la señal entregada por el sensor.
● Poseen tres pines para su conexión: VCC (alimentación), Out (Señal entregada por el sensor) y
GND (tierra).
● Sus rangos de tensión de trabajo son diferentes, pero ambos funcionan perfectamente con
nuestra alimentación de 5V de Arduino.
● Existen otros modelos de sensores, pero debido a su gran relación de precio calidad éstos son los
mejores para la educación y el aprendizaje.
Sensores Analógicos: LM35 y TMP36
Analog Read - Temperatura ambiente
Sensor DHT 11
● Este sensor nos permite medir tanto temperatura como humedad del ambiente. Éstas señales
analógicas son leídas directamente por un circuito conversor integrado al dispositivo.
● Esto nos permite recibir en el arduino la información digital de temperatura y humedad de forma
serializada. En otras palabras, el sensor nos envía alternadamente datos de humedad y
temperatura para que Arduino lea directamente a través de un puerto digital.
● Su tensión de trabajo es de 3,5 a 5 V.
● Su rango de
● Se trata de un dispositivo excelente para realizar una estación meteorológica.

También podría gustarte