#define midinoteon 144 #define midinoteo 128 #define midicchange
Transcripción
#define midinoteon 144 #define midinoteo 128 #define midicchange
#define midinoteon 144 #define midinoteoff 128 #define midicchange 176 #define midiprogchange 192 //VARIABLES int valorsensor; int estadopulsador=0; int estadopulsadorultimo=0; int contador = 0; int modo = 0; int vel; int val = LOW; int valnuevo = 0; int volumen = 120; int sonido; //ENTRADA DIGITAL int pulsador = 3; int interruptor=2; //ANALOGOS int sensor=2; int potenciometro = 1; //SALIDA //int outPinMotor = 5; // FUERA DE SERVICIO!!! void setup() { Serial.begin(31250); // Declaramos la velocidad de transmisión MIDI pinMode(sensor, INPUT); pinMode(pulsador,INPUT); pinMode(potenciometro, INPUT); // se declara como entrada pinMode(interruptor, INPUT); // se declara como entrada //pinMode(outPinMotor, OUTPUT); // se declara como entrada } /* //NO FUNCIONA ESTA PARTE DEL CODIGO!!!! sonido 1= 10 sonido 2= 117 sonido 3= 53 */ void loop (){ //PREGUNTAMOS SI EL PROGRAMA ESTA ENCENDIDO val = digitalRead(interruptor); // leemos el interruptor delay(300); //SI EL PROGRAMA ESTA ENCENDIDO EMPIEZA EL MIDI: if (val == HIGH) { //--------------------------------------------------------------------------------------------------------------------------------------------------------valorsensor = analogRead(sensor); // leemos el valor del sensor valorsensor = map(valorsensor,0,1023,40,120); //delay(300); //---------------------------------------------------------------------------------------------------------------//----------------------------------------------------------------------------------------------//SI EL PROGRAMA ESTA ENCENDIDO LEEMOS EN QUE ESTADO ESTA EL PULSADOR estadopulsador = digitalRead(pulsador); //guarda el valor actual del pulsador delay(100); //debounce if (estadopulsador != estadopulsadorultimo){ //compara el estado actual del pulsador // si cambio aumenta el contador if (estadopulsador == HIGH) { // si se presiono contador++; } if (contador >3) { // si se presiono contador=1; } } // actualizamos el ultimo estado estadopulsadorultimo = estadopulsador; vel=analogRead(potenciometro)/4; delay(300); Serial.write(midinoteon); // NoteOn Serial.write(valorsensor); // Altura 60 Serial.write(120); // Velocidad o volumen 120 delay (vel); // pausa entre mensajes Serial.write(midicchange); // Mensaje de control Serial.write(1); // Asignado al controlador 1 modulación Serial.write(70); // Valor del control delay (vel); // pausa entre mensajes Serial.write(midiprogchange); // Instrucción de cambio de programa Serial.write(10); // programa que corresponde a trompeta delay (vel); // pausa entre mensajes if (contador == 1) { //Serial.write(midiprogchange); // Instrucción de cambio de programa //Serial.write(10); // programa que corresponde a trompeta //delay (500); // pausa entre mensajes sonido=10; } if (contador == 2) { //Serial.write(midiprogchange); // Instrucción de cambio de programa //Serial.write(117); // programa que corresponde a trompeta //delay (500); // pausa entre mensajes sonido= 117; } if (contador == 3) { //Serial.write(midiprogchange); // Instrucción de cambio de programa //Serial.write(53); // programa que corresponde a trompeta //delay (500); // pausa entre mensajes sonido= 53; } } }