En este tutorial enseñarnos como encender un LED con un sensor de sonido.
Componentes necesarios:
- 1× Luz Digital Piranha LED
- 1× Sensor análogo de sonido
- 1× IO Expansion Shield
- 1× Kit Intel® Edison con tarjeta Arduino Breakout.
Pin Out de conexión:
- Sensor Análogo de Sonido –> Pin análogo 0
- Luz Digital Piranha LED –> Pin digital 13
Código de programación Arduino:
int soundPin = 0; //El número de Pin del sensor de sonido
int ledPin = 13; //El número de Pin del LED
void setup() {
pinMode(ledPin, OUTPUT);
// Serial.begin(9600); //Solo como debuging
}
void loop(){
int soundState = analogRead(soundPin); //Lee el valor análogo del sensor de sonido
// Serial.println(soundState); //Muestra el valor del sensor de sonido
//Si el valor del sensor de sonido es mayor a 10, se enciende el LED,
De lo contrario, se apaga.
if (soundState > 10) {
digitalWrite(ledPin, HIGH);
delay(10000);
}else{
digitalWrite(ledPin, LOW);
}
}
Luego de cargar este sketch, prueba aplaudiendo o diciendo algo cerca del sensor de sonido, trata hasta que se encienda el LED.
Fundamentos del ejemplo (Entrada análoga – Salida digital)
Existen algunas diferencias entre los sensores análogos y digital, la señal análoga utiliza valores dentro del rango 0~1093. Las señales digitales utilizan valores discretos para representar la información (en este caso 0 y 1). Por lo que esta es una demostración de una entrada análoga y salida digital.
Revisión del código de programación Arduino:
El sensor de sonido es el dispositivo de entrada, por lo que necesitamos leer un valor análogo desde un pin especifico. La sintaxis es la siguiente:
analogRead(pin)
Esta función lee el valor de un pin análogo especifico, el Kit Intel® Edison posee un conversor análogo digital de 6 canales y 10-bits, esto quiere decir que mapeara valores de entrada entre 0 a 5 volts como valores interos entre 0 ~ 1093. Por ejemplo, el valor análogo 512 corresponde a 2.5V.
Si el valor entregado por el sensor de sonido es mayor a nuestro rango definido (en este ejemplo 10), el LED se encenderá, de lo contrario el LED se apagará.
if (soundState > 10) {
…
}else{
…
}
Quita el comentario y podrás ver el valor que arroja el sensor de sonido. Puedes modificar el rango de detección para que el LED se encienda utilizando diferentes sonidos.