Melodia

Pots utilitzar el piezoelèctric per fer un so bàsic amb l’Arduino. Aquí usem la llibreria Melody  per reproduir una peça musical d’una llista de notes i durades.

Materials

  • 1 placa Arduino U
  • 1 Shield Bàsica Educativa
  • 1 piezo
  • 2 cables (vermell i negre)

Instruccions

  1. Connecta el cable vermell del teu piezo al Pin digital 8 i el cable negre a terra (GND).

  1. Obre Arxiu -> Exemple -> BasicEducationShield -> Help -> Melody.
/*
Melody
*/
#include <BasicEducationShield.h>

#include "pitches.h"

//8 is the pin the piezo is connected to.
Melody me=Melody(8);

void setup(){
}

void loop(){
//Defining the notes used in the music. No more than 30.
int notes[] = {
NOTE_C4, NOTE_G3,NOTE_G3, NOTE_A3, NOTE_G3,0, NOTE_B3, NOTE_C4};

//Duration of each note. should be corresponding to the notes above.
int noteDurations[] = {
4, 8, 8, 4,4,4,4,4 };

//Play the notes defined above
me.play(8,notes,noteDurations,1.4);

delay(3000);

//Make a beep sound
me.beep();

delay(3000);
}

Puja el codi. Ara el piezo hauria de tocar una petita melodia, quedar-se en silenci al llarg de 3 segons, i després tornar a emetre un curt xiulet.

Per canviar la melodia, has de canviar les notes i la durada de les notes. La línia que defineix les notes utilitzades al codi de Melody és: int notes [] = {NOTE_C4, NOTE_G3, NOTE_G3, NOTE_A3, NOTE_G3, 0, NOTE_B3, NOTE_C4}

Per caviar una nota, reemplaça-la amb una nota establerta al fitxer pitches.h que acompanya el programa (veuràs que el programa té dos tabs: un és el programa en si mateix, i l’altre el fitxer esmentat).

Pots afegir fins a 30 notes per melodia. No oblidis col·locar una coma entre cada nota. Si desitges que el piezo es quedi en silenci en algunes notes, només cal que escriguis “0”.

A la vegada, cada nota té una duració, que es defineix a la línia: int noteDurations [] = {4, 8, 8, 4,4,4,4,4}.  4 és la durada d’una nota negra, 8 una corxera, 16 una semicorxera, 2 una blanca i 1 una rodona.

Cada número correspon a una nota. NOTE_C4 és una negra (4 unitats de temps de durada), NOTE_G3 és una corxera, etc. Cal que hi hagi tantes durades com notes. És a dir, els dos arrays han de ser de la mateixa longitud.

La melodia es toca amb aquesta línia de codi:  me.play (8, notes, noteDurations, 1,4). 8: és el número de notes. Si agregues notes a la melodia, aquest número ha de canviar-se per tal que coincideixi amb el número de notes. notes són les notes de la melodía. noteDuration és la durada de les notes. 1,4 és la velocitat. Prova de canviar l’últim número per veure el que succeeix amb la melodia.

Si vols escriure el teu propi programa i usar les notes, assegura’t d’incloure un tab amb pitches.h al teu programa (equival a copiar el fitxer pitches.h dins de la carpeta on estigui el teu programa), i de posar # include "pitches.h" a l’inici del teu programa.

No funciona?

  1. Comprova que està ben connectat al Pin digital i a terra (GND).
  2. Confirma que has connectat el piezo al mateix Pin que diu el codi.