Advertisement
Villalba2006

POST_77_Maestro

Feb 22nd, 2017
22,278
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.93 KB | None | 0 0
  1. /*  TITULO: Composición de colores RGB con potenciómetros a través de Bluetooth - Arduino_Maestro -          
  2.  
  3.     AUTOR:
  4.    
  5.     MARIANO DEL CAMPO GARCÍA (@2017) --> INGENIERO TÉCNICO INDUSTRIAL ESPECIALIDAD ELECTRÓNICA
  6.     - FACEBOOK: https://www.facebook.com/mariano.delcampogarcia
  7.     - TWITTER: https://twitter.com/MarianoCampoGa
  8.     - CORREO: marianodc83@gmail.com
  9.    
  10.    
  11.     DESCRIPCIÓN DEL PROGRAMA
  12.    
  13.     Con este programa controlamos el color de un LED RGB, a través de Bluetooth, a medida que movamos
  14.     el mando de los tres potenciómetros (uno para cada color). Este es el programa del Arduino Maestro,
  15.     donde se incluye la adquisición de los valores analógicos de los potenciómetros, su adecuada
  16.     transformación y por último el envío de estos valores transformados al Arduino Esclavo a través de
  17.     Bluetooth.
  18.    
  19.    
  20.     ESQUEMA DE CONEXION
  21.    
  22.                                             +-----+
  23.                +----[PWR]-------------------| USB |--+
  24.                |                            +-----+  |
  25.                |         GND/RST2  [ ][ ]            |
  26.                |       MOSI2/SCK2  [ ][ ]  A5/SCL[ ] |    
  27.                |          5V/MISO2 [ ][ ]  A4/SDA[ ] |    
  28.                |                             AREF[ ] |
  29.                |                              GND[ ] |
  30.                | [ ]N/C                    SCK/13[ ] |  
  31.                | [ ]IOREF                 MISO/12[ ] |  
  32.                | [ ]RST                   MOSI/11[ ]~|  
  33.                | [ ]3V3    +---+               10[ ]~|  
  34.                | [ ]5v    -| A |-               9[ ]~|  
  35.                | [ ]GND   -| R |-               8[ ] |  
  36.                | [ ]GND   -| D |-                    |
  37.                | [ ]Vin   -| U |-               7[ ] |  Pin RX del módulo Bluetooth HC-05
  38.                |          -| I |-               6[ ]~|  Pin TX del módulo Bluetooth HC-05
  39.     P2_Pot[0]  | [ ]A0    -| N |-               5[ ]~|  
  40.     P2_Pot[1]  | [ ]A1    -| O |-               4[ ] |  
  41.     P2_Pot[2]  | [ ]A2     +---+           INT1/3[ ]~|  
  42.                | [ ]A3                     INT0/2[ ] |  
  43.                | [ ]A4/SDA  RST SCK MISO     TX>1[ ] |  
  44.                | [ ]A5/SCL  [ ] [ ] [ ]      RX<0[ ] |  
  45.                |            [ ] [ ] [ ]              |
  46.                |  UNO_R3    GND MOSI 5V  ____________/
  47.                 \_______________________/
  48.  
  49.   NOTAS:
  50.    
  51.    - Utilizamos un potenciómetro lineal de 10K ohms.
  52.    - Denomínamos a los terminales del potenciómetro como P1, P2 y P3 (donde P2 es el terminal central).    
  53.      - P1_Pot[0], P1_Pot[1] y P1_Pot[2] conectados a VCC.
  54.      - P3_Pot[0], P3_Pot[1] y P3_Pot[2] conectados a GND.
  55.    - Alimentación del módulo Bluetooth HC-05:
  56.       - Pin +5V del módulo Bluetooth HC-05 --> +5V de Arduino.
  57.       - Pin GND del módulo Bluetooth HC-05 --> GND de Arduino.
  58.        
  59. */
  60.   #include <SoftwareSerial.h>
  61.  
  62.   // Definimos el objeto para la comunicación serie (Bluetooth)
  63.   SoftwareSerial BT(6,7); // 6 RX, 7 TX.
  64.  
  65.   const int Pot[3] = {0, 1, 2}; // Pines analógicos para los 3 potenciómetros (colores R,G y B respectivamente)
  66.   unsigned int RGB[3]; // Matriz para almacenar el valor del color del LED RGB (De 0 a 255)
  67.   int i=0; // Variable para recorrer las posiciones de las matrices RGB[3] y Pot[3]
  68.   unsigned int final = 200; // Variable final
  69.  
  70.   void setup()
  71.   {
  72.     Serial.begin(9600);
  73.     // Comienzo de la comunicación con el módulo Bluetooth HC-05 (configurable mediante comandos AT)
  74.     BT.begin(38400); // Velocidad de comunicación por defecto del módulo Bluetooth HC-05  
  75.   }
  76.  
  77.   void loop()
  78.   {
  79.     // Si el índice i es menor de 3  
  80.     if(i<3)
  81.     {
  82.       // Leemos el valor analógico de los 3 potenciómetros y lo dividimos entre 8 (valores entre 0 - 127)
  83.       RGB[i] = analogRead(Pot[i])/8;    
  84.      
  85.       // Enviamos a través de Bluetooth el valor del color RGB correspondiente
  86.       // Para su correcta recepción nunca debemos de enviar valores superiores a 255.
  87.       BT.write(RGB[i]);
  88.       delay(50); // Retardo para mejorar la comunicación Bluetooth
  89.      
  90.       // Presentamos el valor RGB del LED a través del monitor serie
  91.       switch (i)
  92.       {
  93.         case 0:
  94.           Serial.print("R: ");
  95.           break;
  96.         case 1:
  97.           Serial.print("G: ");
  98.           break;
  99.         case 2:
  100.           Serial.print("B: ");
  101.           break;          
  102.       }
  103.      
  104.       Serial.println(RGB[i]*2); // Presentamos valores reales (entre 0 y 255)
  105.      
  106.       // Aumentamos una posición en las matrices  
  107.       i++;
  108.     }
  109.    
  110.      // Si el índice i no es menor de 3
  111.     else
  112.     {      
  113.       BT.write(final); // Enviamos a través de Bluetooth la variable que finaliza la secuencia
  114.       delay(50); // Retardo para mejorar la comunicación Bluetooth      
  115.       i=0;  
  116.    
  117.       Serial.println("---------------------------");
  118.     }
  119.   }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement