Este tutorial te guiará paso a paso a través del proceso de crear un sistema para controlar un LED RGB mediante Bluetooth, utilizando la plataforma de desarrollo visual App Inventor. App Inventor es una herramienta de desarrollo de aplicaciones móviles que permite a los usuarios crear aplicaciones Android de manera intuitiva y sin necesidad de conocimientos avanzados de programación.
Tal vez pueda interesarte proyectos en arduino, pic, robótica, telecomunicaciones, suscribete en http://www.youtube.com/user/carlosvolt?sub_confirmation=1 mucho videos con código fuentes completos y diagramas
En este tutorial, aprenderás a diseñar una aplicación móvil simple en App Inventor que se conecta a un módulo Bluetooth y envía comandos para controlar un LED RGB. Los pasos incluirán la creación de la interfaz gráfica de la aplicación, la configuración de la conexión Bluetooth, la programación de eventos y la generación de comandos para controlar los colores del LED.
Además, se proporcionarán detalles sobre el hardware necesario, como el módulo Bluetooth y el circuito para controlar el LED RGB. El tutorial también explicará cómo establecer la comunicación entre la aplicación móvil y el hardware a través de Bluetooth.
Componentes electrónicos
Arduino mini pro
El Arduino Pro Mini es una placa de microcontrolador basada en el ATmega328 .
Tiene 14 pines de entrada / salida digital (de los cuales 6 se pueden usar como salidas PWM), 6 entradas analógicas, un resonador integrado, un botón de reinicio y orificios para montar encabezados de pines. Se puede conectar un encabezado de seis pines a un cable FTDI o una placa de conexión Sparkfun para proporcionar alimentación USB y comunicación a la placa.
El Arduino Pro Mini está diseñado para su instalación semipermanente en objetos o exposiciones. La placa viene sin encabezados pre montados, lo que permite el uso de varios tipos de conectores o la soldadura directa de cables. El diseño del pin es compatible con el Arduino Mini.
Hay dos versiones del Pro Mini. Uno corre a 3.3V y 8 MHz, el otro a 5V y 16 MHz.
Microcontrolador | ATmega328 * |
Fuente de alimentación de la placa | 3,35-12 V (modelo de 3,3 V) o 5-12 V (modelo de 5 V) |
Voltaje de funcionamiento del circuito | 3.3V o 5V (dependiendo del modelo) |
Pines de E / S digitales | 14 |
Pines PWM | 6 6 |
UART | 1 |
SPI | 1 |
I2C | 1 |
Pines de entrada analógica | 6 6 |
Interrupciones externas | 2 |
Corriente CC por pin de E / S | 40 mA |
Memoria flash | 32 KB de los cuales 2 KB utilizados por el gestor de arranque * |
SRAM | 2 KB * |
EEPROM | 1 KB * |
Velocidad de reloj | 8 MHz (versiones de 3.3V) o 16 MHz (versiones de 5V) |
UN Módulos hc-05
- Funciona como dispositivo maestro y esclavo bluetooth
- Configurable mediante comandos AT
- Bluetooth V2.0+EDR
- Frecuencia de operación: 2.4 GHz Banda ISM
- Modulación: GFSK (Gaussian Frequency Shift Keying)
- Potencia de transmisión: <=4dBm, Class 2
- Sensibilidad: <=-84dBm @ 0.1% BER
- Seguridad: Autenticación y encriptación
- Perfiles Bluetooth: Puerto serie bluetooth.
- Distancia de hasta 10 metros en condiciones óptimas
- Voltaje de Operación: 3.6 VDC a 6 VDC
- Consumo Corriente: 30 mA a 50mA
- Chip: BC417143
- Versión o firmware: 3.0-20170609
- Baudios por defecto: 38400
- Baudios soportados: 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200.
- Interfaz: Serial TTL
- Antena: Integrada en el PCB
- Seguridad: Autenticación y encriptación (Contraseña por defecto: 0000 o 1234)
- Temperatura de trabajo (Max): 75°C
- Temperatura de trabajo (Min): -20°C
- Dimensiones: 4.4 x 1.6 x 0.7 cm
Pines hembra
Zócalo para arduino nano
PCB
Descargar archivo gerber –> pcb
Un led RGB Cátodo Común
Cables Dupont
Código Fuente
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
#define caracterMax 12 char mensajes[caracterMax];// almacena tu mensaje char lecturaCaracteres; // lee cada carácter byte inicio = 0; // define la posición en tu arreglo int pinRojo9 = 9; // Pin Rojo = D9 int pinVerde8 = 8; // Pin Verde = D8 int pinAzul7 = 7; // Pin Azul = D7 String valorRojo; // Valor Rojo = D9 String valorVerde; // Valor Verde = D8 String valorAzul; // Valor Azul = D7 int i; int bandera = 0; char colorActual; void setup() { pinMode(pinRojo9,OUTPUT); pinMode(pinAzul7,OUTPUT); pinMode(pinVerde8, OUTPUT); // inicializa la comunicación serial a 9600 bits por segundo: Serial.begin(9600); } void loop() { // mientras está leyendo el mensaje while(Serial.available() > 0){ bandera = 0; // el mensaje puede tener hasta 12 caracteres if(inicio < (caracterMax-1)){ lecturaCaracteres = Serial.read(); // Lee un carácter mensajes[inicio] = lecturaCaracteres;// Almacena el carácter en el arreglo de mensajes if(lecturaCaracteres=='R'){ colorActual = 'R'; valorRojo = ""; } else if(lecturaCaracteres=='G'){ colorActual = 'G'; valorVerde = ""; } else if(lecturaCaracteres=='B'){ colorActual = 'B'; valorAzul = ""; } if(colorActual == 'R' && lecturaCaracteres!='R'){ valorRojo += lecturaCaracteres; } else if(colorActual == 'G' && lecturaCaracteres!='G'){ valorVerde += lecturaCaracteres; } else if(colorActual == 'B' && lecturaCaracteres!='B'){ valorAzul += lecturaCaracteres; } inicio++; // Incrementa la posición mensajes[inicio] = '\0'; // Elimina la última posición } } if(bandera == 0){ analogWrite(pinRojo9, valorRojo.toInt()); analogWrite(pinVerde8, valorVerde.toInt()); analogWrite(pinAzul7, valorAzul.toInt()); Serial.println(mensajes); bandera=1; for(i=0; i<12; i++){ mensajes[i] = '\0'; } // reinicia el índice inicio=0; } } |
PROYECTO RECOMENDADO