Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. /****** Proyecto *****//
  2. //Lab 9: Controlar desde una interfaz en Processing,
  3. //el patrón de movimiento y colores en un módulo de 8 LEDs RGB
  4. //controlado con un Arduino.
  5. //* Autor: Stephanny Alexandra González
  6.  
  7. /********** Variables **********/
  8. // se nombran las variables y sus respectivos pines
  9.  
  10. #define TOTAL 8
  11. #define MAX 8
  12.  
  13. //Declaracion de pines y de arreglos
  14. // Conectamos el LED a los pines,9,10,11 que es PWM
  15.  
  16. // salida pwm azul_color
  17. int pin_r = 9;
  18. // salida pwm  verde-color
  19. int pin_g = 10;
  20. // salida pwm  rojo- color
  21. int pin_b = 11;
  22.  
  23. // conexion de pines digitales al modulo
  24.  
  25. int led[TOTAL] = {2, 3, 4, 5, 6, 7, 8, 12};
  26.  
  27. // Inicialización
  28. int R[TOTAL]={0,0,0,0,0,0,0,0};
  29. int G[TOTAL]={0,0,0,0,0,0,0,0};
  30. int B[TOTAL]={0,0,0,0,0,0,0,0};
  31.  
  32. //Variables inicializadas
  33.  
  34. int pos = 0;
  35. int tonalidadColor= 0;
  36. int etapa = 0;
  37. String str = "";
  38.  
  39.  /********** Configuracion **********/
  40. void setup() {
  41.  
  42.  //comunicacion serial a 9600 baudios
  43.  
  44.   Serial.begin(9600);
  45.   for (int i = 0; i < TOTAL; i++) {
  46.   pinMode(led[i], OUTPUT);
  47.   digitalWrite(led[i], HIGH);
  48.   }
  49.  
  50.  
  51.     // pin de salida, rojo-color
  52.  
  53.   pinMode(pin.r, OUTPUT);
  54.   digitalWrite(pin.r, HIGH);
  55.  
  56.   // pin de salida, verde-color
  57.   pinMode(ping, OUTPUT);
  58.   digitalWrite(ping, HIGH);
  59.  
  60.   // pin de salida,azul-color
  61.   pinMode(pin-b, OUTPUT);
  62.   digitalWrite(pin-b, HIGH);
  63. }
  64.   /********** Ciclo Principal **********/
  65.  // Solo se ejecuta una vez, al iniciar o resetear el Arduino
  66. // Ciclo infinito de ejecucion
  67.  
  68. void loop() {
  69.   leerSerial();
  70.   for (int i=0; i<TOTAL; i++) {
  71.     encender(led[i], R[i], G[i], B[i]);
  72.   }
  73. }
  74.     // aqui se condiciona si el valor enviado  para
  75.     // la intensidad del pin R, G o B del modulo
  76.    
  77. //metodo necesario para leer la informacion serial
  78.  
  79. void leerSerial() {
  80.   if (Serial.available() > 0) {
  81.     str = Serial.readString();
  82.     pos = int(str[1] - '0');
  83.     etapa = int(str[2] - '0');
  84.     switch (str[0]) {
  85.       case 'r': R[pos] = etapa; break;;
  86.       case 'g': G[pos] = etapa; break;;
  87.       case 'b': B[pos] = etapa; break;; }}}
  88.      
  89. //metodo para encender los LEDs
  90. void encender (int pin_led, int r, int g, int b)
  91. {
  92.   digitalWrite(pin_led, LOW);
  93.   digitalWrite(pin_led, HIGH);
  94.   digitalWrite(pin.r, r == 0 ? HIGH : LOW);
  95.   digitalWrite(pin.r, HIGH);
  96.   digitalWrite(ping, g == 0 ? HIGH : LOW);
  97.   digitalWrite(ping, HIGH);
  98.   digitalWrite(pin-b, b == 0 ? HIGH : LOW);
  99.   digitalWrite(pin-b, HIGH);
  100.  
  101.   delay(2);
  102.  
  103.  
  104.  
  105. }
  106. /*********** Fin**************/