Práctica: Dimmer puerto serie

por | 13 junio, 2016

Veamos cómo controlar desde el puerto serie un dispositivo como un led (pero podría ser cualquier otro dispositivo conectado a un pin de salida de Arduino como un motor, relé, etc…), mandando una serie de comandos, al igual que se hace desde el monitor serie del IDE de Arduino, se podría hacer una aplicación gráfica ejecutándose en un ordenador que mande esos comandos.

Práctica: Hacer un dimmer con un led, regulando la intensidad de brillo del LED mediante el envío de una cadena entre 0 y 100, de forma que 0 es apagado y 100 es el 100% encendido. Debe usarse un pin digital que tenga salida PWM para poder usar la salida analógica necesaria para cambiar la intensidad del LED.

Esquema de conexión:

Esquema eléctrico:

 

Funciones a utilizar:

Solución: https://github.com/jecrespo/Aprendiendo-Arduino/tree/master/Ejercicio07-dimmer

Esta simple solución es bastante imperfecta, puesto que en cad loop leemos un carácter y aplicamos el número ASCII en decimal a la salida del pin. El carácter 0 es un 48 y el el carácter z es 122. La función analogWrite() asigna al LED 0 V al pasar el entero 0 y 5V al pasar el entero 255, por lo tanto:

Carácter Valor Voltaje aplicado
0 48 0.93 V
9 57 1.11 V
z 122 2.38 V

Solución mejorada: en lugar de leer en cada loop un caracter, leer todo el buffer serie y si es un número entre 0 y 100 aplicar al led, en caso contrario sacar por el puerto serie un mensaje de error

Código: https://github.com/jecrespo/Aprendiendo-Arduino/tree/master/Ejercicio07b-dimmer_mejorado

Otra forma de leer y escribir enteros multidígitos: https://www.baldengineer.com/arduino-multi-digit-integers.html

Deja un comentario