Hi guys, good day
Sorry a long tiem without working with arduino, and now i'm stuck on one big problem, i need your help. I'm making this project, with external interrupt to generate super mario bros sound, but it doesn't make any sound. someone can help me??
the code is:
/
#include <Tone.h>
#include <EEPROM.h>Tone freq1;
Tone freq2;
const int DTMF_freq1[] = { NOTE_C4, NOTE_C5, NOTE_A3, NOTE_A4, NOTE_AS3, NOTE_AS4, 0, 0, 0, NOTE_C4, NOTE_C5, NOTE_A3, NOTE_A4, NOTE_AS3, NOTE_AS4, 0, 0, 0, NOTE_F3, NOTE_F4, NOTE_D3, NOTE_D4, NOTE_DS3, NOTE_DS4, 0, 0, 0, NOTE_F3, NOTE_F4, NOTE_D3, NOTE_D4, NOTE_DS3, NOTE_DS4, 0, 0, NOTE_DS4, NOTE_D4, NOTE_CS4, NOTE_C4, 0, NOTE_DS4, 0, NOTE_D4, 0, NOTE_GS3, 0, NOTE_G3, 0, NOTE_CS4, 0, NOTE_C4, NOTE_FS4, NOTE_F4, NOTE_E4, NOTE_AS4, NOTE_A4, NOTE_GS4, 0, NOTE_DS4, 0, NOTE_B3, 0, NOTE_AS3, 0, NOTE_A3, 0, NOTE_GS3, 0 };
const int DTMF_freq2[] = { NOTE_C3, NOTE_C4, NOTE_A2, NOTE_A3, NOTE_AS2, NOTE_AS3, 0, 0, 0, NOTE_C3, NOTE_C4, NOTE_A2, NOTE_A3, NOTE_AS2, NOTE_AS3, 0, 0, 0, NOTE_F2, NOTE_F3, NOTE_D2, NOTE_D3, NOTE_DS2, NOTE_DS3, 0, 0, 0, NOTE_F2, NOTE_F3, NOTE_D2, NOTE_D3, NOTE_DS2, NOTE_DS3, 0, 0, NOTE_DS3, NOTE_D3, NOTE_CS3, NOTE_C3, 0, NOTE_DS3, 0, NOTE_D3, 0, NOTE_GS2, 0, NOTE_G2, 0, NOTE_CS3, 0, NOTE_C3, NOTE_FS3, NOTE_F3, NOTE_E3, NOTE_AS3, NOTE_A3, NOTE_GS3, 0, NOTE_DS3, 0, NOTE_B2, 0, NOTE_AS2, 0, NOTE_A2, 0, NOTE_GS2, 0 };
const int DTMF_freq3[] = { NOTE_E3, NOTE_A5, NOTE_D5, NOTE_D4, NOTE_G4, NOTE_GS3, NOTE_D3, NOTE_CS2, NOTE_A3, NOTE_A5, NOTE_D5, NOTE_D4, NOTE_G4, NOTE_GS3, NOTE_G3, NOTE_CS4, NOTE_C4, NOTE_CS3, NOTE_C3, NOTE_B2, NOTE_A2, NOTE_GS2, NOTE_E2, NOTE_B2, NOTE_AS2, NOTE_G2, 0, NOTE_E3, NOTE_A5, NOTE_D5, NOTE_D4, NOTE_G4, NOTE_GS3, NOTE_D3, NOTE_CS2, NOTE_A3, NOTE_A5, NOTE_D5, NOTE_D4, NOTE_G4, NOTE_GS3, NOTE_G3, NOTE_CS4, NOTE_C4, NOTE_CS3, NOTE_C3, NOTE_B2, NOTE_A2, NOTE_GS2, NOTE_E2, NOTE_B2, NOTE_AS2, NOTE_G2, 0, NOTE_E3, NOTE_A5, NOTE_D5, NOTE_D4, NOTE_G4, NOTE_GS3, NOTE_D3, NOTE_CS2, NOTE_A3, NOTE_A5, NOTE_D5, NOTE_D4, NOTE_G4, NOTE_GS3, NOTE_G3, NOTE_CS4, NOTE_C4, NOTE_CS3, NOTE_C3, NOTE_B2, NOTE_A2, NOTE_GS2, NOTE_E2, NOTE_B2, NOTE_AS2, NOTE_G2, 0};
const int DTMF_freq4[] = { NOTE_E3, NOTE_A5, NOTE_D5, NOTE_D4, NOTE_G4, NOTE_GS3, NOTE_D3, NOTE_CS2, NOTE_A3, NOTE_A5, NOTE_D5, NOTE_D4, NOTE_G4, NOTE_GS3, NOTE_G3, NOTE_CS4, NOTE_C4, NOTE_CS3, NOTE_C3, NOTE_B2, NOTE_A2, NOTE_GS2, NOTE_E2, NOTE_B2, NOTE_AS2, NOTE_G2, 0, NOTE_E3, NOTE_A5, NOTE_D5, NOTE_D4, NOTE_G4, NOTE_GS3, NOTE_D3, NOTE_CS2, NOTE_A3, NOTE_A5, NOTE_D5, NOTE_D4, NOTE_G4, NOTE_GS3, NOTE_G3, NOTE_CS4, NOTE_C4, NOTE_CS3, NOTE_C3, NOTE_B2, NOTE_A2, NOTE_GS2, NOTE_E2, NOTE_B2, NOTE_AS2, NOTE_G2, 0, NOTE_E3, NOTE_A5, NOTE_D5, NOTE_D4, NOTE_G4, NOTE_GS3, NOTE_D3, NOTE_CS2, NOTE_A3, NOTE_A5, NOTE_D5, NOTE_D4, NOTE_G4, NOTE_GS3, NOTE_G3, NOTE_CS4, NOTE_C4, NOTE_CS3, NOTE_C3, NOTE_B2, NOTE_A2, NOTE_GS2, NOTE_E2, NOTE_B2, NOTE_AS2, NOTE_G2, 0};
int noteDurations[] = {166, 166, 166, 166, 166, 166, 300, 300, 300, 166, 166, 166, 166, 166, 166, 300, 300, 300, 166, 166, 166, 166, 166, 166, 300, 300, 300, 166, 166, 166, 166, 166, 166, 100, 100, 112, 112, 112, 112, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 107, 107, 107, 107, 107, 107, 107, 50, 150, 50, 150, 50, 150, 50, 150, 50, 150};
int noteDurations1[] = { 8, 16, 13, 2, 10, 3, 3, 8, 16, 13, 2, 9, 5, 2, 3, 9, 1, 4, 1, 2, 6, 10, 1, 8, 5, 7, 86, 8, 16, 13, 2, 10, 3, 3, 8, 16, 13, 2, 9, 5, 2, 3, 9, 1, 4, 1, 2, 6, 10, 1, 8, 5, 7, 86, 8, 16, 13, 2, 10, 3, 3, 8, 16, 13, 2, 9, 5, 2, 3, 9, 1, 4, 1, 2, 6, 10, 1, 8, 5, 7, 86};void boton()
{freq1.begin(11);
freq2.begin(12);
int i;
int h;
int j;
int address = 0;Serial.begin(9600);
j = EEPROM.read(address);
j = j + 1;EEPROM.write(address, j);
Serial.println(j);
if (j < 10){for(h = 0; h < 81; h ++)
{
int noteDuration = noteDurations1;
playDTMF1(h, noteDuration);
int pauseBetweenNotes = noteDuration * 1;
delay(pauseBetweenNotes);
}
}
else
{
detachInterrupt(0);
for(h = 0; h < 81; h ++)
{
int noteDuration = noteDurations1;
playDTMF1(h, noteDuration);
int pauseBetweenNotes = noteDuration * 1;
delay(pauseBetweenNotes);
}
delay(100);
for(i = 0; i < 68; i ++)
{
int noteDuration = noteDurations*;
playDTMF(i, noteDuration);
_ int pauseBetweenNotes = noteDuration * 1;_
delay(pauseBetweenNotes);
}
EEPROM.write(address, 0);
attachInterrupt(0, boton, RISING);
}
}
void playDTMF(uint8_t number, long duration)
{
freq1.play(DTMF_freq1[number], duration);
freq2.play(DTMF_freq2[number], duration);
}
void playDTMF1(uint8_t number, long duration)
{
freq1.play(DTMF_freq3[number], duration);
freq2.play(DTMF_freq4[number], duration);
}
void setup() {
attachInterrupt(0, boton, RISING);
}
void loop()
{
while (true);
}[/quote]
i see that the interrupt use the uint_8t and the TONE library too, how can i solve it? what i need to change, add or erase in the code. When i compile the software don't send me any error or warning.
I attach the tone library
Tone.cpp (11.5 KB)
Tone.h (3.23 KB)*