valentin75miguelsa72
Published © CC BY

Semáforo de ruido

El sistema se comporta como un semáforo frente al ruido. Según el nivel de ruido se encenderá el LED rojo, amarillo o verde.

BeginnerFull instructions provided6,953
Semáforo de ruido

Things used in this project

Hardware components

5 mm LED: Red
5 mm LED: Red
×1
5 mm LED: Green
5 mm LED: Green
×1
5 mm LED: Yellow
5 mm LED: Yellow
×1
Resistor 220 ohm
Resistor 220 ohm
×3
Arduino 101
Arduino 101
×1
SparkFun Sound Detector (with Headers)
SparkFun Sound Detector (with Headers)
×1
Buzzer, Piezo
Buzzer, Piezo
×1

Story

Read more

Schematics

Sensor ruido

Code

Semáforo de ruido

Arduino
// 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
  }
}

Credits

valentin75

valentin75

0 projects • 0 followers
miguelsa72

miguelsa72

0 projects • 0 followers

Comments