Escolar Documentos
Profissional Documentos
Cultura Documentos
via USB:
//
#include <MIDIUSB.h> // incluir a biblioteca MIDIUSB
const int piezoPin[] = {2,3,4,5,6,7,8}; // array para armazenar os pinos dos piezos
int piezoValue[] = {0,0,0,0,0,0,0}; // array para armazenar o valor dos piezos
int sens[] = {10,5,2,3,15,20,30}; // array para armazenar a sensibilidade dos
piezos
void setup() {
for (int i = 0; i < 7; i++) { // inicializar os pinos dos piezos como entrada
pinMode(piezoPin[i], INPUT);
}
MIDI.begin(1); // inicializar a comunicação MIDI
}
void loop() {
for (int i = 0; i < 7; i++) { // ler os valores dos piezos
piezoValue[i] = analogRead(piezoPin[i])/sens[i]; // dividir o valor lido pelo
fator de sensibilidade
MIDI.sendNoteOn(i, piezoValue[i], 1); // enviar mensagem MIDI Note On
}
}
Este código usa a biblioteca MIDIUSB para enviar mensagens MIDI Note On através do
conector USB do Arduino. Os pinos dos piezos são inicializados como entradas e os
valores dos piezos são lidos e enviados como velocidade das notas MIDI.
Outra forma é colocando a nota desejada no lugar de "i" e retirando a variavel "i"
da linha anterior. Por exemplo: MIDI.sendNoteOn(60, piezoValue[i], 1);
Além disso, é importante notar que o código acima assume que os piezos estão
conectados a entradas analógicas do Arduino. Se os piezos estiverem conectados a
entradas digitais, será necessário mudar a função de leitura de analogRead() para
digitalRead()
Para usar os piezos eletrônicos como bateria eletrônica, você pode fixá-los na
superfície de uma bateria, de modo que quando você bater na superfície da bateria,
os piezos gerarão sinais elétricos que podem ser lidos pelo Arduino.
Neste exemplo, criamos um novo array int "sens" que armazena a sensibilidade dos
piezos de forma independente. Então, dentro do loop, dividimos o valor lido pelo
método "analogRead" pelo fator de sensibilidade correspondente do array "sens"
antes de enviar a mensagem MIDI Note On.