Download Sensores II - ¡Conviértete en un Joven Inventor!

Document related concepts
no text concepts found
Transcript
Clase 6: Sensores II
Conviértete en un Joven Inventor
PENTA UC – 2014-1
Repaso Sensores
Sensores II
Preguntas de repaso
1.
2.
3.
4.
5.
¿Qué son los sensores?
¿Cómo nos entregan la información?
¿Cómo podemos manejar esa información con Arduino?
¿Qué hace la función analogRead()de Arduino?
¿Qué función cumple un Conversor Análogo Digital (ADC)?
Repaso ADC
Sensores II
Conversor de 3 bits: 23 = 8 niveles, del 0 a 7
Número
Voltaje [V]
000
0
001
0.71
010
1.42
011
2.14
100
2.85
101
3.57
110
4.28
111
5
5
4
3
2
1
0
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
Repaso ADC
Sensores II
Conversor de 10 bits: 210 = 1024 niveles, del 0 a 1023
5
4.5
4
3.5
3
2.5
2
1.5
1
0.5
0
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
Repaso Sensores
Sensores II
Ejemplo
Se tiene un sensor de distancia lineal que entrega 0(V) cuando
está midiendo 10cm, y 5(V) cuando está midiendo 100cm.
¿Qué voltaje entrega cuando está midiendo 25cm?
Repaso Sensores
Sensores II
Ejemplo
Se tiene un sensor de distancia lineal que entrega 0(V) cuando
está midiendo 10cm, y 5(V) cuando está midiendo 100cm.
¿Qué voltaje entrega cuando está midiendo 25cm?
𝑦 − 𝑦1 =
𝑦2 − 𝑦1
𝑥2 − 𝑥1
𝑥 − 𝑥1
Repaso Sensores
Sensores II
𝑦2 − 𝑦1
𝑦 − 𝑦1 =
𝑥2 − 𝑥1
𝑥 − 𝑥1
5−0
𝑦−0=
60 − 10
𝑥 − 10
𝑦=
5
(𝑥 − 10)
50
𝑦 = 0.1𝑥 − 1
Repaso Sensores
Sensores II
Comprobar
𝑦 = 0.1𝑥 − 1
Si 𝑥 = 10(𝑐𝑚)
𝑦 = 0(𝑉)
Si 𝑥 = 60(𝑐𝑚)
𝑦 = 5(𝑉)
Si 𝑥 = 25(𝑐𝑚)
𝑦 = 1.5(𝑉)
Sensores más avanzados
Sensores II
• Vamos a realizar proyectos
con todo lo que hemos
visto hasta ahora en el
curso.
Sensor de Presión
Sensores II
Resistencia variable según el punto
de presión.
¿Cómo utilizarlo?
• El sensor posee tres pines.
• Conecta uno de los extremos a 5(V), y el otro
extremo a tierra (0(V)).
• En el pin central se verá un voltaje que cambia
según el punto de presión del sensor. Es la
salida de un divisor de voltaje.
Circuito Equivalente:
Circuito básico para testear
Sensores II
• El LED cambiará su intensidad de
encendido según el voltaje Vout, que se
modifica según donde esté siendo
presionado el sensor.
Leyendo Vout con Arduino
Sensores II
Debemos utilizar los puertos ANALOG IN
• Conecta el pin central del sensor a uno de los
puertos «A» de la placa Arduino.
Leyendo Vout con Arduino
Sensores II
Leyendo Vout con Arduino
Sensores II
Leyendo Vout con Arduino
Sensores II
Leyendo Vout con Arduino
Sensores II
• Veamos lo que estamos recibiendo con el
«Monitor Serial» de Arduino.
• El número inicial no es cero y puede ser aleatorio.
Leyendo Vout con Arduino
Sensores II
• Modifiquemos un poco el circuito.
• Agregar resistencia de 10 (kOhm) a tierra en el
nodo central.
• Ahora si parte en cero.
LED RGB
Sensores II
• LED especial que puede generar muchos colores
según el voltaje en sus terminales.
• Tiene 4 pines, uno de ellos es tierra y los tres
restantes son para indicar con un voltaje la
«cantidad» de azul, rojo y verde que tiene
nuestro color.
• La mezcla adecuada permite obtener colores
exóticos.
• Mezcla aditiva: no se pueden obtener colores
oscuros (la «luz negra» no existe).
LED RGB
Sensores II
• Se conecta cada pin de color a una salida PWM
del Arduino (~).
• Se coloca una resistencia en cada terminal
para limitar la corriente.
Enunciado Taller I
Sensores II
• Utilizando el sensor de presión controle el color del LED RGB
para que pase por un amplio rango de colores.
Pistas
•
•
•
Divida el rango del sensor en tres zonas y utilice la función map()
para generar un valor entre 0 y 255 que permita encender cada color
del LED.
CUIDADO: La función analogWrite() no opera correctamente si se
le asigna un valor (mayor a 255 o menor a cero).
Utilice la función constrain()para limitar los valores entregados
por la función map(), en caso de que éste supere el rango de 0 a 255.
int a = 500;
int b = map(a, 0, 100, 0, 255);
// Entrega un valor mayor a 255
r = constrain(b, 0, 255);
// Lo limita a 255
analogWrite(pinRojo, r);
// Se enciende con seguridad
Solución Taller I
Sensores II
Solución Taller I
Sensores II
Flexsensor
Sensores II
Resistencia variable según lo doblado que
se encuentre el sensor.
¿Cómo utilizarlo?
• El sensor posee dos pines.
• Conecta uno a tierra.
• Conecta el otro a una resistencia de
10(kOhm), la cual está conectada a 5(V).
• Esta configuración forma un divisor de
voltaje.
Circuito Equivalente:
Enunciado Taller II
Sensores II
• Controla el ángulo de un Servomotor utilizando el
flexsensor.
Pistas
1.
Este ejercicio es muy similar al de la clase de motores. Se
recomienda revisarla para recordar cómo utilizar la librería
para controlar al servomotor.
2.
Es necesario debuggear para conocer en qué rango se mueve
el número que recibe Arduino cuando el sensor es sometido
a una flexión. En este caso no es de 0 a 1023.
Utilizar la función constrain() para evitar posibles
comportamientos erráticos.
3.
Solución Taller II
Sensores II
Solución Taller II
Sensores II
Sensor de Temperatura
Sensores II
Chip que nos entrega un voltaje
proporcional a su temperatura
¿Cómo utilizarlo?
• Conectar V+ a los 5(V).
• Conectar GND a Tierra
(0(V)).
• Conectar Vout a algún
puerto ANALOG IN de la
placa Arduino.
¡CUIDADO CON
CONECTARLO AL REVÉS!
Sensor de Temperatura
Sensores II
Consideraciones
• El sensor en Vout entrega un voltaje que
tiene una relación con la temperatura de
10 mV/°C = 0.01 V/°C
• Esto quiere decir que si está entregando
0.25(V), es porque está midiendo unos 25°C.
• Siempre es útil revisar el datasheet (hoja de
datos) de los sensores más avanzados.
• Del datasheet podemos conocer que el
sensor tiene un desnivel (offset) de 0.5(V),
por lo que en realidad entrega 0.75(V)
cuando hay 25°C, y que además tiene una
precisión de +-2°C (no es exacto).
Enunciado Taller III
Sensores II
• Armar un termómetro digital que entregue la temperatura en
grados Celsius, Fahrenheit y Kelvin utilizando la pantalla LCD.
Pistas
1.
Conecte la pantalla LCD siguiendo los pasos del manual. Recordar cómo utilizar
la librería revisando las clases anteriores. Utilizar la función setCursor();
2.
Si se tiene el valor del sensor en la escala de Arduino (0 a 1023), es posible
volver a convertirlo a un valor de voltaje utilizando la siguiente expresión:
𝒗𝒐𝒍𝒕𝒂𝒋𝒆𝑺𝒆𝒏𝒔𝒐𝒓 = 𝒗𝒂𝒍𝒐𝒓 ∗ 𝟎. 𝟎𝟎𝟒𝟖𝟖𝟐𝟖𝟏𝟒
3. Para convertir el voltaje del sensor a grados Celsius:
𝒈𝒓𝒂𝒅𝒐𝒔𝑪𝒆𝒍𝒄𝒊𝒖𝒔 = (𝒗𝒐𝒍𝒕𝒂𝒋𝒆𝑺𝒆𝒏𝒔𝒐𝒓 − 𝟎. 𝟓) ∗ 𝟏𝟎𝟎. 𝟎
4. Para convertir de °C a °F:
5.
𝟗. 𝟎
𝒈𝒓𝒂𝒅𝒐𝒔𝑭𝒂𝒉𝒓𝒆𝒏𝒉𝒆𝒊𝒕 = 𝒈𝒓𝒂𝒅𝒐𝒔𝑪𝒆𝒍𝒄𝒊𝒖𝒔 ∗
+ 𝟑𝟐. 𝟎
𝟓. 𝟎
Utilice variables double en vez de int para manejar valores decimales.
6. Al dividir o multiplicar valores, explicite los decimales para evitar truncamientos.
7. Se recomienda altamente debuggear para ver si los cálculos están correctos.
Solución Taller III
Sensores II
Solución Taller III
Sensores II
Clase 6: Sensores II
Conviértete en un Joven Inventor
PENTA UC – TAV 2014