Puede haber bibliotecas que pueden ayudarte a reproducir sonidos (básicamente, un archivo de encabezado con la frecuencia en hercios para cada nota). Es posible que desee considerar hacer esto para ahorrarse la molestia de comprar un nuevo chip. [He adjuntado un código de ejemplo, aunque para el arduino a continuación, debería ser muy fácil de trasladar]
De lo contrario, es posible que desee considerar invertir en un SoundPAL. Aunque esto fue diseñado para el sello BASIC, es muy fácil interactuar con él y, en el peor de los casos, el intercambio de bits siempre funciona :) Solo tiene que enviar las notas y las reproducirá en el zumbador incorporado. También tiene una variedad de melodías almacenadas en la EEPROM que puedes tocar.
enlace
// define the frequencies for each note
#define c 261
#define d 294
#define e 329
#define f 349
#define g 391
#define gS 415
#define a 440
#define aS 455
#define b 466
#define cH 523
#define cSH 554
#define dH 587
#define dSH 622
#define eH 659
#define fH 698
#define fSH 740
#define gH 784
#define gSH 830
#define aH 880
//this function will play each note, so you just call the fn beep for each note to be played
void beep (unsigned char speakerPin, int frequencyInHertz, long timeInMilliseconds)
{
int x;
long delayAmount = (long)(1000000/frequencyInHertz);
long loopTime = (long)((timeInMilliseconds*1000)/(delayAmount*2));
for (x=0; x less than loopTime; x++){
digitalWrite(speakerPin,HIGH);
delayMicroseconds(delayAmount);
digitalWrite(speakerPin,LOW);
delayMicroseconds(delayAmount);
}
delay(20); //to separate the notes
}
PD: no pude copiar el código exacto aquí, así que si alguien puede corregir el menos que en < por favor hazlo.