/* este codigo imita uma campainha que toca duas musicas sendo
elas mario bros e star wars */
/* Define números de pinos para LEDS, botões e alto-falantes */
int buttonPin = 2;
int ledPin = 6;
bool i=0;
#define pinSound 10
//configura a placa ESP32 e inicializa a comunicação serial
void setup() {
Serial.begin(9600);
for (byte i = 0; i < 4; i++) {
pinMode(ledPin, OUTPUT);
pinMode(buttonPin, INPUT_PULLUP);
}
}
/* musica de mario bros toca aproximadamente 10s*/
void marioBros_theme()
{
tone(pinSound, 659, 83.3333333333);
delay(83.3333333333);
delay(41.6666666667);
tone(pinSound, 659, 83.3333333333);
delay(83.3333333333);
delay(166.666666667);
tone(pinSound, 659, 83.3333333333);
delay(83.3333333333);
delay(166.666666667);
tone(pinSound, 523, 83.3333333333);
delay(83.3333333333);
delay(41.6666666667);
tone(pinSound, 659, 83.3333333333);
delay(83.3333333333);
delay(166.666666667);
tone(pinSound, 783, 83.3333333333);
delay(83.3333333333);
delay(916.666666667);
tone(pinSound, 523, 83.3333333333);
delay(83.3333333333);
delay(291.666666667);
tone(pinSound, 391, 83.3333333333);
delay(83.3333333333);
delay(291.666666667);
tone(pinSound, 329, 83.3333333333);
delay(83.3333333333);
delay(291.666666667);
tone(pinSound, 440, 83.3333333333);
delay(83.3333333333);
delay(166.666666667);
tone(pinSound, 493, 83.3333333333);
delay(83.3333333333);
delay(166.666666667);
tone(pinSound, 466, 83.3333333333);
delay(83.3333333333);
delay(41.6666666667);
tone(pinSound, 440, 83.3333333333);
delay(83.3333333333);
delay(166.666666667);
tone(pinSound, 391, 83.3333333333);
delay(83.3333333333);
delay(83.3333333333);
tone(pinSound, 659, 83.3333333333);
delay(83.3333333333);
delay(83.3333333333);
tone(pinSound, 783, 83.3333333333);
delay(83.3333333333);
delay(83.3333333333);
tone(pinSound, 880, 83.3333333333);
delay(83.3333333333);
delay(166.666666667);
tone(pinSound, 698, 83.3333333333);
delay(83.3333333333);
delay(41.6666666667);
tone(pinSound, 783, 83.3333333333);
delay(83.3333333333);
delay(166.666666667);
tone(pinSound, 659, 83.3333333333);
delay(83.3333333333);
delay(166.666666667);
tone(pinSound, 523, 83.3333333333);
delay(83.3333333333);
delay(41.6666666667);
tone(pinSound, 587, 83.3333333333);
delay(83.3333333333);
delay(41.6666666667);
tone(pinSound, 493, 83.3333333333);
delay(83.3333333333);
delay(291.666666667);
tone(pinSound, 523, 83.3333333333);
delay(83.3333333333);
delay(291.666666667);
tone(pinSound, 391, 83.3333333333);
delay(83.3333333333);
delay(291.666666667);
tone(pinSound, 329, 83.3333333333);
delay(83.3333333333);
delay(291.666666667);
tone(pinSound, 440, 83.3333333333);
delay(83.3333333333);
delay(166.666666667);
tone(pinSound, 493, 83.3333333333);
delay(83.3333333333);
delay(166.666666667);
tone(pinSound, 466, 83.3333333333);
delay(83.3333333333);
delay(41.6666666667);
tone(pinSound, 440, 83.3333333333);
delay(83.3333333333);
delay(166.666666667);
tone(pinSound, 391, 83.3333333333);
delay(83.3333333333);
delay(83.3333333333);
tone(pinSound, 659, 83.3333333333);
delay(83.3333333333);
delay(83.3333333333);
tone(pinSound, 783, 83.3333333333);
delay(83.3333333333);
delay(83.3333333333);
tone(pinSound, 880, 83.3333333333);
delay(83.3333333333);
delay(166.666666667);
tone(pinSound, 698, 83.3333333333);
delay(83.3333333333);
delay(41.6666666667);
tone(pinSound, 783, 83.3333333333);
delay(83.3333333333);
delay(166.666666667);
tone(pinSound, 659, 83.3333333333);
delay(83.3333333333);
delay(166.666666667);
tone(pinSound, 523, 83.3333333333);
delay(83.3333333333);
delay(41.6666666667);
tone(pinSound, 587, 83.3333333333);
delay(83.3333333333);
delay(41.6666666667);
tone(pinSound, 493, 83.3333333333);
delay(83.3333333333);
delay(166.666666667);
tone(pinSound, 523, 83.3333333333);
}
/* musica de star wars toca aproximadamente 10s*/
void starWars_theme()
{
tone(pinSound, 391, 330.8821875);
delay(330.8821875);
delay(238.97046875);
tone(pinSound, 391, 361.519427083);
delay(361.519427083);
delay(232.843020833);
tone(pinSound, 391, 367.646875);
delay(367.646875);
delay(202.20578125);
tone(pinSound, 311, 287.990052083);
delay(287.990052083);
delay(147.05875);
tone(pinSound, 466, 79.6568229167);
delay(79.6568229167);
delay(73.529375);
tone(pinSound, 391, 416.666458333);
delay(416.666458333);
delay(165.44109375);
tone(pinSound, 311, 287.990052083);
delay(287.990052083);
delay(165.44109375);
tone(pinSound, 466, 85.7842708333);
delay(85.7842708333);
delay(55.14703125);
tone(pinSound, 391, 747.548645833);
delay(747.548645833);
delay(422.79390625);
tone(pinSound, 587, 373.774322917);
delay(373.774322917);
delay(220.588125);
tone(pinSound, 587, 367.646875);
delay(367.646875);
delay(208.333229167);
tone(pinSound, 587, 386.02921875);
delay(386.02921875);
delay(226.715572917);
tone(pinSound, 622, 257.3528125);
delay(257.3528125);
delay(165.44109375);
tone(pinSound, 466, 91.91171875);
delay(91.91171875);
delay(73.529375);
tone(pinSound, 369, 416.666458333);
delay(416.666458333);
delay(153.186197917);
tone(pinSound, 311, 251.225364583);
delay(251.225364583);
delay(177.695989583);
tone(pinSound, 466, 85.7842708333);
delay(85.7842708333);
delay(79.6568229167);
tone(pinSound, 391, 416.666458333);
}
/* inicio do lop principal */
void loop() {
/*se o botao for apertado e a variavel i estiver baixa (0) entao toca a musica de
mario bros e leva i para 1 (alto) */
if( digitalRead(buttonPin) == LOW && i == LOW){
digitalWrite( ledPin , HIGH);
delay(300);
digitalWrite(ledPin , LOW);
marioBros_theme();
delay(150);
i=1;
}
/* se o botao for apertado e a variavel i estiver alta (1) entao toca a musica de
star wars e leva i para O (baixo)*/
if( digitalRead(buttonPin) == LOW && i == HIGH){
digitalWrite( ledPin , HIGH);
delay(300);
digitalWrite(ledPin , LOW);
starWars_theme();
delay(150);
i=0;
}
}