ESTEXAV96

Variar brillo led con 3 pulsadores

Mar 26th, 2021 (edited)
380
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. int led[] = {3,5,6,9}; // Pines en donde van conectados los leds
  2.  
  3. //--- Pines en donde van conectados los pulsadores ---//
  4. #define pul0 A0
  5. #define pul1 A1
  6. #define pul2 A2
  7. //----------------------//
  8.  
  9. int pwm; //Variable que contendrá el valor del pwm
  10. int x; // Variable para selección de posición del array led
  11.  
  12. void setup() {
  13.  
  14. //--- Declaramos entradas y salidas ---//
  15.  pinMode(pul0,INPUT);
  16.  pinMode(pul1,INPUT);
  17.  pinMode(pul2,INPUT);
  18.  
  19. // En este caso como estamos utilizando un array podemos declarar los pines en donde van conectados los leds como salidas, de la siguiente manera:
  20.  for (x = 0 ;x >= 4;x++){
  21.   pinMode(led[x],OUTPUT);
  22.   Serial.println(x);
  23.  }
  24.  
  25.  
  26. x = 0; // Enceramos la variable x porque la vamos a utilizar luego en el void loop
  27. }
  28.  
  29. void loop() {
  30.  
  31.   if (digitalRead(pul0)== HIGH){ // Cada vez que presionemos el pulsador conectado al pin A0 sumamos la variable x, esta variable va a tomar los valores de las posiciones del array led que en este caso es de 4, empezando de la posición 0 a la 3. Así seleccionamos el led al cual controlaremos el brillo.
  32.     x++;
  33.     delay(1000); // Agregamos una pequeña pausa para el anti rebote
  34.      
  35.       if (x == 4){
  36.         x = 0;
  37.       }
  38.    
  39.   }
  40.  
  41.   if(digitalRead(pul1)== HIGH){ //Si presionamos el pulsador conectado al puerto A1, sumamos la variable pwm, aumentando el brillo del led seleccionado
  42.    
  43.     pwm++;
  44.    
  45.   }
  46.  
  47.   if(digitalRead(pul2)== HIGH){ //Si presionamos el pulsador conectado al puerto A2, restamos la variable pwm, disminuyendo el brillo del led seleccionado
  48.      
  49.     pwm--;
  50.    
  51.   }
  52.  
  53. //-- Las siguientes lineas de código son para limitar los valores que puede llegar a tomar la variable pwm---//
  54.  
  55.   if(pwm > 255){
  56.     pwm = 255;
  57.   }
  58.   if(pwm < 0){
  59.     pwm = 0;
  60.   }
  61. // ----------------------- //
  62.  
  63.   analogWrite(led[x],pwm); // Enviamos por el pin en donde esta conectado el led, los valores de la variable pwm. Ejemplo:
  64.  
  65. /* -- int led[] = {3,5,6,9}; // Pines en donde van conectados los leds
  66.       posiciones  {0,1,2,3}
  67.      
  68.  Si x = 1(led[1]) entonces estaremos trabajando con el led conectado en el pin 5.
  69.  Si x = 3(led[3]) entonces estaremos trabajando con el led conectado en el pin 9.
  70. */
  71. }
Add Comment
Please, Sign In to add comment