// Práctica de Semáforo Digital: Cuando se supera un primer umbral de ruido, se enciende el led amarillo. Si se supera el segundo umbral, se enciende el led rojo y pita
// Cuando el ruido es inferior a ambos umbrales, el led verde permanece encendido
const int LEDV = 11; // pin LED Verde
const int LEDA = 12; // pin LED Amarillo
const int LEDR = 13; // pin LED Rojo
const int Piezo = 9; // pin Altavoz, se enciende con PWM, tren de pulsos
const int Microfono = 0; // pin entrada analógica del Micrófono
int val = 0; // variable usada para guardar el valor devuelto por la salida analógica del micrófono (entre 0 y 1023)
void setup() {
pinMode(LEDV, OUTPUT); // LEDV es OUTPUT
pinMode(LEDA, OUTPUT); // LEDA es OUTPUT
pinMode(LEDR, OUTPUT); // LEDR es OUTPUT
pinMode(Piezo, OUTPUT); // Piezo es OUTPUT
pinMode(Microfono, INPUT); // Micrófono es INPUT
}
void loop() {
val = analogRead(0); // Lee el valor del Micrófono
if (val<=850) {
digitalWrite(LEDV, HIGH); // Enciende el LED Verde
digitalWrite(LEDA, LOW); // Apaga LED Amarillo
digitalWrite(LEDR, LOW); // Apaga LED Rojo
analogWrite(Piezo, LOW); // Apaga Piezo. Se puede escribir LOW ó 0
}
else if ((val>850) and (val<860)){
digitalWrite(LEDA, HIGH); // Enciende el LED Amarillo
digitalWrite(LEDV, LOW); // Apaga LED Verde
digitalWrite(LEDR, LOW); // Apaga LED Rojo
analogWrite(Piezo, LOW); // Apaga Piezo. Se puede escribir LOW ó 0
delay (100); // Retardo de 1 segundo
}
else{
digitalWrite(LEDR, HIGH); // Enciende el LED Rojo
analogWrite(Piezo, HIGH); // Hace pitar el Altavoz. Se puede escribir HIGH ó 1023
digitalWrite(LEDV, LOW); // Apaga LED Verde
digitalWrite(LEDA, LOW); // Apaga LED Amarillo
delay (1000); // Retardo de 1 segundo para mantener encendido el led rojo y pitando el piezo
}
}
Comments