INICIO

sábado, 13 de junio de 2015

2.01 LEDs



La palabra LED son las abreviaturas en inglés de Light Emitting Diode, lo que se traduce como diodo emisor de luz. En 2014 la Real Academia de la Lengua incluyó en su diccionario la palabra “led” como palabra española con el curioso plural “ledes”.
Los ledes se encuentran disponibles en gran cantidad de colores y tamaños pero los que más utilizaremos con Arduino son los de 5mm en colores como rojo, amarillo o verde por ser los más comunes y económicos. También pueden emitir luz fuera del espectro visible como en la banda infrarroja o en la ultravioleta.
Desde nuestro punto de vista al utilizarlos los ledes son dispositivos de salida que podemos encender o apagar desde los pines digitales y con los pines PWM podemos controlar la intensidad de su brillo.
Pueden parecer pequeñas bombillas pero a diferencia de estas no poseen un filamento incandescente, consumen muy poca energía, no se calientan y poseen polaridad. Que posean polaridad es un punto a tener en cuenta a la hora de conectarlos ya que si no lo hacemos de la forma correcta el led no se encenderá.
La patilla más larga es el, ánodo o polo positivo, que se debe conectar a la alimentación positiva o a la señal de un pin digital. El polo negativo o cátodo es la patilla más corta, además para ayudarnos a diferenciarlos en el contorno del encapsulado hay una parte plana que se corresponde con el cátodo.
Otro aspecto a tener en cuenta de los ledes es que tienen un voltaje de funcionamiento y un consumo determinado. Su consumo es, salvo en los casos de alta potencia, de 10 mA por lo que podemos conectar hasta 4 en una misma salida. Su voltaje de trabajo varía según su color pero suele estar en torno a los 3 v, por lo que necesitamos una resistencia de 220 Ohms para adaptar los 5 v de salida de los pines digitales de Arduino al voltaje de trabajo de los ledes.

1.11 Puerto serie básico.



1.11.1. ¿Qué es el puerto serie?
El puerto serie es un puerto de comunicación estándar en muchos sistemas digitales. Establece la comunicación entre dos puntos a una velocidad determinada en bits por segundo (bps o baudios).
El puerto serie puede servir tanto para hacer que Arduino Uno comunique con un ordenador, como para hacer que dos Arduinos “hablen” entre sí. El puerto USB, con el que Arduino conecta a tu PC, tiene un modo de comunicación que simula un puerto serie.
Muchos de los dispositivos que existen, usan el puerto serie como sistema de comunicación básico. Si bien puede que no te ofrezcan una conexión física donde hacerlo, tu ordenador, tu teléfono, tu lavadora o el ascensor de tu casa, tienen un puerto serie de comunicación que se puede utilizar para reparar el sistema a bajo nivel.
En Arduino Uno, el puerto serie está en los pines 0 y 1, por lo que se recomienda dejar esos pines libres a la hora de hacer proyectos si es que quieres usar el puerto de algún modo como para mandar datos a un ordenador o leer un sensor complejo como un GPS.
1.11.2. Envía desde Arduino
Para probar a enviar datos desde Arduino, sólo tienes que cargar el programa “Archivo → Ejemplos → Analog → AnalogInOutSerial”. Este ejemplo, lee el valor de un potenciómetro conectado a Arduino y lo envía de vuelta al ordenador.
Para poder ver los datos en la pantalla, la barra de tareas del IDE de Arduino tiene la opción “Puerto Serie”; se trata de un icono con forma de lupa. Al hacer click sobre él, se abre una venta de diálogo que permite tanto enviar como recibir datos de Arduino.
Si ejecutas el mencionado ejemplo, verás una secuencia de datos que llegar a tu ventana.
Por otra parte, puedes probar a hacer un ejemplo sencillo de comunicación para ver cuales son los comandos básicos para establecer la comunicación. El programa más sencillo sería así:
void setup() {
Serial.begin(9600);
}
void loop() {
Serial.println(“Hola Caracola”);
delay(100);
}
Si ejecutas este programa y abres el monitor serie, verás como se escribe el mensaje “Hola Caracola” sobre el monitor a una velocidad de 10 veces por segundo.
Verás que hemos puesto un retardo (delay) dentro del loop. Esto es recomendable puesto que tu Arduino Uno es capaz de enviar datos más rápido de lo que tu PC es capaz de leer. Si no lo hicieras así, seguramente saturarías el puerto de comunicación de tu ordenador.
1.11.3. Nuevos comandos
Serial.begin(velocidad) establece como se ha de configurar el puerto para enviar datos entre Arduino y el ordenador. Es importante notar que Serial.begin(9600) -tal y como lo vimos en el ejemplo anterior- usa la velocidad de envío de datos de 9600 baudios por el puerto. Esto quiere decir que, cada segundo, se envían 9600 bits, o 9600 1's y 0's por el puerto. Esta velocidad es la que se usa por defecto. Prácticamente todos los dispositivos que pueden comunicar por puerto serie, pueden hacerlo a esa velocidad.
Serial.println(texto) envía una cadena de texto hacia el ordenador incluyendo un final de línea/retorno de carro al final.
1.11.4. Recibe en Arduino
El ejemplo más sencillo para probar la comunicación desde el PC hacia Arduino Uno se encuentra en “Archivo → Ejemplos → Comunication → Physical Pixel”. La idea detrás de este ejemplo es transformar tu placa en un pixel que puedas controlar remotamente desde el PC. Como Arduino Uno tiene un led en el pin 13 que puedes controlar por software, es como si fuera un pixel físico.
Carga el programa en tu placa y abre el monitor serie. El campo de texto de arriba en la ventana de diálogo te permite escribir datos através del puerto. En este caso la hache mayúscula o “H” encenderá el led, mientras que la ele mayúscula o “L” lo apagará. El dato no se envía automáticamente, tienes que bien hacer click en el botón “send” o presionar “enter” en tu teclado para que se envíe el dato.
1.11.5. Nuevos comandos (2)
Dentro del ejemplo “Physical Pixel” verás estos comandos nuevos:
·         Serial.available() sirve para ver si han llegado datos por el puerto serie. Al invocarlo, nos responde con el número de datos que han llegado por el puerto y que se han almacenado en la memoria de Arduino.
·         Serial.read() nos devuelve el primer dato que llegó por el puerto de comunicación. Además borra ese valor de la memoria, de modo que Serial.available() decrementará en una unidad la próxima vez que lo llames.
1.11.6. Aplicaciones educativas
La comunicación serie es la forma más básica de comunicación por protocolo entre sistemas digitales. Su comprensión es fundamental para entender otros sistemas de comunicación como redes de ordenadores y similares.

1.10 Entradas analógicas.



1.10.1. ¿Qué es una entrada analógica?
Una entrada analógica en un microcontrolador es un contacto (pin o terminal) en el que podemos capturar, vía software, el valor del voltaje y mapearlo en un número entero.
Esta captura se hace, en Arduino Uno, mediante un periférico interno (que reside dentro del procesador) llamado conversor analógico digital aunque nos referimos a él por sus siglas en inglés: ADC, del término Analog to Digital Converter. Sólo 6 pines en Arduino Uno están conectados a ese periférico. Están marcados con el texto A0 a A5.
En Arduino Uno, el conversor es de 10bits, es decir, puede convertir el voltaje en un número que va desde 0 a 1023. La correspondencia es sencilla: 0V corresponden al número 0, mientras que 5V a 1023. El resto de los valores van en proporción, es decir, 2V5 sería 512, etc.
1.10.2. El sensor más sencillo: el potenciómetro
El sensor más sencillo es un potenciómetro, puesto que permite explorar todos los valores del rango que el ADC puede capturar.
El potenciómetro es una resistencia que tiene tres terminales. Dos de ellos están a los extremos de un trozo de material que ofrece cierta resistencia al paso de la corriente. La tercera está flotando sobre el material, de modo que pueda tomar una sección del material resistivo.
El potenciómetro se explicará en más profundidad en el módulo 2 del curso. En este momento, lo único que necesitas saber es que, al aplicar un voltaje entre los terminales extremos del componente, al girar el ejer del potenciómetro, el terminal central mostrará un cambio en voltaje correspondiente al ángulo de giro. En cierto modo, el potenciómetro es un sensor que puede representar cambios de ángulo.
1.10.3. Ejemplo con Arduino
En Arduino, puedes conectar un potenciómetro de forma sencilla con una placa de entrenamiento. Sólo tienes que recordar que uno de los terminales extremos tiene que ir a 5V y el otro a 0V, la señal la medirás sobre el terminal central. Si no estás seguro de estar haciendo bien la conexión, prueba con un multímetro antes de conectar el circuito a Arduino.
El ejemplo más sencillo lo encontrarás en “Archivo → Ejemplos → Analog → AnalogInput”. Este ejemplo, al conectar un potenciómetro en A0, hace parpadear el led del pin 13 a diferentes frecuencias. Fíjate bien que en la transparencia hemos conectado el potenciómetro en la pata A2, es un ejercicio para que tú cambies en el programa ese parámetro a la hora de probar.
1.10.4. Nuevo comando: analogRead()
El comando analogRead(pin) leerá el valor de voltaje en el pin (entre 0V y 5V) y lo traducirá en un número entero entre 0 y 1023. Tendrás que usar una variable de tipo “int” para almacenar el valor que te proporcionará esta función.
1.10.5. Aspectos a tener en cuenta
1.      Las entradas analógicas nos dar un valor de mayor resolución que las digitales.
2.      Para poder experimentar con esta riqueza de valores, lo mejor es utilizar el puerto de comunicación para ver los valores en la pantalla del ordenador.
1.10.6. Aplicaciones educativas
Comprender como funciona un sensor analógico sencillo es fundamental para entender como los dispositivos digitales trabajan con la información que capturan del mundo físico. Un potenciómetro se podría utilizar, por ejemplo, para medir el ángulo de giro de un dispositivo, para un panel de control de una mesa de mezclas, para cambiar la velocidad de un motor, etc.

1.09 Entradas digitales.



1.09.1. ¿Qué es una entrada digital?
Una entrada digital en un microcontrolador, es un contacto (pin o terminal) en el que podemos capturar vía software si el valor del voltaje en ese punto corresponde a un voltaje bajo (0V) o alto (5V).
Los 5V a la entrada del pin se representarán con un número 1 en código. En Arduino hay un a constante pre-definida llamada HIGH que representa 1 o nivel alto a la entrada del pin.
Los 0V se representarán con un 0 en código. La constante correspondiente es LOW.
Por regla general todo aquello que esté por encima de 2V5 se considera que es un nivel alto y lo que esta por debajo es nivel bajo. Esta tolerancia permite trabajar con sistemas que no funcionen exactamente igual en voltajes.
Solemos hablar de entradas digitales cuando realmente queremos hablar de sensores digitales. Así, un botón, un sensor magnético, un sensor PIR y otros los entenemos como mecanismos de entrada digital.
1.09.2. La entrada digital más sencilla
La entrada más sencilla sería un sencillo cable que podamos conectar a un pin de entrada digital y con el conmutar los niveles alto y bajo.
1.09.3. Ejemplo con Arduino
Para probar esto con Arduino, conecta un cable al pin 5, abre el ejemplo de código “Archivo → Ejemplos → Digital → Button”. Verás que ahí se define una variable llamada buttonPin. Si quieres usarla con el cable que has conectado, tendrás que asegurarte de que su valor inicial corresponda con el número del pin del cable.
Este ejemplo utiliza el estado de la entrada para encender y apagar el led de la placa.
1.09.4. Nuevo comando: digitalRead()
El comando digitalRead(pin) es un comando que lee el valor del voltaje a la entrada de un pin de Arduino y devuelve valor alto (HIGH) o bajo (LOW) en función del voltaje que haya a la entrada del pin. Ese valor lo tendrás que almacenar en una variable si lo quieres usar en otras partes del programa.
En el ejemplo anterior, la variable buttonState almacena un valor de la lectura del pin, de modo que se pueda usar en otras declaraciones y operaciones del programa.
1.09.5. Aspectos a tener en cuenta
1.      Un cable suelto no es un buen sistema para detectar que algo está encendido o no (ver actividad sobre el botón más adelante).
2.      Arduino Uno tiene 14 entradas/salidas digitales, los pines 0 y 1 se usan además para la comunicación con el ordenador.
3.      Los pines analógicos se pueden usar como pines digitales. El pin analógico A0 es el 14 en digital y así sucesivamente.
1.09.6. Aplicaciones educativas
El hecho de que la entrada de voltaje se codifique de modo binario, ayuda a la comprensión de como funciona un ordenador por dentro.