Diferència entre revisions de la pàgina «Theremin»

De Wiket
Salta a la navegació Salta a la cerca
Línia 27: Línia 27:
 
conectamos el extremo Vcc del sensor al pin de 5V del Arduino, el extremo Trig al pin 9, el extremo Echo al pin 8 y por ultimo el extremo GND del sensor al GND del Arduino.
 
conectamos el extremo Vcc del sensor al pin de 5V del Arduino, el extremo Trig al pin 9, el extremo Echo al pin 8 y por ultimo el extremo GND del sensor al GND del Arduino.
  
<gallery>
+
 
[[File:Theremin esquema.jpg|thumb|theremin esquema]]
 
[[File:Theremin completo.jpg|thumb|theremin esquema]]
 
[[File:Theremin buzzer.jpg|thumb|theremin esquema]]
 
[[File:Theremin sensor.jpg|thumb|theremin esquema]]
 
</gallery>
 
  
 
[[Fitxer:Theremin esquema.jpg|theremin esquema]]
 
[[Fitxer:Theremin esquema.jpg|theremin esquema]]

Revisió del 11:43, 26 maig 2016

Introducción

Consiste en conectar a [[1]Arduino] un [[2]sensor de proximidad] que transmite un ultrasonido, con objetivo de conseguir diferentes notas musicales que conseguimos por el tiempo que transcurre entre el envío y la recepción del ultrasonido.


Material Necesario

Para elaborar el proyecto, necesitamos:

- [[3]placa de Arduino]

- Placa Protoboard (opcional)

- [4]Sensor de proximidad] (modelo HC-SR04)

- [[5]Zumbador o Buzzer]

Objetivos del proyecto

Aprovechando que la velocidad del ultrasonido del sensor de proximidad en el aire es de valor 340 m/s, o 0,034 cm/microseg. Para calcular la distancia, resolveremos v=d/t despejamos d=v·t, siendo v la constante anteriormente citada y t el valor devuelto por el sensor a la placa Arduino. También habrá que dividir el resultado entre 2 dado que el tiempo recibido es el tiempo de ida y vuelta.

Conexion

Conectamos el zumbador a la placa protoboard de forma vertical. Después conectamos dos cables al lado de cada pata del zumbador (tienen que estar a la derecha o izquierda, no arriba o abajo), un extremo al Arduino en el pin del tierra (gnd) y otro en uno de los pins digitales de salida o entrada (pin 12 en nuestro caso).

Por otro lado Conectamos el sensor de proximidad al Arduino de la siguiente manera:
conectamos el extremo Vcc del sensor al pin de 5V del Arduino, el extremo Trig al pin 9, el extremo Echo al pin 8 y por ultimo el extremo GND del sensor al GND del Arduino.


theremin esquema theremin completo theremin buzzer theremin sensor

Código

/* En las sigueinets linias, creamos las variables que determinaran la distancia, tiempo, el lugar donde conectamos el pincho, numero de notas y sus frequencias*/
long distancia;
long tiempo;
int posiciondelpincho = 12;
int tonos = 8;
int notasmusicales[] = {261, 294, 329, 349, 392, 440, 493, 523};
//                   mid C   D   E    F    G    A    B    C

void setup(){ 
  Serial.begin(9600);
  pinMode(9, OUTPUT); /*Indicamos que el pin numero 9 es de salida*/
  pinMode(8, INPUT); /*Indicamos que el pin 8 es de entrada*/
}

void loop(){
  digitalWrite(9,LOW); /* Por cuestión de estabilización del sensor*/
  delayMicroseconds(5);
  digitalWrite(9, HIGH); /* envío del pulso ultrasónico*/
  delayMicroseconds(10);
  tiempo=pulseIn(8, HIGH); /* Mide el tiempo que tarda el sensor a recibir el el sonido enviado anteriormente, segun ese tiempo se le aplicara una nota musical o 
   la otra*/
  distancia= int(0.017*tiempo); /*Calculos la distancia respecto el tiempo, cogiendo la valocidad del sonido*/
  Serial.print("Distancia ");
  Serial.print(distancia);
  Serial.println(" cm");
  delay(100);
  /*segun la distancia el buzzer reproduce una nota*/
  if (distancia>5 && distancia<10)
  {
    notasmusicales(posiciondelpincho, notasmusicales[0]);
    delay(500);
  }
  if (distancia>10 && distancia<15)
  {
    notasmusicales(posiciondelpincho, notasmusicales[1]);
    delay(500);
  }
  if (distancia>15 && distancia<20)
  {
    notasmusicales(posiciondelpincho, notasmusicales[2]);
    delay(500);
  }
  if (distancia>20 && distancia<25)
  {
    notasmusicales(posiciondelpincho, notasmusicales[3]);
    delay(500);
  }
  if (distancia>25 && distancia<30)
  {
    notasmusicales(posiciondelpincho, notasmusicales[4]);
    delay(500);
  }
  if (distancia>30 && distancia<35)
  {
    notasmusicales(posiciondelpincho, notasmusicales[5]);
    delay(500);
  }
  if (distancia>35 && distancia<40)
  {
    notasmusicales(posiciondelpincho, notasmusicales[6]);
    delay(500);
  }
  if (distancia>40 && distancia<50)
  {
    notasmusicales(posiciondelpincho, notasmusicales[7]);
    delay(500);
  }
}

Enlace a video

Video Theremin

Webgrafia

Sensor ultrasonidos Arduino Sensor