Aquí se explica como usar un simple piezo eléctrico para detectar el sonido, lo que nos permitirá usarlo como un sensor para golpes o “toques” (puedes pegar el piezo eléctrico a una superficie por ejemplo). Para esto podemos aprovechar la capacidad de leer señales análogas del CAD – convertidor análogo a digital. Estos conversores leen el valor de un voltaje y lo transforman en un valor entre 0 y 1024. 0 representa 0 V y 1024 representa 5 V en la entrada de uno de los 6 pines análogos.
Como sabreis , un piezo eléctrico no es otra cosa que un dispositivo electrónico que suele usarse para reproducir o detectar tonos. En este ejemplo hemos conectado el piezo eléctrico en el pin de entrada análoga número3, que puede leer un valor entre 0 V y 5 V, y no solamente HIGH o LOW (pines digitales).
Un punto importante es que los piezo eléctricos tienen polaridad, la cual, en los dispositivos comerciales, se indica normalmente con un cable rojo y uno negro para saber cómo conectarlo a la placa. Debemos conectar el negro en la tierra y el rojo en el pin de entrada. Además debemos conectar una resistencia en el rango de los Megaomhnios en paralelo al piezo; en el ejemplo lo hemos hecho directamente en los conectores hembra.
El siguiente código capturará el tono y si sobrepasa cierto límite, pintara por la consola el mensaje «Se ha sobrepasado el umbral de sonido»
Sensor de golpes.
//Sensor de sonidos
//By CRN
//@2012
public static void Main()
{
var voltagePortSonido = new SecretLabs.NETMF.Hardware.AnalogInput(Pins.GPIO_PIN_A2); //configura entrada temperatura
…..
sonido(voltagePortSonido, apiKey, feedId, out sonidoC); //captura medidad de temperatura
if (sonidoC> umbral)
{
Debug.Print(«Se ha sobrepasado el umbral de sonido»);
}
……
static void sonido(SecretLabs.NETMF.Hardware.AnalogInput vport, string apikey, string feedId, out double tt)
{
tt = 0;
for (int aa = 0; aa < 100; aa++) //100lecturas
{
int rawValue = vport.Read();
float voltage = rawValue ;// 3300; ///lectura en mv si usamos referecnica de 3.3v
if (tt < voltage)
{
tt = voltage;//toma el maximo
}
}
fuente original :http://arduino.cc/es_old/Tutoriales/SensorKnock
Debe estar conectado para enviar un comentario.