Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. //LAB 4
  2. // ANDRES SATIZABAL
  3.  
  4. /*
  5. ---------------------------------------------
  6. LED RGB + Potenciómetro
  7. ---------------------------------------------
  8.  
  9. Programa que varia el color del LED según
  10. el valor obtenido por unos potenciómetros.
  11.  
  12. */
  13.  
  14. //--------------------------------------------------
  15. //Declara puertos de entradas y salidas y variables
  16. //--------------------------------------------------
  17. int ledRojo = 9; //Declara Pin LED Rojo
  18. int ledVerde=10; //Declara Pin LED Verde
  19. int ledAzul=11; //Declara Pin LED Azul
  20.  
  21. int pinPot0 = A0; //Declara Pin Potenciometro Rojo
  22. int pinPot1 = A1; //Declara Pin Potenciometro Verde
  23. int pinPot2 = A2; //Declara Pin Potenciometro Azul
  24.  
  25. int valorsensor0 = 0; //Valores analogicos de la salida del potenciometro
  26. int valorsensor1 = 0; // || || || ||
  27. int valorsensor2 = 0; // || || || ||
  28.  
  29. float divisionR;
  30. float divisionV;
  31. float divisionA;
  32.  
  33. //------------------------------------
  34. //Funcion principal
  35. //------------------------------------
  36. void setup() // Se ejecuta cada vez que el Arduino se inicia
  37. {
  38. pinMode(ledRojo,OUTPUT); //El LED Rojo como una salida
  39. pinMode(ledVerde,OUTPUT); //El LED Verde como una salida
  40. pinMode(ledAzul,OUTPUT); //El LED Azul como una salida
  41. Serial.begin(9600);
  42.  
  43. }
  44.  
  45. //------------------------------------
  46. //Funcion ciclicla
  47. //------------------------------------
  48. void loop() {
  49.  
  50. // Llamada a la función Color que recibe
  51. // 1er posicion: Intensidad Rojo
  52. // 2da posición: Intensidad Verde
  53. // 3ra posición: Intensidad Azul
  54.  
  55. float Constante = (float) 255 / 1023; //Divide el máximo valor de color entre el máximo valor del potenciómetro
  56.  
  57. valorsensor0 = analogRead(pinPot0);
  58. valorsensor1 = analogRead(pinPot1);
  59. valorsensor2 = analogRead(pinPot2);
  60.  
  61. divisionR = Constante * valorsensor0;
  62. divisionV = Constante * valorsensor1;
  63. divisionA = Constante * valorsensor2;
  64.  
  65. color(divisionR,divisionV,divisionA); // Carga un valor para (ROJO,VERDE,AZUL)
  66. //segun el valor de tres potenciómetros.
  67.  
  68. }
  69.  
  70. //------------------------------------
  71. //Funcion color
  72. //------------------------------------
  73.  
  74. void color(int rojo, int verde, int azul){
  75.  
  76. //ROJO. Le resta al total (255) el valor obtenido de los potenciometros
  77. analogWrite(ledRojo, 255-rojo);
  78.  
  79. //VERDE. Le resta al total (255) el valor obtenido de los potenciometros
  80. analogWrite(ledVerde, 255-verde);
  81.  
  82. //AZUL. Le resta al total (255) el valor obtenido de los potenciometros
  83. analogWrite(ledAzul, 255-azul);
  84. }