Inicio >> Aprende >> Arduino >> Aprende >> Arduino Digital: Seguidor de tono usando la función tone()

Arduino Digital: Seguidor de tono usando la función tone()

Este ejemplo muestra como usar el comando tone() para generar un tono que sigue el valor de una entrada analógica.

 

Hardware Requerido

 

  • Tarjeta Arduino
  • Speaker
  • Fotoresistencia
  • Resistencia (4.7k ohm)
  • Resistencia (100 ohm)
  • Protoboard

 

Circuito

 

 

Conectar una de las patas de la fotoresistencia a 5 voltios y conectar la otra pata a la resistencia de 4.7K. Por último, la pata libre de la resistencia se conecta a tierra.

Conectar uno de los terminales del speaker al pin GND (tierra). Seguidamente conectar el pin 9 la resistencia de 100 ohms y desde la otra pata de la resistencia al otro terminal del speaker.


 

Esquemático

 

 

 

Código: 

/*
 Seguidor de tono
 Reproduce un tono que cambia basado en los cambios de una entrada analogica

El código para este ejemplo es very simple. Solo se toma la entrada analogica y ubica sus valores en un rango de tonos audibles. Los seres humanos pueden escuchar de 20 - 20 000 Hz, pero de 120-1500, por lo general, funciona bastante bien para este ejemplo.
  */


void setup() {
  // inicializa la comunicacion serial
  Serial.begin(9600);
}

void loop() {
  // lectura del sensor
  int sensorReading = analogRead(A0);
  // muestra la lectura del sensor para conocer el rango
  Serial.println(sensorReading);
  // ubica la entrada analogica en un rango (en este caso, 400 - 1000)
  // para la salida del tono en un rango (120 - 1500Hz)
  int thisPitch = map(sensorReading, 400, 1000, 120, 1500);

  // reproduce el tono
  tone(9, thisPitch, 10);
  delay(1);        // retraso entre lectura y lectura, para la estabilidad
}

Fuentes: