Menu
CoddyTech

Afinação com um botão

Parte da seção Saídas do Journey de Arduino da Coddy. Lição 12 de 24.

Um botão giratório pode tocar a campainha como um instrumento. A ideia é a mesma do dimmer: ler o botão, converter a leitura e usá-la.

Desta vez, o intervalo de destino é uma frequência. 200 Hz é um zumbido grave e 2000 Hz, um apito agudo, então:

int reading = analogRead(A0);
int pitch = map(reading, 0, 1023, 200, 2000);
tone(8, pitch);

map() não precisa que o novo intervalo comece em 0: 0 vira 200, 1023 vira 2000, e o meio do botão fica perto de 1100.

Chamar tone() novamente com uma nova frequência muda a nota imediatamente, então o tom acompanha o botão conforme você o gira. Um delay(10) curto evita que o sketch reinicie o tom milhares de vezes por segundo.

challenge icon

Desafio

Fácil

O potenciômetro está em A0 e o buzzer no pino 8. Faça o potenciômetro definir o tom:

  • leia o potenciômetro
  • converta a leitura em uma frequência de 200 a 2000 Hz com map()
  • reproduza o som com tone() e aguarde 10 ms

Pressione Executar e gire o potenciômetro; depois, pressione Verificar.

Experimente você mesmo

const int knobPin = A0;
const int buzzerPin = 8;

void setup() {
}

void loop() {
  // leia o potenciômetro, mapeie seu valor para 200..2000 Hz e reproduza o som
}
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Saídas

Pratique por conta própria: Playground de Arduino