Menu
CoddyTech

Uma melodia a partir de duas listas

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

As notas de uma melodia não têm todas a mesma duração. Um segundo array pode armazenar as durações, alinhadas com as notas: notes[i] e durations[i] correspondem uma à outra.

int notes[] = {262, 262, 392, 392, 440, 440, 392};
int durations[] = {400, 400, 400, 400, 400, 400, 800};

Duas notas iguais em sequência se confundiriam e soariam como uma nota longa. Um breve silêncio após cada uma mantém as notas separadas. Portanto, toque a nota durante sua duração e espere um pouco mais:

tone(8, notes[i], durations[i]);
delay(durations[i] + 50);

A duração encerra a nota, e os 50 ms extras são o intervalo antes da próxima.

Quando o índice passa da última nota, a melodia termina: espere um momento antes de recomeçá-la para que ela não se sobreponha a si mesma.

challenge icon

Desafio

Médio

Toque a primeira frase de Twinkle Twinkle Little Star no pino 8:

  • notas: 262, 262, 392, 392, 440, 440, 392
  • durações: 400 ms cada, e 800 ms para a última nota
  • após cada nota, aguarde a duração dela mais 50 ms
  • após a última nota, aguarde mais um segundo e comece novamente

Pressione Run e, em seguida, Check.

Experimente você mesmo

const int buzzerPin = 8;
// crie aqui os arrays de notas e durações e o índice

void setup() {
}

void loop() {
  // toque uma nota, espere sua duração mais 50 ms e passe para a próxima
  // depois da última nota, espere um segundo e comece novamente
}
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