Not a member of Pastebin yet?
                        Sign Up,
                        it unlocks many cool features!                    
                - /* TITULO: Composición de colores RGB con potenciómetros a través de Bluetooth - Arduino_Maestro -
 - AUTOR:
 - MARIANO DEL CAMPO GARCÍA (@2017) --> INGENIERO TÉCNICO INDUSTRIAL ESPECIALIDAD ELECTRÓNICA
 - - FACEBOOK: https://www.facebook.com/mariano.delcampogarcia
 - - TWITTER: https://twitter.com/MarianoCampoGa
 - - CORREO: [email protected]
 - DESCRIPCIÓN DEL PROGRAMA
 - Con este programa controlamos el color de un LED RGB, a través de Bluetooth, a medida que movamos
 - el mando de los tres potenciómetros (uno para cada color). Este es el programa del Arduino Maestro,
 - donde se incluye la adquisición de los valores analógicos de los potenciómetros, su adecuada
 - transformación y por último el envío de estos valores transformados al Arduino Esclavo a través de
 - Bluetooth.
 - ESQUEMA DE CONEXION
 - +-----+
 - +----[PWR]-------------------| USB |--+
 - | +-----+ |
 - | GND/RST2 [ ][ ] |
 - | MOSI2/SCK2 [ ][ ] A5/SCL[ ] |
 - | 5V/MISO2 [ ][ ] A4/SDA[ ] |
 - | AREF[ ] |
 - | GND[ ] |
 - | [ ]N/C SCK/13[ ] |
 - | [ ]IOREF MISO/12[ ] |
 - | [ ]RST MOSI/11[ ]~|
 - | [ ]3V3 +---+ 10[ ]~|
 - | [ ]5v -| A |- 9[ ]~|
 - | [ ]GND -| R |- 8[ ] |
 - | [ ]GND -| D |- |
 - | [ ]Vin -| U |- 7[ ] | Pin RX del módulo Bluetooth HC-05
 - | -| I |- 6[ ]~| Pin TX del módulo Bluetooth HC-05
 - P2_Pot[0] | [ ]A0 -| N |- 5[ ]~|
 - P2_Pot[1] | [ ]A1 -| O |- 4[ ] |
 - P2_Pot[2] | [ ]A2 +---+ INT1/3[ ]~|
 - | [ ]A3 INT0/2[ ] |
 - | [ ]A4/SDA RST SCK MISO TX>1[ ] |
 - | [ ]A5/SCL [ ] [ ] [ ] RX<0[ ] |
 - | [ ] [ ] [ ] |
 - | UNO_R3 GND MOSI 5V ____________/
 - \_______________________/
 - NOTAS:
 - - Utilizamos un potenciómetro lineal de 10K ohms.
 - - Denomínamos a los terminales del potenciómetro como P1, P2 y P3 (donde P2 es el terminal central).
 - - P1_Pot[0], P1_Pot[1] y P1_Pot[2] conectados a VCC.
 - - P3_Pot[0], P3_Pot[1] y P3_Pot[2] conectados a GND.
 - - Alimentación del módulo Bluetooth HC-05:
 - - Pin +5V del módulo Bluetooth HC-05 --> +5V de Arduino.
 - - Pin GND del módulo Bluetooth HC-05 --> GND de Arduino.
 - */
 - #include <SoftwareSerial.h>
 - // Definimos el objeto para la comunicación serie (Bluetooth)
 - SoftwareSerial BT(6,7); // 6 RX, 7 TX.
 - const int Pot[3] = {0, 1, 2}; // Pines analógicos para los 3 potenciómetros (colores R,G y B respectivamente)
 - unsigned int RGB[3]; // Matriz para almacenar el valor del color del LED RGB (De 0 a 255)
 - int i=0; // Variable para recorrer las posiciones de las matrices RGB[3] y Pot[3]
 - unsigned int final = 200; // Variable final
 - void setup()
 - {
 - Serial.begin(9600);
 - // Comienzo de la comunicación con el módulo Bluetooth HC-05 (configurable mediante comandos AT)
 - BT.begin(38400); // Velocidad de comunicación por defecto del módulo Bluetooth HC-05
 - }
 - void loop()
 - {
 - // Si el índice i es menor de 3
 - if(i<3)
 - {
 - // Leemos el valor analógico de los 3 potenciómetros y lo dividimos entre 8 (valores entre 0 - 127)
 - RGB[i] = analogRead(Pot[i])/8;
 - // Enviamos a través de Bluetooth el valor del color RGB correspondiente
 - // Para su correcta recepción nunca debemos de enviar valores superiores a 255.
 - BT.write(RGB[i]);
 - delay(50); // Retardo para mejorar la comunicación Bluetooth
 - // Presentamos el valor RGB del LED a través del monitor serie
 - switch (i)
 - {
 - case 0:
 - Serial.print("R: ");
 - break;
 - case 1:
 - Serial.print("G: ");
 - break;
 - case 2:
 - Serial.print("B: ");
 - break;
 - }
 - Serial.println(RGB[i]*2); // Presentamos valores reales (entre 0 y 255)
 - // Aumentamos una posición en las matrices
 - i++;
 - }
 - // Si el índice i no es menor de 3
 - else
 - {
 - BT.write(final); // Enviamos a través de Bluetooth la variable que finaliza la secuencia
 - delay(50); // Retardo para mejorar la comunicación Bluetooth
 - i=0;
 - Serial.println("---------------------------");
 - }
 - }
 
Advertisement
 
                    Add Comment                
                
                        Please, Sign In to add comment