Advertisement
Villalba2006

POST_18

Nov 24th, 2016
2,534
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.44 KB | None | 0 0
  1. /*  TITULO:  Composición de colores RGB con Arduino
  2.  
  3.     AUTOR:
  4.    
  5.     MARIANO DEL CAMPO GARCÍA (@2016) --> 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 vamos a controlar un LED RGB de un módulo RGB, aplicando pulsos PWM en sus terminales
  14.     (R, G, B) mediante 3 potenciómetros (uno para cada color), para obtener un color en concreto.
  15.     Mediante el monitor serie comprobaremos en cada momento los valores R, G y B que estas aplicando sobre
  16.     los terminales del módulo RGB para formar los colores.
  17.     Los valores de R,G y B se controlarán con los mandos de los 3 potenciómetros.    
  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[ ] |  
  38.          |          -| I |-               6[ ]~|   Terminal "R" del módilo RGB  
  39.   P2(R)  | [ ]A0    -| N |-               5[ ]~|   Terminal "G" del módilo RGB
  40.   P2(G)  | [ ]A1    -| O |-               4[ ] |    
  41.   P2(B)  | [ ]A2     +---+           INT1/3[ ]~|   Terminal "B" del módilo RGB
  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.    - El terminal "(-)" del módulo RGB debe ir conectado a GND (cátodo común).
  51.    - Utilizamos 3 potenciómetros lineales de 10K ohms.
  52.      - Potenciómetro para el color Rojo --> P(R).
  53.      - Potenciómetro para el color Verde --> P(G).
  54.      - Potenciómetro para el color Azul --> P(B).
  55.    - Denomínamos a los terminales de los 3 potenciómetros como P1, P2 y P3 (donde P2 es el central).    
  56.      - P1(R), P1(G) y P1(B) conectado a VCC.
  57.      - P3(R), P3(G) y p3(B) conectado a GND.
  58.        
  59. */
  60.  
  61.   // Configuración del LED RGB
  62.   const int LED_ROJO = 6; // Terminal "R" conectado al PIN digital 6
  63.   const int LED_VERDE = 5; // Terminal "G" conectado al PIN digital 5
  64.   const int LED_AZUL = 3; // Terminal "B" conectado al PIN digital 3
  65.  
  66.   // Configuración de los potenciómetros
  67.   const int POT_ROJO = 0; // Potenciómetro para el color rojo conectado al PIN analógico "0"
  68.   const int POT_VERDE = 1; // Potenciómetro para el color verde conectado al PIN analógico "1"
  69.   const int POT_AZUL = 2; // Potenciómetro para el color azul conectado aal PIN analógico "2"
  70.  
  71.   // Variables que acumulan la cantidad de cada color que se aplica al LED RGB
  72.   int Rojo = 0;
  73.   int Verde = 0;
  74.   int Azul = 0;
  75.  
  76.   void setup()
  77.   {
  78.     Serial.begin(9600);
  79.    
  80.     pinMode(LED_ROJO, OUTPUT); // Pin digital 6 como salida
  81.     pinMode(LED_VERDE, OUTPUT); // Pin digital 5 como salida
  82.     pinMode(LED_AZUL, OUTPUT); // Pin digital 3 como salida
  83.   }
  84.  
  85.   void loop()
  86.   {
  87.       // Leemos el valor de los potenciómetros y los acondicionamos para aplicarselos a los
  88.       // terminales R, G y B del módulo RGB
  89.       Rojo = (analogRead(POT_ROJO))/4;
  90.       analogWrite(LED_ROJO, Rojo);
  91.       Verde = (analogRead(POT_VERDE))/4;
  92.       analogWrite(LED_VERDE, Verde);
  93.       Azul = (analogRead(POT_AZUL))/4;
  94.       analogWrite(LED_AZUL, Azul);
  95.      
  96.       // Mostramos valores R,G y B a través del monitor serie
  97.       Serial.print("R: ");
  98.       Serial.print(Rojo);
  99.       Serial.print(", ");
  100.       Serial.print("G: ");
  101.       Serial.print(Verde);
  102.       Serial.print(", ");
  103.       Serial.print("B: ");
  104.       Serial.print(Azul);
  105.       Serial.print("\n");
  106.      
  107.       delay(500);
  108.   }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement