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