Unidad 3 - Arduino
1. Sensores
Tal como se mencionó al inicio del curso, los sensores son dispositivos sensibles al entorno que permiten obtener información de él, es decir, detectar cambios.
Los cambios que suelen detectarse se vinculan con la intensidad de luz, la distancia, la inclinación, la presión, la humedad, la temperatura, el movimiento, etc. En esta unidad conocerás cómo utilizar pulsadores y detectar si se presionó o no un botón (que puede ser por una persona o por un sistema mecánico que diseñes, entre otros) y LDR para percibir cambios en los niveles de luz.
Por otro lado, en la unidad anterior se utilizaron tanto pines analógicos como digitales para encender leds. En el caso de los sensores, también se podrán utilizar ambos. Para un pulsador, por ejemplo, se utilizan pines digitales que permiten conocer dos estados: presionado o no presionado. Mientras que en otros sensores, como un LDR, se conocerá si hay variaciones en la luz utilizando pines analógicos. En este sentido, encontrarás una diferencia porque los pines analógicos usados como salida (OUTPUT) distinguen valores entre 0 y 255, mientras que como entrada (INPUT), entre 0 y 1023.
2. Variables
Antes de incorporar estos dispositivos a Arduino, es necesario introducir el concepto de «variables», que son espacios de memoria reservados que almacenan información a la que se puede acceder mediante identificadores.
Además, el nombre de las variables (identificador) suele escribirse en minúsculas y no puede coincidir con las palabras reservadas (que tienen un significado específico para el lenguaje). Una forma sencilla de verificar esto es escribir el nombre y asegurarte de que no cambie de color. Y es que Arduino cambia el color de las palabras que reconoce como parte del lenguaje.
Arduino es un lenguaje «tipado», lo que implica que cada variable está asociada a un tipo de dato.
Algunas de ellas son:
int para números enteros.
float para números reales (con coma flotante).
char para caracteres.
string para cadenas de caracteres.
boolean para valores lógicos (verdadero/falso).
Para crear (declarar) una variable se debe seguir la siguiente estructura:
tipo de dato + nombre (identificador) + = (símbolo de asignación) + valor + ;
Ejemplo: int pinLed = 13 ;
En el ejemplo la variable es de tipo entero, por lo que solo se le podrá asignar un valor entero. Es decir, no se le podrá asignar una cadena como «Hola» ni un número real como 1.25. A pesar de ello, en algunos casos Arduino convierte automáticamente el valor a un número entero, lo cual no es recomendable porque puede traer inconvenientes.
3. Pulsador
En general los pulsadores se activan por la presión de un dedo, aunque pueden hacerlo por otros sistemas y permiten cerrar un circuito. Por ejemplo, existen varios sensores que activan de forma mecánica un pulsador.
Usualmente encontrarás dos tipos de pulsadores: normalmente abierto (NA) o normalmente cerrado (NC). Los primeros solo permiten la circulación de la corriente cuando son presionados; los segundos también, pero se los debe volver a presionar para detenerla.
Este es el diagrama de los pulsadores que se usan mayormente con Arduino y en distintas aplicaciones electrónicas. Poseen cuatro terminales, los dos superiores e inferiores están conectados entre sí.
A continuación, te mostramos un ejemplo de uso de pulsador con Arduino para encender y apagar un led.
4. Fotorresistencias
Las fotorresistencias o fotorresistores son resistencias cuyo valor varía según la luz que reciben. En general, disminuye el valor de la resistencia con el incremento de la luz.
En la aplicación con Arduino, además de las variables y las funciones analogWrite(pin, valor) y analogRead(pin) que se utilizaron anteriormente, hay que aplicar también la función map(). Esto se debe a que en la lectura los pines analógicos pueden distinguir en el rango 0-1023, pero en la escritura en el rango 0-255.
La función map tiene la siguiente estructura:
map (valor,mínimoValor, máximoValor, mínimoFinal, máximoFinal);
En el primer campo se indica el valor para mapear y luego los valores mínimos y máximos que podría adquirir dicho valor (en este caso 0 y 1023, dado que se mapea el valor de entrada). Y luego el rango al que se desea llevar dicho valor (0 y 255). Finalmente, como ese resultado se le asignará a una variable, la instrucción queda así:
valorLed = map(valorLectura,0,1023,0,255);
A continuación te mostramos un ejemplo del control de brillo de un led con un LDR en Arduino.
Finalmente, te invitamos a que investigues otros sensores como el ultrasónico, infrarrojo, etc.
5. Desafío 3
Te proponemos que tomes el programa del desafío anterior y lo controles utilizando un pulsador o LDR. Por ejemplo, si conectaste varios leds en serie, que estos se enciendan con un pulsador, o si utilizaste pines analógicos, que ahora la intensidad se regule con un LDR.
Comentarios
Publicar un comentario