OaxRom Mobile Computing

Llévamos las comunicaciones & aplicaciones móviles de su empresa hasta la palma de su mano

Contacto

Conmutador:

01 55 4431-5035

Correo:

info@oaxrom.com

Ubicación:

CDMX, México.

fb

 

 

Emblems

Codigo para ejercicio en Arduino de "Piano" Electrónico inalámbrico.

Este es el código de un ejercicio en Arduino que intenta simular un piano electrónico inalámbrico.


El proyecto trata que a través de un sensor ultrasónico calcular la distancia a la que se encuentre mi mano del sensor, con base a la distancia entre el sensor ultrasónico y mi mano calcula el tono y semitono correspondiente tomando como base La4 a 432 hertz, a mayor distancia más agudo el tono y a menor distancia más grave el tono. El tono será emitido a través de un speaker sencillo conectado al Arduino.



El ejercicio también intenta simular un estado sinestésico, la sinestesia es la interferencia de varios sentidos al percibir un olor, color, sonido, etc., de tal forma que la mezcla de los sentidos genera diversas percepciones en los individuos que poseen esta cualidad. En este caso el ejercicio tratará que al momento de emitir un sonido, se generará un color diferente por cada tono, este color se genera con base a la frecuencia del tono y la frecuencia del color será codificada con en hexadecimal combinando los colores de un Led RGB.


Código

 
 
 
int redPin = 10;
int greenPin = 11;
int bluePin = 12;
 
int melody[] = {  432, 457, 484 ,513, 544, 576,  610, 647, 685, 726, 769, 815};
int RGB[][12] = {
          {255, 255, 139,  00,  00,  00,  00,  00, 153, 255, 255,  255},
          {00,   00,  00,  00, 128, 255, 255, 255, 255, 255, 127,  00},
          {128, 255, 255, 255, 255, 255, 128,  00,  00,  00,  00,  00}
        };
int nota = 0;
int color = 0;  
 
const int pingPin = 8;
const int pingEcho = 9;
 
void setup() {
    pinMode(pingEcho, INPUT);
    pinMode(pingPin, OUTPUT);
     
    pinMode(redPin, OUTPUT);
    pinMode(greenPin, OUTPUT);
    pinMode(bluePin, OUTPUT);
 
}
 
void loop()
{
 
  long duration, inches, cm;
  digitalWrite(pingPin, LOW);
  delayMicroseconds(2);
  digitalWrite(pingPin, HIGH);
  delayMicroseconds(5);
  digitalWrite(pingPin, LOW);
 
  duration = pulseIn(pingEcho, HIGH);
  cm = microsecondsToCentimeters(duration);
 
  if(cm >=1 && cm<=80){
    nota = map(cm,1,80,0,11);
    color =map(cm,1,80,11,0);
    tone(2, melody[nota],250);
   
    analogWrite(redPin, RGB[0][color]);
    analogWrite(greenPin, RGB[1][color]);
    analogWrite(bluePin, RGB[2][color]);
       
    delay(100);
  }else{
    noTone(2);
    analogWrite(redPin, 0);
    analogWrite(greenPin, 0);
    analogWrite(bluePin, 0);
 
  }
   
}  
 
long microsecondsToCentimeters(long microseconds)
{
  return microseconds / 29 / 2;
}
 


Esquema de conexión de componentes electrónicos en Arduino
  • Speaker: Pin 2 ; GND
  • Sensor Ultrasónico: 5v; Echo-Pin 9; Trigger- Pin 8; GND;
  • Led RGB: Red - Resistencia 220 - Pin 10; Green - Resistencia 220 - Pin 11; Blue - Resistencia 220 -
    Pin 12; Cátodo común - GND.
  • Arduino Nano


    Video demo del proyecto


  • OaxRom Mobile Computing.

    ¿Quienes Somos?

    Horario de atención:

    Lunes a Viernes

    09:00 a.m. a 18:00 p.m.

    Tiempo de la Ciudad de México

     

    Conmutador:

    01 55 4431-5035

    Correo:

    info@oaxrom.com

    Ubicación:

    CDMX, México.

    Precios listados en esta página no incluyen IVA. Precios de equipos listados y cotizados están en dólares con tipo de cambio al tipo de venta del dolar del día en Bancomer.com  
    fb Aviso de Privacidad