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.
Desafio
FácilO 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
}
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