#include "pitches.h"
const int ledbot = 12;
const int ledtop = 11;
int ledState = LOW;
unsigned long previousMillis = 0;
unsigned long previousMillis2 = 0;
unsigned long previousMillis3 = 0;
boolean outputTone = false;
int spooky[] = {
NOTE_F3, NOTE_F3, NOTE_E3, NOTE_E3, NOTE_A2, NOTE_C3, NOTE_A2, NOTE_A2, NOTE_F3, NOTE_F3, NOTE_E3, NOTE_E3, NOTE_A2,
0, NOTE_F3, NOTE_F3, NOTE_E3, NOTE_E3, NOTE_A2, NOTE_C3, NOTE_A2, NOTE_A2, NOTE_C3, NOTE_D3, NOTE_B2, NOTE_C3, NOTE_A2
};
int spookynoteDurations[] = {
4, 4, 4, 4, 4, 8, 3, 4, 8, 3, 4, 4, 2, 2, 4, 4, 4, 4, 4, 8, 3, 4, 4, 4, 4, 4, 2
};
void setup() {
pinMode(ledbot, OUTPUT);
pinMode(ledtop, OUTPUT);
pinMode(8, OUTPUT);
};
void loop() {
outputTone = true;
unsigned long currentMillis = millis();
for (int thisNote = 0; thisNote < (sizeof(spookynoteDurations)/2); thisNote++)
{
int spookynoteDuration = 1000 / spookynoteDurations[thisNote];
int pauseBetweenNotes = spookynoteDuration * 1.35;
if (outputTone) {
if (currentMillis - previousMillis >= spookynoteDuration) {
previousMillis = currentMillis;
noTone(8);
outputTone = false;
}
} else {
if (currentMillis - previousMillis2 >= pauseBetweenNotes) {
previousMillis2 = currentMillis;
tone(8, spooky[thisNote]);
outputTone = true;
}
if (currentMillis - previousMillis3 >= pauseBetweenNotes) {
previousMillis3 = currentMillis;
{
if (ledState == LOW) {
ledState = HIGH;
} else {
ledState = LOW;
}
digitalWrite(ledbot, ledState);
digitalWrite(ledtop, ledState);
}
}
}
}
}
This is my code for the song Spooky Scary Skeletons. What's supposed to happen is that whenever a note plays, two LEDs flash. What ends up happening is that only one note plays and the LEDs blink. Can anyone tell me what I did wrong? I've searched on google and tried lots of codes, but none of them seemed to work for me.