Melodía “pitches”

Descrición:

Imos crear unha melodía utilizando a librería pitches.h. Nela xa veñen definidas as notas coa súa correspondente frecuencia. (Fai clic aquí para ver a correspondencia entre as notas e nomes)

Programas:

libreria_pitches
[tecnoloxia.org CC By-SA]
Crea unha nova lapela premendo na frecha que hai na parte superior do editor, ponlle o nome pitches.h e copia alí o contido da librería pitches.h.

Na lapela do programa, incluímos a librería escribindo #include “pitches.h” ao principio. Despois, na función tone(pin, frecuencia, duración) ou tone(pin,frecuencia) no canto das frecuencias, escribimos o nome da nota que queremos. Por exemplo: tone(altofalante,NOTE_C4,300); ou tone(4,NOTE_G3);

1. Melodía

Imos definir unha función para a melodía que desexamos que soe. Despois invocámola cando queiramos executar a función.

#include "pitches.h"

// Declaración de variables:

const int pulsador = 2;
const int altofalante = 4;
int estado = 0;

// Configuración:

void setup() {
  pinMode(altofalante, OUTPUT);
}

// Programa:

void melodia(){
  tone(altofalante,NOTE_C4,300);
  delay(100);
  tone(altofalante,NOTE_G3,200);
  delay(100);
  tone(altofalante,NOTE_A3,300);
  delay(100);
  tone(altofalante,NOTE_G3,400);
  delay(100);
  tone(altofalante,NOTE_C4,300);
  delay(100);
  tone(altofalante,NOTE_D4,500);
  noTone(altofalante);
}

void loop() {

  estado = digitalRead(pulsador);
  if(estado == 1) {           // Cando prememos o botón soa a melodía 3 veces
    for (int n=0;n<3;n++) {
      melodia();
      delay(300);
    }
  }
}

2. Melodía con arrays

Podemos definir a melolodía utilizando dous arrays, un coas notas da librería pitches que queremos que soen e outro cos tempos de duración de cada nota. Despois imos percorrendo os arrays mediante unha función for.

#include "pitches.h"    // Librería Notas

// Declaración de variables:

int melodia[] = {NOTE_C4, NOTE_G3, NOTE_G3, NOTE_A3, NOTE_G3,0, NOTE_B3, NOTE_C4};  // Notas
int tempos[] = {4, 8, 8, 4, 4, 4, 4, 4};      // cuarta, oitava, etc.
const int zumbador = 4; 
const int pulsador=2;

// Configuración:
  
void setup() {
  pinMode(zumbador, OUTPUT); 
}

// Programa

void loop() {

  int estado = digitalRead(pulsador);           // comeza a melodía ao premer no pulsador
  if(estado==HIGH){
  
    for (int nota = 0; nota < 8; nota++) {      // Imos percorrendo os arrays de 0 a 7
      int duracion = 1000/tempos[nota];         // calculamos o tempo de duración de cada nota en ms
      tone(zumbador, melodia[nota], duracion);  // Soa a nota correspondente
      int pausaNota = duracion * 1.30;          // Deixa de soar a nota
      delay(pausaNota);
      noTone(zumbador);
    }

  }
  
}

 

Propostas:

  1. Varias melodías: Crea varias melodías diferentes mediante funcións. Temos varios pulsadores e cada un fai soar unha melodía diferente.

 


Deixa un comentario