jueves, 16 de mayo de 2013

ARDUINO 002: SONIDO CONTROLADO POR POTENCIOMETRO


     El Arduino uno nos permite hacer multitud de cosas, tan solo variando un par de variables a la hora de hacer la programación. En este ejercicio, que se le podría denominar generando sonido con un potenciómetro, lo único que necesitaríamos sería el Arduino uno junto con su shield ya que en la shield trae incorporado el buzzer (generador de sonido) y el dicho potenciómetro. La idea de este ejercicio es generar diversos tonos en el buzzer a partir del estado analógico del potenciómetro. Más adelante explicaré como es el funcionamiento del pequeño programa hecho.
    En caso de no tener el shield podemos hacer la siguiente conexión con un potenciómetro y un buzzer: 


    El programa que hace funcionar este esquema es el siguiente:


int buzzer = 9;
int tono = 0;    

void setup() 
{
 pinMode(buzzer,OUTPUT);
 pinMode(tono, INPUT);
}

void loop() 
{            
  int sensor = analogRead(tono); 
  int frecuencia = map(sensor,0,1023,100,5000);
  int duracion = 250;
  tone(buzzer, frecuencia, duracion);
  delay(100);
} 
 
    Primero declaramos las dos variables que usaremos, como lo son el “buzzer” y “tono”. Buzzer lo igualamos a 2 ya que en nuestro Arduino tiene ese pin y Tono lo igualamos a 0 para declarar el pin del potenciómetro. La función principal sería void setup() que se ha de ejecutar cada vez que el Arduino se inicia, aunque no la utilizamos debemos ponerla siempre sino daría un error de programación. void loop() se declara como la función cíclica, que es como si fuese un bucle, estará ahí todo el rato mientras el Arduino este siendo alimentado. int sensor = analogRead(tono) es la variable donde se guardara el valor del potenciómetro.
  int frecuencia = map(sensor,0,1023,100,5000) es la variable donde se escala la frecuencia de 100 a 5000Hz y dependiendo del valor de la frecuencia que tengamos sacara diversos sonidos. int duracion = 250 variable para guardar el tiempo deseado en ms. Por último, la función tone, que tiene 3 posiciones diferentes, la primera para el pin del buzzer, la segunda para la frecuencia deseada en Hz y la tercera para la duración del tono. tone(buzzer, frecuencia, duracion).


Autor: Alex Criado (G1E)

No hay comentarios:

Publicar un comentario