Advertisement
Villalba2006

POST_77_Esclavo

Feb 22nd, 2017
21,874
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.86 KB | None | 0 0
  1. /*  TITULO: Composición de colores RGB con potenciómetros a través de Bluetooth - Arduino_Esclavo -
  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. Este es el programa del Arduino Esclavo, donde se incluye
  15.     la adquisición de los 3 valores RGB a través de Bluetooth y su aplicación al LED RGB.
  16.    
  17.    
  18.     ESQUEMA DE CONEXION
  19.    
  20.                                       +-----+
  21.          +----[PWR]-------------------| USB |--+
  22.          |                            +-----+  |
  23.          |         GND/RST2  [ ][ ]            |
  24.          |       MOSI2/SCK2  [ ][ ]  A5/SCL[ ] |    
  25.          |          5V/MISO2 [ ][ ]  A4/SDA[ ] |    
  26.          |                             AREF[ ] |
  27.          |                              GND[ ] |
  28.          | [ ]N/C                    SCK/13[ ] |  
  29.          | [ ]IOREF                 MISO/12[ ] |  
  30.          | [ ]RST                   MOSI/11[ ]~|   Pin "B" del módulo LED RGB
  31.          | [ ]3V3    +---+               10[ ]~|   Pin "G" del módulo LED RGB
  32.          | [ ]5v    -| A |-               9[ ]~|   Pin "R" del módulo LED RGB
  33.          | [ ]GND   -| R |-               8[ ] |  
  34.          | [ ]GND   -| D |-                    |
  35.          | [ ]Vin   -| U |-               7[ ] |   Pin RX del módulo Bluetooth HC-06
  36.          |          -| I |-               6[ ]~|   Pin TX del módulo Bluetooth HC-06
  37.          | [ ]A0    -| N |-               5[ ]~|  
  38.          | [ ]A1    -| O |-               4[ ] |  
  39.          | [ ]A2     +---+           INT1/3[ ]~|  
  40.          | [ ]A3                     INT0/2[ ] |  
  41.          | [ ]A4/SDA  RST SCK MISO     TX>1[ ] |  
  42.          | [ ]A5/SCL  [ ] [ ] [ ]      RX<0[ ] |  
  43.          |            [ ] [ ] [ ]              |
  44.          |  UNO_R3    GND MOSI 5V  ____________/
  45.           \_______________________/
  46.  
  47.   NOTAS:
  48.    - Pin "GND" del módulo LED RGB a "GND" de Arduino
  49.    - Alimentación del módulo Bluetooth HC-06:
  50.        - Pin +5V del módulo Bluetooth HC-06 --> +5V de Arduino.
  51.        - Pin GND del módulo Bluetooth HC-06 --> GND de Arduino.
  52. */
  53.  
  54.  
  55.   #include <SoftwareSerial.h>
  56.  
  57.   // Definimos el objeto para la comunicación serie (Bluetooth)
  58.   SoftwareSerial BT(6,7); // 6 RX, 7 TX.
  59.  
  60.   int RGB[3] = {9, 10, 11}; // Pines digitales para el módulo LED RGB
  61.   unsigned int Valor; // Variable que almacena el valor RGB recibido vía Bluetooth
  62.   int i=0; // Variable para recorrer las posiciones de la matriz RGB[3]
  63.  
  64.   void setup()
  65.   {  
  66.     // Comienzo de la comunicación con el módulo Bluetooth HC-06 (configurable mediante comandos AT)
  67.     BT.begin(38400); // Velocidad de comunicación por defecto del módulo Bluetooth HC-06
  68.    
  69.     for(int j=0; j<3; j++)
  70.     {
  71.       pinMode(RGB[j], OUTPUT);  // Pines digitales como SALIDAS
  72.     }
  73.   }  
  74.  
  75.  
  76.   void loop()
  77.   {
  78.     if(BT.available()) // Si hay datos procedentes de la comunicación Bluetooth dentro del buffer...
  79.     {
  80.       // Lee un entero y lo almacena en la variable valor (nunca superior a 255)
  81.       Valor = BT.read();  
  82.      
  83.       // Si no se ha recibido el valor final de la serie, que es 200.
  84.       if(Valor!=200)
  85.       {
  86.         analogWrite(RGB[i], Valor*2); // Manda el valor del Brillo (PWM) al LED correspondiente
  87.        
  88.         // Aumentamos una posición en la matriz  
  89.         i++;
  90.       }
  91.      
  92.       // Si se ha recibido el valor final de la serie
  93.       else
  94.       {
  95.         // Se inicializa la posición en la matriz
  96.         i=0;
  97.       }    
  98.     }    
  99.   }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement