Mostrando entradas con la etiqueta Salidas digitales. Mostrar todas las entradas
Mostrando entradas con la etiqueta Salidas digitales. Mostrar todas las entradas

martes, 22 de diciembre de 2015

Control de un LED a través del Monitor Serie


En este POST os voy a explicar cómo se utiliza el puerto serie de Arduino, para comunicarnos con un PC, aunque este tipo de comunicación también es factible entre dos Arduinos, aunque en este caso ese no sea el propósito.
El IDE de Arduino, posee una herramienta llamada "Monitor Serie", esta herramienta abrirá una consola con la que podemos comunicarnos con Arduino, tanto para mandarle comandos como para recibir información. Esto es muy útil para conocer el estado de las variables de programa y saber qué es lo que realmente está pasando dentro de nuestro Arduino.
El puerto serie del Arduino Uno utiliza los pines digitales 0(RX) y 1(TX). Estos están conectados al controlador FTDI integrado en la placa, que es el que permite la traducción del formato serie TTL a USB. Estos pines no pueden ser utilizados para cualquier otro propósito mientras estamos utilizando la comunicación serie.
Para usar el puerto serie del Arduino hay varias funciones de programación que debemos de conocer. A continuación os muestro las que he considerado más importantes:
·         Serial.begin (velocidad):   Activa la comunicación serie y establece la velocidad. La velocidad de conexión (baudios o Baud Rate) es la velocidad que llegan los datos al puerto serie (normalmente se usa 9600bps).
·         Serial.available( ): Devuelve el estado del buffer del puerto serie y nos dice si hay datos dentro de este.
·         Serial.read( ): Lee un carácter del buffer (un solo byte).
·         Serial.write( ): Escribe tantos caracteres como quieras a través del puerto serie.
·         Serial.print( ): Imprime los datos al puerto serie como texto ASCII.
·         Serial.println( ): Imprime los datos al puerto serie como texto ASCII seguido de un retorno de carro (ASCII 13, o ‘\r’) y un carácter de avance de línea (ASCII 10, o ‘\n’).
·         Serial.flush( ): Vacía el buffer de entrada de datos.
·         Serial.end( ): Desactiva la comunicación serie, para que los pines 0(RX) y 1 (TX) puedan utilizarse como entradas o salidas digitales.
NOTA: Para enviar y recibir datos, Arduino utiliza el código ASCII.
Para acceder al “Monitor Serie”, una vez abierto el IDE de Arduino, nos tenemos que dirigir hacia Programa à Monitor Serie o mediante comandos abreviados teclear Ctrl+Mayús+M.
Con el programa que os muestro a continuación, vamos a ser capaces da encender y apagar un LED, cuando enviamos caracteres a través del monitor serie. Si el carácter enviado es “D” o “d” el LED conectado al pin digital número 5 se enciende, y si lo que enviamos es “I” o “i” el LED se apaga (para más información consultar los comentarios del código). 
Ventana del Monitor Serie

Lista de Materiales:
 
·         Arduino UNO Rev.3.
·         Cable USB tipo A-B.
·         LED 3mm (de cualquier color).
·         Resistencia de 220Ω.
·         Protoboard.
·         Cables de conexión.
 
 
Código del programa:



 Video:



viernes, 18 de diciembre de 2015

Pulsador con enclavamiento de estado


Los pulsadores son elementos muy utilizados para mandar señales “todo” o “nada” a dispositivos electrónicos que trabajan con lógica TTL (lógica transistor a transistor), como es el caso de los pines digitales de Arduino.  
Detalle de un Pulsador

 
Si realizamos una conexión PULL-DOWN entre el pulsador y una entrada digital cualquiera de Arduino, cuando activemos el pulsador, Arduino estará recibiendo +5V, que los codifica como estado alto (HIGH o “1” lógico), mientras que si el pulsador permanece en reposo, Arduino estará recibiendo un estado bajo (LOW o “0” lógico).
Conexión PULL_DOWN


Mediante programación vamos a ser capaces de implementar un pulsador con enclavamiento de estado, para que cuando activemos el pulsador, una salida digital de Arduino se ponga a “nivel alto” si se encontraba a “nivel bajo” y viceversa, es decir, seremos capaces de almacenar el estado de la salida digital para que esta cambie de “HIGH” a “LOW” o de “LOW” a “HIGH” cada vez que activemos el pulsador.
En la salida digital de Arduino con la que estemos trabajando, conectaremos un LED para poder comprobar que de verdad está cambiando el estado de la salida cada vez que activamos el pulsador (ON/OFF), aunque podríamos utilizar este tipo de configuración para “activar” o “desactivar” multitud de dispositivos electrónicos como relés, buzzers, motores, etc… 

Lista de Materiales:

·         Arduino UNO Rev.3.
·         Cable USB tipo A-B.
·         LED 5mm (de cualquier color).
·         Pulsador.
·         Resistencias de 10KΩ y 220Ω.
·         Protoboard.
·         Cables de conexión.


Código del programa:
 

 
 
 
Video:
 

 
 



martes, 15 de diciembre de 2015

Control del brillo de un LED con un potenciómetro


Hoy os voy a mostrar cómo controlar la intensidad de brillo de un LED, conectado a una salida digital con PWM, utilizando para ello un potenciómetro y una entrada analógica de Arduino. Para que os hagáis una idea, un potenciómetro no es más ni menos que una resistencia variable formada por tres terminales, dos fijos (los de los extremos y uno móvil (el central), gracias a esto, indirectamente se puede controlar la intensidad de corriente que fluye por un circuito si se conecta en paralelo, o la diferencia de potencial al conectarlo en serie. Normalmente, los potenciómetros se utilizan en circuitos de poca corriente. Para circuitos de corrientes mayores, se utilizan los reóstatos que pueden disipar más potencias, aunque este último no es nuestro caso.
Diagrama de un potenciómetro


Para el control del brillo vamos a tener que utilizar una entrada analógica (A0) y una salida digital que tenga PWM (D0). Partimos de la premisa de que a la entrada digital le va a llegar un valor entre 0-5V según la posición que tenga el mando del potenciómetro. Arduino gracias a un convertidor A/D de 10 bits de resolución del que dispone, convierte el valor de tensión de entrada en un valor numérico entre 0 -1023, en definitiva al leer el pin analógico se obtiene un número.
Ese número lo tenemos que llevar a la salida digital dotada de PWM (Modulación de anchura de pulsos,) para que el convertidor D/A de 8 bits que también posee Arduino lo transforme en un valor de tensión aplicable en el circuito. Al tener menos resolución el convertidor D/A tenemos que dividir el número obtenido en la entrada entre 4 para que se ajuste a los valores con los que trabaja este convertidor (0-255) para poder obtener nuevamente valores de tensión entre 0-5V. En la siguiente imagen se muestra un sinóptico de como Arduino realiza esta conversión.

Sinóptico de conversión A/D à D/A

 
Hay que tener en cuenta que al LED no le pueden llegar los 5V que ofrece Arduino en su salida, puesto que se quemaría, por lo que tenemos que limitar la corriente que lo atraviesa mediante una resistencia de 220Ω, con lo que en sus extremos tendrá como máximo unos 2.2V.


Lista de Materiales:

·         Arduino UNO Rev.3.
·         Cable USB tipo A-B.
·         LED 5mm (de cualquier color).
·         Potenciómetro lineal de 10KΩ.
·         Resistencia de 220Ω.
·         Protoboard.
·         Cables de conexión.
 


Código del programa:




Video: