SIK Experiment Guide for the Arduino 101/Genuino 101 Board (Spanish)

This Tutorial is Retired!

This tutorial covers concepts or technologies that are no longer current. It's still here for you to read and enjoy, but may not be as useful as our newest tutorials.

Pages
Contributors: D___Run___
Favorited Favorite 0

Experimento 15: Usar la placa de detector de sonido

Introducción

Ha utilizado un par de entradas analógicas diferentes en los experimentos anteriores. En este experimento se utilizará el sonido como entrada y usará la placa detectora de sonido SparkFun. Se utilizará la salida Envelope de la placa para medir la intensidad en la sala y, a continuación, utilizara código denominado Switch Case para cambiar el color y el RGB en consecuencia.

A esto lo llamaremos "diversiómetro". Si las cosas se descontrolan, verá el color rojo.

Elementos necesarios

Necesitará los siguientes elementos:

  • 1 placa de pruebas
  • 1 placa Arduino 101 o Genuino 101
  • 3 resistencias de 100 Ω
  • 1 LED RGB de cátodo común
  • 1 placa detectora de sonido SparkFun
  • 9 cables puente

¿No tiene el SIK?

Si está realizando este experimento y no dispone del SIK, le sugerimos que use estos elementos:

SparkFun Sound Detector

SparkFun Sound Detector

SEN-12642
$11.95
20
Breadboard - Self-Adhesive (White)

Breadboard - Self-Adhesive (White)

PRT-12002
$5.50
48
Jumper Wires - Connected 6" (M/M, 20 pack)

Jumper Wires - Connected 6" (M/M, 20 pack)

PRT-12795
$2.10
2
LED - RGB Clear Common Cathode

LED - RGB Clear Common Cathode

COM-00105
$2.25
3

Resistor 100 Ohm 1/4th Watt PTH - 20 pack

COM-13761
Retired

También necesitará una placa Arduino 101 O Genuino 101.

Arduino 101

DEV-13787
9 Retired

Genuino 101

DEV-13984
Retired

Lectura sugerida

Antes de continuar con este experimento, le recomendamos que se familiarice con los conceptos en los siguientes tutoriales:

Presentación de la placa detectora de sonido

texto alternativo

La placa detectora de sonido es un pequeño y excelente sensor. Es un circuito con micrófono que le permite reducir la cantidad de cables. Una vez que conecte la placa a la alimentación (3,3 V) en el pin VCC y a tierra en el pin GND, hay tres opciones para diferentes señales que se pueden utilizar como entradas para la placa 101.

La primera señal, GATE, es una señal digital que se enciende cuando el sonido ambiente supera un determinado umbral. GATE también tiene un LED conectado al detector de sonido. Una vez que se enciende correctamente y hace ruido, verá el LED rojo encenderse cuando la intensidad sea alta y apagarse cuando el ruido sea bajo.

La segunda señal, ENVELOPE, escala la amplitud (el nivel de intensidad) a un valor de 10 bits de 0-1023. En una sala tranquila, este nivel se registra en aproximadamente 10.

La señal final es la señal de AUDIO sin procesar. En una habitación tranquila, la señal se nivela a aproximadamente 512 y producirá una curva de forma de onda basada en la frecuencia del sonido ambiente. La señal de AUDIO sin procesar puede servir para realizar tareas de procesamiento de sonido que no se incluyen en esta guía. Para obtener más información sobre los aspectos específicos de la placa detectora de sonido, compruebe nuestra guía de conexión para dicha placa.

Conexión del hardware

¿Está preparado para comenzar a conectar todo? Consulte el diagrama de cableado siguiente para ver cómo está conectado todo.

Preste especial atención a las marcas de los componentes que indican cómo colocarlo en la placa de pruebas. Los componentes polarizados solo se pueden conectar a un circuito en una sola dirección.

Diagrama de cableado del experimento

texto alternativo

¿Tiene dificultades para ver el circuito? Haga clic en el diagrama de cableado para verlo más de cerca.

Abrir el boceto

Abra el software IDE de Arduino en su ordenador. La codificación en el lenguaje de Arduino controlará el circuito. Abra el código del circuito 15; para ello, acceda a "101 SIK Guide Code" (Guía de códigos de SIK 101) que ha descargado y guardado en la carpeta "Examples" (Ejemplos) anteriormente.

Para abrir el código vaya a: File > Examples > 101 SIK Guide Code > Circuit_15 (Archivo > Ejemplos > Guía de códigos de SIK 101 > Circuito_15)

También puede copiar y pegar el siguiente código en el IDE de Arduino. Cárguelo y observe lo que ocurre.

language:cpp
/*
SparkFun Inventor's Kit
Example sketch 15

SOUND DETECTOR

Use the sound detector to measure the volume of the surrounding area and change the
color of an RGB based on that volume.

 //pin variables
const int redPin = 5;
const int greenPin = 6;
const int bluePin = 9;
const int soundPin = 0;

//variables for storing raw sound and scaled value
int sound;
int scale;

void setup()
{
 //start the serial port a@ 9600bps
 Serial.begin(9600);
 //set RGB pins to OUTPUT
 pinMode(redPin, OUTPUT);
 pinMode(greenPin, OUTPUT);
 pinMode(bluePin, OUTPUT);
}

void loop()
{
 //read and store the audio from Envelope pin
 sound = analogRead(soundPin);
 //map sound which in a quiet room a clap is 300
 //from 0 to 3 to be used with switch case
 scale = map(sound, 0, 300, 0, 3);

 //print values over the serial port for debugging
 Serial.print(sound);
 Serial.print("   ");
 Serial.println(scale);

 //switch case on scaled value
switch (scale)
{
//if 0 RGB = Blue
case 0:
  digitalWrite(redPin, LOW);
  digitalWrite(greenPin, LOW);
  digitalWrite(bluePin, HIGH);
  break;
//if 1 RGB = Green  
case 1:
  digitalWrite(redPin, LOW);
  digitalWrite(greenPin, HIGH);
  digitalWrite(bluePin, LOW);
  break;
//if 2 RGB = Yellow  
case 2:
  digitalWrite(redPin, HIGH);
  digitalWrite(greenPin, HIGH);
  digitalWrite(bluePin, LOW);
  break;
//if 3 RGB = Red
case 3:
  digitalWrite(redPin, HIGH);
  digitalWrite(greenPin, LOW);
  digitalWrite(bluePin, LOW);
  break;
//default off
default:
  digitalWrite(redPin, LOW);
  digitalWrite(greenPin, LOW);
  digitalWrite(bluePin, LOW);
  break;
 }
}

Código a tener en cuenta

scale = map(sound,0,300,0,3

Esto puede parecer una extraña asignación de valores. Esta es la configuración para usar el Switch Case y tenemos que asignar un gran conjunto de valores a un máximo de tres o cuatro opciones. La función de asignación funciona de ambas formas, pero es más práctico generar rangos de valores emparejados con un Switch Case.

switch(value)
{
 case(0):
 //do something
 break;
 case(1):
 //do something else
 break;
 default:
 //do another thing
 break;
}

Switch Case resulta muy útil si cree que va a necesitar una cadena muy larga de instrucciones if else() para hacer algo basado en un rango de valores. Switch() busca una variable y, a continuación, busca una correspondencia en una lista de casos. Si la correspondencia no está disponible, se utiliza un valor predeterminado. Cada caso tiene también su propio comando break, que permite a Arduino salir del Switch Case y continuar.

Lo que debería ver

Una vez que el código se carga y comienza el boceto, el RGB se vuelve de color azul. Si el ruido es elevado, el RGB debería cambiar de azul a verde y, a continuación, a amarillo. Si hay demasiado ruido, se volverá de color rojo. No se preocupe; no vamos a llamar a la policía.

texto alternativo

Solución de problemas

No se ilumina en amarillo ni rojo

Abra el monitor serie para realizar la depuración. Compruebe el valor de ruido bajo y, a continuación, haga mucho ruido. Ajuste la función de asignación para asegurarse de que el rango es el mismo.

Valores extraños procedentes del detector de sonido

Asegúrese de que ha conectado la placa detectora de sonido a 3,3 V y que está leyendo el pin Envelope.

Sigue sin funcionar

A veces la placa Arduino 101 se desconecta del ordenador. Intente desenchufarla y volver a enchufarla en el puerto USB.