馃З Actividad #1
Therem铆n Musical.
Instrucciones
En nuestra actividad elaboraremos un Therem铆n de notas musicales para conocer como funcionamiento del Sensor de Proximidad.
Materiales necesarios:
Para realizar nuestro Therem铆n necesitaremos los siguientes materiales:
Pasos para crear una conexi贸n del proyecto Therem铆n con Arduino.
Aqu铆 est谩n los pasos para crear un theremin de notas musicales en Tinkercad:
1. Declaraci贸n de variables: Se declaran variables para los pines del buzzer, el sensor de proximidad, la duraci贸n del pulso y la distancia, y los pines para los leds rojo, azul y verde.
- buzzer聽
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽pin = 3
- sensor de proximidad:
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽trig = 4;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽echo=5;
- Pines:
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽pin 6 = rojo;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 pin 7 = azul
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽pin 8 = verde
2. Funci贸n setup(): En esta funci贸n se definen los modos de los pines, tanto para el buzzer como para los pines de entrada y salida del sensor de proximidad y los leds. Se inicia tambi茅n la comunicaci贸n serial a 9600 baudios.
3. Funci贸n loop(): Se usa la funci贸n loop() para realizar las acciones continuamente. Se env铆a un pulso alto al pin trig y luego se pone en bajo. Se mide el tiempo del eco y se usa la f贸rmula para convertirlo en distancia.
4. Reproducci贸n de notas: Luego, se usan if-else para producir diferentes notas musicales y encender diferentes colores de leds en funci贸n de la distancia medida por el sensor. Por ejemplo, si la distancia est谩 entre 10 y 50 cm, se reproduce un DO y se enciende el led rojo. Si la distancia es mayor de 290 cm, no se reproduce ninguna nota y todos los leds permanecen apagados; y de esta聽 manera vamos haciendo lo mismo con cada nota musical, cambiando solo la distancia.
5. Impresi贸n en la consola: Finalmente, se imprime la distancia y la nota reproducida en la consola serie para depuraci贸n y verificaci贸n.
C贸digo fuente del proyecto:
int buzzer = 3;聽// define al buzzer en el pin 3
int trig = 4;
int eco=5;
int tiempo;
int distancia;
int rojo = 6;
int azul =7;
int verde = 8;
void setup()
{
pinMode(buzzer, OUTPUT);
pinMode (trig,OUTPUT); // SALIDA
pinMode (eco,INPUT); //ENTRADA
Serial.begin(9600);
pinMode(rojo,OUTPUT); //ENTRADA
pinMode(azul,OUTPUT); //ENTRADA
pinMode(verde,OUTPUT); //ENTRADA
}
void loop()
{
digitalWrite(trig,HIGH);
delay(1);
digitalWrite(trig,LOW);
tiempo=pulseIn(eco,HIGH);
distancia = tiempo/58.2; // constante que me permite conocer en cent铆metros la ubicaci贸n del objeto
// va a reproducir un DO entre 10 a 50 cent铆metros
if ((distancia >10) and (distancia<50))
{
tone (buzzer,261.63);
digitalWrite(rojo,HIGH);
digitalWrite(azul,LOW);
digitalWrite(verde,LOW);
delay(500);
Serial.print("Do:");
Serial.println(distancia);
}
// va a reproducir un RE entre 50 a 90 cent铆metros
if ((distancia >50) and (distancia<90))
{
tone (buzzer,293.66);
digitalWrite(rojo,LOW);
digitalWrite(azul,HIGH);
digitalWrite(verde,LOW);
delay(500);
Serial.print("Re:");
Serial.println(distancia);
}
// va a reproducir un MI entre 90 a 130 cent铆metros
if ((distancia >90) and (distancia<130))
{
tone (buzzer,329.63);
digitalWrite(rojo,LOW);
digitalWrite(azul,LOW);
digitalWrite(verde,HIGH);
delay(500);
Serial.print("Mi:");
Serial.println(distancia);
}
// va a reproducir un Fa entre 130 a 170 cent铆metros
if ((distancia >130) and (distancia<170))
{
tone (buzzer,349.23);
digitalWrite(rojo,HIGH);
digitalWrite(azul,HIGH);
digitalWrite(verde,LOW);
delay(500);
Serial.print("Fa:");
Serial.println(distancia);
}
// va a reproducir un Sol entre 170 a 210 cent铆metros
if ((distancia >170) and (distancia<210))
{
tone (buzzer,392);
digitalWrite(rojo,HIGH);
digitalWrite(azul,LOW);
digitalWrite(verde,HIGH);
delay(500);
Serial.print("Sol:");
Serial.println(distancia);
}
// va a reproducir un La entre 210 a 250 cent铆metros
if ((distancia >210) and (distancia<250))
{
tone (buzzer,440);
digitalWrite(rojo,LOW);
digitalWrite(azul,HIGH);
digitalWrite(verde,HIGH);
delay(500);
Serial.print("La:");
Serial.println(distancia);
}
// va a reproducir un Si entre 250 a 290 cent铆metros
if ((distancia >250) and (distancia<290))
{
tone (buzzer,493.88);
digitalWrite(rojo,HIGH);
digitalWrite(azul,HIGH);
digitalWrite(verde,HIGH);
delay(500);
Serial.print("Si:");
Serial.println(distancia);
}
else
{
noTone(buzzer);
digitalWrite(rojo,LOW);
digitalWrite(azul,LOW);
digitalWrite(verde,LOW);
}
}
Desarrollo
THEREM脥N MUSICAL