Como fazer um Instrumento com o Arduino

O Arduino lhe permite ir além de tocar um som - você criar seu próprio instrumento, semelhante ao Theremin. o Theremin

, nome do seu inventor L # 233-on Theremin, foi um dos primeiros instrumentos eletrônicos, desenvolvidos na década de 1920. Funcionou, detectando o campo eletromagnético das mãos do jogador para mudar sinais: um lado para o volume e outro para o campo.

O esboço PitchFollower

Neste esboço, você descobrir como fazer um Theremin orçamento usando um piezo como um sensor de luz para controlar o jogo.

Você precisa:

  • Um Arduino Uno

  • A placa de ensaio

  • A piezo

  • Um sensor de luz

  • A 47k ohm

  • fios de salto

Este circuito tem duas metades separadas, o circuito piezo e o sensor de luz. O piezo é ligado como no esboço toneMelody, com um fio ao pino digital 8 e outro para GND.

image0.jpg

O sensor de luz é ligado à entrada analógica 0 sobre um lado e sobre o outro: 5V o resistor 4.7K analógico está ligado entre 0 e moído.

image1.jpg

Completar o circuito, e abrir o esboço escolhendo Arquivo-Exemplos-02.Digital-tonePitchFollower.

/ * Passo followerPlays um arremesso que muda de acordo com a inputcircuit analógico mudando: * alto-falante 8 ohm no pino digital de 8 * photoresistor em analógico 0 a 5V * 4.7K resistor em analógico 0 a groundcreated 21 de janeiro 2010modified 09 de abril 2012by Tom IgoeThis exemplo de código está no domain.http público: setup //arduino.cc/en/Tutorial/Tone2*/void () {// inicializa comunicação serial (apenas para depuração): Serial.begin (9600) -} void loop () { // lê o sensor:int sensorReading = analogRead(A0) - // imprimir a leitura do sensor para que você saiba a sua gamaSerial.println(SensorReading) - // mapear o campo para o intervalo do analógico input.// alterar os números de entrada mínima e máxima abaixo // dependendo da faixa de doação do seu sensor:int thisPitch = mapa(SensorReading, 400, 1000, 100, 1000) - // jogar o campo:tom(8, thisPitch, 10) -demora(1) - // atraso entre as leituras para a estabilidade}

Depois de ter encontrado o desenho, pressione o botão Compilar para verificar o código. Quaisquer erros de sintaxe virar a caixa de mensagem vermelho quando eles são descobertos, e você vê uma mensagem de erro informando que está errado.

Se o esboço compila corretamente, clique em Upload para fazer o upload do esboço para sua placa. Quando é feito o upload, você deve ter um sensor de luz que vai mudar o tom de sua campainha. Se você não ouvir qualquer alteração, certifique-se de que você ligar uma lâmpada de mesa sobre sobre a sua placa de ensaio. Isso ajudará a aumentar a diferença quando você cobrir o sensor de luz com a mão.

Se nada acontecer, você deve verificar novamente sua fiação:

  • Certifique-se de que você está usando o número de pinos correta para as entradas e saídas.

  • Verifique se o seu piezo está ligado da maneira correta. Símbolos podem estar ocultos na parte inferior, se eles não são visíveis.

  • Verifique as conexões na placa de ensaio. Se os fios de salto ou componentes não são conectados usando as linhas corretas na placa de ensaio, eles não irão funcionar.

A repartição esboço PitchFollower

Este esboço converte diretamente as leituras do sensor de luz para uma frequência em vez de exigir uma tabela de pesquisa. Isso significa que você pode deslizar entre as notas, bem como escolhê-los individualmente.

Na configuração, a porta serial é aberta para que você possa monitorar as leituras dos sensores como eles vêm.

void setup () {// inicializa comunicação serial (apenas para depuração): Serial.begin (9600) -}

No circuito principal, o sensor de luz é lido do pino analógico 0. Esta leitura também é encaminhado para o monitor serial.

vazio loop () {// lê o sensor:int sensorReading = analogRead(A0) - // imprimir a leitura do sensor para que você saiba a sua gamaSerial.println(SensorReading) -

Para converter o alcance do sensor para a gama de frequências que a campainha pode cobrir, você usa o mapa função.

 // Mapear o campo para o intervalo do analógico input.// alterar os números de entrada mínima e máxima abaixo // dependendo da faixa de doação do seu sensor:int thisPitch = mapa(SensorReading, 400, 1000, 100, 1000) -

A função de tom, em seguida, emite a nota com o valor do sensor mapeados e muito curta duração de 10 milissegundos. Esta duração serve para fazer o som audível, mas a duração real será determinado por quanto tempo você segurar a sua mão sobre o sensor, como descrito anteriormente.

 // Jogar o campo:tom(8, thisPitch, 10) -

Finalmente, um pequeno atraso ocorre no final do ciclo para melhorar a estabilidade das leituras.

 demora(1) - // atraso entre as leituras para a estabilidade}

Com esta configuração, você pode rapidamente fazer um controlador fácil e talvez até mesmo formar uma banda Theremin viajando com seus amigos.

menu