En un artículo anterior vimos como podíamos controlar un relé con AppInventor y bluetooth. Pero en esta ocasión damos un salto y vamos a controlar la intensidad de un LED con AppInventor usando un slider en nuestra App y una comunicación bluetooth. Es decir, que antes solo controlábamos si estaba encendido o apagado y ahora podemos controlar el nivel de brillo del LED.

¿Cómo controlar el brillo de un LED?

Para controlar el brillo de un LED normalmente usamos una señal PWM, que no deja de ser una señal digital con frecuencia constante en la modificamos el ciclo de trabajo de la señal.

A nivel de programación, digamos que si queremos apagar por completo el LED, mandamos un 0 al PWM. Si queremos encenderlo a su máximo brillo mandamos un 255 y todos los valores comprendidos entre los dos anteriores corresponderán a un brillo intermedio. Si quieres aprender qué es y como funciona el PWM puedes ver el tutorial al respecto.

Para mandar el valor de PWM al LED usaremos analogWrite(LED,valor) donde LED es el pin en el que hemos conectado nuestro LED y valor es el número comprendido entre 0 y 254 que representará el brillo. Cuanto mayor sea el brillo que queramos conseguir, mayor deberá ser el valor de PWM, pero sin pasarse.

En realidad, será la aplicación del smartphone la que nos proporcione el valor de brillo que ha elegido el usuario. Arduino solo deberá recibir el valor por medio de bluetooth, convertirlo y enviarlo a la salida digital PWM.

Ojo

No te olvides de usar una resistencia entre el LED y la salida digital de Arduino para limitar la corriente que pasa por el LED.

Controlando la intensidad de LED con AppInventor

En relación a la aplicación para Android puedes ver como se crea en el vídeo que encontrarás un poco más abajo o puedes descargarte el apk en el siguiente enlace.

Descargar APK
Descargar APK

Instalando la APK

Recuerda activar orígenes desconocidos en tu Smartphone para poder instalar la aplicación.

El módulo bluetooth para Arduino

La comunicación entre el smartphone Android y Arduino se realizará mediante un modulo bluetooth conectado a la electrónica y usando el puerto serie. Los módulos bluetooth suelen tener una UART para comunicarse con el sistema que lo esté usando. Por tanto tendremos cuatro cables a conectar.

  • Alimentación, normalmente será de 3.3 voltios.
  • GND es la masa del circuito.
  • Tx en el módulo que lo deberemos conectar con el pin Rx de Arduino.
  • Rx del módulo bluetooth que lo deberemos conectar con el pin Tx de Arduino.

Código para Arduino

El código de Arduino es bastante sencillo. Como ya hemos visto antes, solo recibe valores desde el módulo bluetooth, los convierte y los envía al pin de salida digital PWM.

Debido a que la aplicación nos envía valores comprendidos entre 0 y 9, deberemos convertirlos y escalarlos a valores de 0 a 255. Para esto usaremos la función map();

int LED = 5;

void setup() {
Serial.begin(9600);
pinMode(LED, OUTPUT);
}

void loop() {
while(Serial.available() >= 0){
int valor = Serial.read() - 48;
valor = map(valor, 0, 9, 0, 255);
analogWrite(LED, valor);
delay(200);
Serial.end();
Serial.begin(9600);
}
}

Enrique Gómez

Ingeniero Electrónico Industrial y Automático, amante de la comunicación audiovisual y de la divulgación ingenieril y científica. Friki de Star Wars, cuenta más de lo que parece. Puedes saber más sobre mi y sobre mis trabajos en enrique.rinconingenieril.es
Suscribete
Notificame
guest
10 Comments
Nuevos
Antiguos Más votados
Inline Feedbacks
View all comments
erick
erick
8 días hace tiempo

Hola buenas tardes, disculpa es posible colocar mas deslizadores (como para controlar varios leds) sin que genere algún conflicto al variarlos todos a la vez?

Dulce Franco
Dulce Franco
2 años hace tiempo

Hola, disculpa, necesito ayuda, cuando subo el codigo de arduino me marca error, que podria estar mal? ya lo copie tal cual el tuyo y no me funciona
De antemano gracias. Saludos

Dulce Franco
Dulce Franco
Reply to  Enrique Gómez
2 años hace tiempo

Pues al parecer es solo de la placa pero cambie los valores qur te mencione y pude subir el codigo al arduino, no sé si pueda poner otro codigo pero que me funcione la app, es mi proyecto final y es la primera vez que uso arduino no conozco del todo los codigos

Dulce Franco
Dulce Franco
Reply to  Enrique Gómez
2 años hace tiempo

Es arduino uno y ya lo copie escribiendolo yo misma y copiando directo de la pagina y nada, volvere a intentar
Gracias

Dulce Franco
Dulce Franco
Reply to  Enrique Gómez
2 años hace tiempo

creo que ya se donde probablemente esta el error mi bluetooth es HC05, ¿lleva otro código?

martin garzon
martin garzon
2 años hace tiempo

no me funciona