Criando controladoras MIDI — parte 2

Gabriel Yshay
2 min readJan 10, 2020

Nessa segunda parte vamos aprender a usar botões para disparar mensagens MIDI com o Arduino. Se você não viu a parte um veja ela aqui.

O Circuito básico

Ligamos o botão no Arduino na porta 8, colocamos também um resistor entre essa porta e o terra, isso para garantir que quando o botão não esta sendo apertando nos lemos o valor 0, se não colocarmos esse resistor (chamado nesse caso de pull down) vamos ler valores aleatórios, e possivelmente entender erroneamente que o botão tenha sido apertado.

Agora no Arduino vamos colocar o código para ler o botão.

void setup(){
pinMode(8, INPUT); // declaramos o pino 8 como entrada
pinMode(13, OUTPUT); // o pino 13, ligado ao led é saida
}void loop() {
bool apertado = digitalRead(8); // lemos o valor do botão
if(apertado){
digitalWrite(13, HIGH); // por enquanto vamos só colocar esse valor no led. Voce deve ver o led piscando quando aperta o botão.
}else {
digitalWrite(13, LOW);
}
}

Mandando MIDI

Agora que ja lemos o valor do nosso botão, vamos mandar de fato uma mensagem MIDI quando o botão for apertado. Esse pedaço continua o que vimos na parte 1.

Uma ideia para fazer isso é simplesmente mandar a mensagem se o botão esta apertado, mas desse jeito, como o Arduino é muito rápido, quando apertarmos o botão ele vai mandar muitas mensagens para o computador. Então a gente quer mandar só quando o botão trocar de solto para apertado.

bool estadoAnterior = false; // vamos lembrar qual era a posição do botão antesvoid setup(){
Serial.begin(112500); // inicia o serial
pinMode(8, INPUT); // declaramos o pino 8 como entrada
pinMode(13, OUTPUT); // o pino 13, ligado ao led é saida
}
void loop() {
bool apertado = digitalRead(8); // lemos o valor do botão
if(apertado != estadoAnterior){ // se a pos do
if(apertado) mandaNoteOn(36, 127);
else mandaNoteOn(36, 0);
estadoAnterior = apertado;
}
}
void mandaNoteOn(byte nota, byte velocidade){
Serial.write(144);
Serial.write(nota);
Serial.write(velocidade);
}

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

Gabriel Yshay
Gabriel Yshay

Written by Gabriel Yshay

Data Science, Hardware and Music

No responses yet

Write a response