Índice:

Arduino - Piano Piezo de três botões: 4 etapas
Arduino - Piano Piezo de três botões: 4 etapas

Vídeo: Arduino - Piano Piezo de três botões: 4 etapas

Vídeo: Arduino - Piano Piezo de três botões: 4 etapas
Vídeo: Buzzer com notas musicais #arduino 2024, Novembro
Anonim
Image
Image

O piano de três botões é um projeto para iniciantes com alguma experiência no uso do Arduino.

Eu fui levado inadvertidamente a tentar criar isto enquanto brincava com a campainha piezoeléctrica pela primeira vez. Foi TÃO alto! Ao tentar descobrir vários métodos para tornar a campainha mais silenciosa e experimentar diferentes frequências usando as funções tone () e noTone (), percebi que seria divertido tentar misturar a campainha piezoelétrica com meus outros componentes favoritos do meu Arduino kit: botões e potenciômetro.

Os materiais necessários incluem:

  • 1 Arduino
  • 1 breadboard
  • 1 cabo USB
  • Jumper Wires (várias cores)
  • 1 Resistor de 330 Kilo-ohm
  • 1 Piezo Buzzer
  • 3 botões de pressão
  • 1 potenciômetro

Etapa 1: Piezo Buzzer

Piezo Buzzer
Piezo Buzzer

Para começar, configure o piezo na placa de ensaio do Arduino. Um lado dele (o lado da perna mais curta) precisa correr para o chão. O outro lado (o lado mais longo da perna) precisa se conectar a um pino de entrada digital. Optei por conectá-lo a 8.

Etapa 2: botões de pressão

Apertar botões
Apertar botões
Apertar botões
Apertar botões

Em seguida, é hora de configurar os botões de pressão. Como o piezo, os botões precisam ser conectados ao aterramento e a um pino de entrada digital.

Etapa 3: Potenciômetro

Potenciômetro
Potenciômetro
Potenciômetro
Potenciômetro

A etapa final na construção física é o potenciômetro. Os potenciômetros vêm em algumas formas diferentes. Usaremos o potenciômetro como um divisor de voltagem, portanto, todas as três pernas precisam ser conectadas.

Perna Direita: Barra Negativa (Terra)

Perna do meio: Pino analógico 0

Perna Esquerda: Barra Positiva

Etapa 4: Código

Ao escrever o código para este projeto, fiz referência a informações sobre alguns tipos específicos de funções:

tom()

noTone () (Acabei não usando este. Defini a frequência para "0" em vez disso.)

mapa()

Outra referência maravilhosa para usuários iniciantes dos Piezo Buzzers pode ser encontrada aqui. Embora a ideia de alterar o som da campainha piezoelétrica pareça simples, pode ser um pouco opressor no início!

A função tone () pode ser dividida em três partes:

  1. Pino (o pino ao qual a campainha piezoelétrica está conectada)
  2. Frequência (a frequência do som em hertz)
  3. Duração (a duração do som dada em milissegundos)

Basicamente, é assim: tom (pino, frequência, duração). O terceiro componente (duração) é opcional, enquanto os outros dois são necessários para o funcionamento da campainha. O componente de "frequência" da função de tom é o que pode ser considerado "o som" que está sendo produzido pela campainha.

Você também notará que o código apresenta dois outros bits de código. Existem algumas instruções if / else configuradas para dizer ao Arduino o que fazer se botões diferentes forem pressionados, bem como configurá-lo com "frequência = 0" em situações em que nenhum dos botões está sendo pressionado. Dentro das instruções if / else, as funções map () são usadas para mapear a escala do potenciômetro em um conjunto de frequências. Isso pode ser alterado! Brinque com diferentes valores de frequência para ver quais sons diferentes você consegue obter do piezo.

Verifique o código que usei para criar o piano de três botões aqui ou abaixo.

piezoPin int = 8; // Configure o pino conectado ao Piezo.

int sensorPin = 0; // Configure o pino conectado ao sensor (o potenciômetro). int sensorValue = 0;

botão interno 1 = 5; // Configure os pinos de entrada conectados aos botões.

botão interno 2 = 4; botão interno 3 = 3;

frequência interna = 0;

const int delayTime = 500; // Configure uma constante para a variável de tempo de atraso na função tone ().

void setup () {

pinMode (button1, INPUT_PULLUP); pinMode (button2, INPUT_PULLUP); pinMode (button3, INPUT_PULLUP); }

void loop () {

sensorValue = analogRead (sensorPin); // Leia o sensor. // Mapeie os diferentes valores do potenciômetro para um conjunto de frequências para cada um dos três botões. if (digitalRead (button1) == LOW) {freqüência = map (sensorValue, 0, 1023, 400, 499); } else if (digitalRead (button2) == LOW) {frequência = map (sensorValue, 0, 1023, 500, 599); } else if (digitalRead (button3) == LOW) {frequência = map (sensorValue, 0, 1023, 600, 699); } mais {frequência = 0; } tom (piezoPin, frequência, delayTime); // Configure as funções tone () com variáveis. }

Recomendado: