#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;
}
}
}

Documentos relacionados