Publicado por el 20 febrero, 2016 9 comentarios
Dificultad mediaComplejidad media
CC BY-SA 4.0

En un artículo anterior vimos como podíamos controlar un relé con AppInventor y bluetooth, pero en esta ocasión vamos a controlar la intensidad de 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.

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 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. 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. 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. Recuerda activar orígenes desconocidos en tu Smartphone para poder instalar la aplicación. La comunicación entre el smartphone android y Arduino se realizará mediante un modeulo bluetooth conectado a la electrónica mediante un puerto serie. Los módulos bluetooth suelen tener una UART para comunicarse con el sistema que se 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.
Descargar APK

Descargar APK

        El código de Arduino es bastante sencillo. Como ya hemos dicho 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);
    }
}
 
Sobre el autor
Enrique Gómez
Amante de la ingeniería electrónica, de la comunicación audiovisual y de la divulgación ingenieril y científica. Friki de Star Wars desde el principio. Puedes saber más sobre mi y sobre mis trabajos en enrique.rinconingenieril.es
Artículos relacionados
Deja un comentario