05 Jarduera | Actividad 2

Zine gela bateko azken ereduko soinu tresna batek soinua kontrolatzeko esku-erreguladore bat dauka, zenbat jende dagoen arabera aldatzeko balio duena.

Gainera, 4 argidun adierazgarri ditu, LED argiak, bata bestearen segidan ipinita (pin 11, 10, 9 eta 6).

Erreguladorea mugitzen dugun einean (A0) argiak piztu/itzali egiten dira.

Erreguladorearen 1023 baliora iristean, LED argi guztiak piztuta egongo dira, aldiz, 0 balioan LED guztiak itzalita egongo dira.
El equipo de sonido de la sala de cine de último modelo tiene un regulador de mano para subir y bajar el volumen según el aforo registrado en la sesión y además cuenta con 4 indicadores luminosos, diodos LED, dispuestos uno tras otro en una línea recta (pines 11, 10, 9 y 6).

En la medida que movemos el regulador (A0) se van encendiendo/apagando los diodos LED.

Al llegar al valor 1023 del regulador, todos los LEDs estarán encendidos, y si están en el valor 0 todos los LEDs estarán apagados.






/*

-------------------------------------------------------------

4 LED-ren Pixkanako Piztea

-------------------------------------------------------------

Programa honekin LED batzuk piztuko dira. Potentziometroa mugituz, piztuta dauden LEDak aldatuko dira, konbinazio berriak sortuz.

*/

 

//Aldagaiak eta konstanteak

const int LED_ROJO = 11;

const int LED_AMBAR = 10;

const int LED_VERDE = 9;

const int LED_BLANCO = 6;

int potenciometro;

 

//Funtzio nagusia

void setup() //Lehenengo aldiz exekutatuko den atala

{

pinMode(LED_ROJO,OUTPUT); // Pin-en konfigurazioa

pinMode(LED_AMBAR,OUTPUT);

pinMode(LED_VERDE,OUTPUT);

pinMode(LED_BLANCO,OUTPUT);

}

 

// Funtzio errepikakorra

void loop()

{

            potenciometro =analogRead(A0);      //Potentziometroaren araberako tentsioa neurtzen da

//  Dakigunez, sarrera analogikoak 1024 baliotan sailkatu daitezke (0~1023). Potentziometroa 4

//  ataletan zatitu nahi dugu, hau da, 1024/4 = 256, hau da, hiruko erregela bat eginez,

//  5*256/1024 = 1.25V. Balio hau esaten digu konbinazio berriak sortuko ditugula 1.25V-ko

//  aldaketa irakurtzean.

 

// 0V eta 1.25V artean, LED gorria piztuko da

if (potenciometro < 256)

  {  

    digitalWrite(LED_ROJO,HIGH);     

    digitalWrite(LED_AMBAR,LOW);

    digitalWrite(LED_VERDE,LOW);

    digitalWrite(LED_BLANCO,LOW);

  }

else

//1.25V eta 2.5V artean, LED gorria eta horia piztuko dira

{

if  (potenciometro < 512)

  {  

  digitalWrite(LED_ROJO,HIGH);

  digitalWrite(LED_AMBAR,HIGH);

  digitalWrite(LED_VERDE,LOW);

  digitalWrite(LED_BLANCO,LOW);

}

 

 

else

//2.5V eta 3.75V artean, LED gorria, horia eta berdea piztuko dira

{   

if (potenciometro < 768)

 {

    digitalWrite(LED_ROJO,HIGH);     

    digitalWrite(LED_AMBAR,HIGH);    

    digitalWrite(LED_VERDE,HIGH);   

    digitalWrite(LED_BLANCO,LOW);

}

//3.75V eta 5V artean, LED gorria, horia, berdea eta zuria piztuko dira

else

{

   digitalWrite(LED_ROJO,HIGH);

   digitalWrite(LED_AMBAR,HIGH);    

   digitalWrite(LED_VERDE,HIGH);  

   digitalWrite(LED_BLANCO,HIGH);

 }

     }

   }

 }

/*

-------------------------------------------------------------

ENCENDIDO GRADUAL DE 4 LEDS

-------------------------------------------------------------

Programa con el cuál controlar el número de LEDs que se encenden

mediante la utilzación de un potenciómetro. En función de la

posición del potenciómetro varía la combinación de LEDs encendidos.

*/

//declarar constantes y variables

const int LED_ROJO = 11;

const int LED_AMBAR = 10;

const int LED_VERDE = 9;

const int LED_BLANCO = 6;

int potenciometro;

//Función principal

void setup() //Se ejecuta cada vez que Arduino se inicia

{

pinMode(LED_ROJO,OUTPUT); //Configurar el pin 11 en modo salida

pinMode(LED_AMBAR,OUTPUT);

pinMode(LED_VERDE,OUTPUT);

pinMode(LED_BLANCO,OUTPUT);

}

//Función cíclica

void loop() //Función que se ejecuta de manera cíclica

{

//Se lee la tensión del potenciómetro

potenciometro =analogRead(A0);

//La variable potenciometro tiene valores entre 0 y 1023; siendo

//0 0Voltios y 1023 5Voltios

//Se va a dividir la tensión leída en cuatro partes de 256 puntos

//cada uno que corresponden a 5V*256/1024 = 1.25V

//Si el valor leído está entre 0V y 1.25V se enciende el Led Rojo

if (potenciometro < 256)

{digitalWrite(LED_ROJO,HIGH);

digitalWrite(LED_AMBAR,LOW);

digitalWrite(LED_VERDE,LOW);

digitalWrite(LED_BLANCO,LOW);

}

else

//Si el valor leído está entre 1.25V y 2.5V se encienden

//los Led Rojo y Ámbar

{if (potenciometro < 512)

{digitalWrite(LED_ROJO,HIGH);

digitalWrite(LED_AMBAR,HIGH);

digitalWrite(LED_VERDE,LOW);

digitalWrite(LED_BLANCO,LOW);

}

else

//Si el valor leído está entre 2.5V y 3.75V se encienden

//los Le3.75V y 5Vd Rojo, Ámbar y Verde

{if (potenciometro < 768)

{digitalWrite(LED_ROJO,HIGH);

digitalWrite(LED_AMBAR,HIGH);

digitalWrite(LED_VERDE,HIGH);

digitalWrite(LED_BLANCO,LOW);

}

//Si el valor leído está entre 3.75V y 5V se encienden

//los Led Rojo, Ámbar, Verde y Blanco

else

{digitalWrite(LED_ROJO,HIGH);

digitalWrite(LED_AMBAR,HIGH);

digitalWrite(LED_VERDE,HIGH);

digitalWrite(LED_BLANCO,HIGH);

}

}

}

}
Comments