Advertisement
Deimer_096

lb9

Jun 18th, 2018
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.62 KB | None | 0 0
  1. /*
  2. ---------------------------------------------
  3. LED RGB + Potenciómetro
  4. ---------------------------------------------
  5.  
  6. Programa que varia el color del LED según
  7. el valor obtenido por unos potenciómetros.
  8.  
  9. */
  10.  
  11. //--------------------------------------------------
  12. //Declara puertos de entradas y salidas y variables
  13. //--------------------------------------------------
  14. int ledRojo =9; //Declara Pin LED Rojo
  15. int ledVerde=5; //Declara Pin LED Verde
  16. int ledAzul=6; //Declara Pin LED Azul
  17.  
  18. int pinPot0 = A0; //Declara Pin Potenciometro Rojo
  19. int pinPot2 = A2; //Declara Pin Potenciometro Azul
  20. int pinPot5 = A5; //Declara Pin Potenciometro Verde
  21.  
  22. int valorsensor0 = 0; //Valores analogicos de la salida del potenciometro
  23. int valorsensor2 = 0; // || || || ||
  24. int valorsensor5 = 0; // || || || ||
  25.  
  26. float divisionR;
  27. float divisionV;
  28. float divisionA;
  29.  
  30. //------------------------------------
  31. //Funcion principal
  32. //------------------------------------
  33. void setup() // Se ejecuta cada vez que el Arduino se inicia
  34. {
  35. pinMode(ledRojo,OUTPUT); //El LED Rojo como una salida
  36. pinMode(ledVerde,OUTPUT); //El LED Verde como una salida
  37. pinMode(ledAzul,OUTPUT); //El LED Azul como una salida
  38. Serial.begin(9600);
  39.  
  40. }
  41.  
  42. //------------------------------------
  43. //Funcion ciclicla
  44. //------------------------------------
  45. void loop() {
  46.  
  47. // Llamada a la función Color que recibe
  48. // 1er posicion: Intensidad Rojo
  49. // 2da posición: Intensidad Verde
  50. // 3ra posición: Intensidad Azul
  51.  
  52. float Constante = (float) 255 / 1023; //Divide el máximo valor de color entre el máximo valor del potenciómetro
  53.  
  54. valorsensor0 = analogRead(pinPot0);
  55. valorsensor2 = analogRead(pinPot2);
  56. valorsensor5 = analogRead(pinPot5);
  57.  
  58. divisionR = Constante * valorsensor0;
  59. divisionV = Constante * valorsensor5;
  60. divisionA = Constante * valorsensor2;
  61.  
  62. color(divisionR,divisionV,divisionA); // Carga un valor para (ROJO,VERDE,AZUL)
  63. //segun el valor de tres potenciómetros.
  64.  
  65. }
  66.  
  67. //------------------------------------
  68. //Funcion color
  69. //------------------------------------
  70.  
  71. void color(int rojo, int verde, int azul){
  72.  
  73. //ROJO. Le resta al total (255) el valor obtenido de los potenciometros
  74. analogWrite(ledRojo, 255-rojo);
  75.  
  76. //VERDE. Le resta al total (255) el valor obtenido de los potenciometros
  77. analogWrite(ledVerde, 255-verde);
  78.  
  79. //AZUL. Le resta al total (255) el valor obtenido de los potenciometros
  80. analogWrite(ledAzul, 255-azul);
  81. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement