Arduino Remote-Controlled Songs

Arduino Remote-Controlled Songs

IR receiver and a buzzer.

  • 632 views
  • 0 comments
  • 2 respects

Components and supplies

About this project

TIMER BUG FIXING

Go inside the "IRRemote.h" library folder and then make changes as shown in the image below

Basically, you have to delete // on timer 2 and enable timer 1 instead

Code

CodeArduino
#include "IRremote.h"
#include <LiquidCrystal.h>
#define LED_ON 10
#define LED_OFF 8
int receiver = 13; 
int pointer;
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
IRrecv irrecv(receiver);     
decode_results results; 
String waiting[] = {
"1-Pirati Caraibi",
"2-Super Mario",
"3-Harry Potter",
};
//--------------------------------------------------------------------------------    
//PIRATI DEI CARAIBI
const int buzzer = 6;
const int songspeed = 1.5;
#define NOTE_C4  262  
#define NOTE_D4  294
#define NOTE_E4  330
#define NOTE_F4  349
#define NOTE_G4  392
#define NOTE_A4  440
#define NOTE_B4  494
#define NOTE_C5  523
#define NOTE_D5  587
#define NOTE_E5  659
#define NOTE_F5  698
#define NOTE_G5  784
#define NOTE_A5  880
#define NOTE_B5  988

int notes_song_1[] = {

   NOTE_E4, NOTE_G4, NOTE_A4, NOTE_A4, 0, 
   NOTE_A4, NOTE_B4, NOTE_C5, NOTE_C5, 0, 
   NOTE_C5, NOTE_D5, NOTE_B4, NOTE_B4, 0,
   NOTE_A4, NOTE_G4, NOTE_A4, 0,
   
   NOTE_E4, NOTE_G4, NOTE_A4, NOTE_A4, 0, 
   NOTE_A4, NOTE_B4, NOTE_C5, NOTE_C5, 0, 
   NOTE_C5, NOTE_D5, NOTE_B4, NOTE_B4, 0,
   NOTE_A4, NOTE_G4, NOTE_A4, 0,
   
   NOTE_E4, NOTE_G4, NOTE_A4, NOTE_A4, 0, 
   NOTE_A4, NOTE_C5, NOTE_D5, NOTE_D5, 0, 
   NOTE_D5, NOTE_E5, NOTE_F5, NOTE_F5, 0,
   NOTE_E5, NOTE_D5, NOTE_E5, NOTE_A4, 0,
   
   NOTE_A4, NOTE_B4, NOTE_C5, NOTE_C5, 0, 
   NOTE_D5, NOTE_E5, NOTE_A4, 0, 
   NOTE_A4, NOTE_C5, NOTE_B4, NOTE_B4, 0,
   NOTE_C5, NOTE_A4, NOTE_B4, 0,

    NOTE_A4, NOTE_A4, /*

   NOTE_A4, NOTE_B4, NOTE_C5, NOTE_C5, 0, 
   NOTE_C5, NOTE_D5, NOTE_B4, NOTE_B4, 0,
   NOTE_A4, NOTE_G4, NOTE_A4, 0,

   NOTE_E4, NOTE_G4, NOTE_A4, NOTE_A4, 0, 
   NOTE_A4, NOTE_B4, NOTE_C5, NOTE_C5, 0, 
   NOTE_C5, NOTE_D5, NOTE_B4, NOTE_B4, 0,
   NOTE_A4, NOTE_G4, NOTE_A4, 0,
   
   NOTE_E4, NOTE_G4, NOTE_A4, NOTE_A4, 0, 
   NOTE_A4, NOTE_C5, NOTE_D5, NOTE_D5, 0, 
   NOTE_D5, NOTE_E5, NOTE_F5, NOTE_F5, 0,
   NOTE_E5, NOTE_D5, NOTE_E5, NOTE_A4, 0,
   
   NOTE_A4, NOTE_B4, NOTE_C5, NOTE_C5, 0, 
   NOTE_D5, NOTE_E5, NOTE_A4, 0, 
   NOTE_A4, NOTE_C5, NOTE_B4, NOTE_B4, 0,
   NOTE_C5, NOTE_A4, NOTE_B4, 0,*/
};

int duration_song_1[] = { 

  125, 125, 250, 125, 125, 
  125, 125, 250, 125, 125,
  125, 125, 250, 125, 125,
  125, 125, 375, 125, 
  
  125, 125, 250, 125, 125, 
  125, 125, 250, 125, 125,
  125, 125, 250, 125, 125,
  125, 125, 375, 125, 
  
  125, 125, 250, 125, 125, 
  125, 125, 250, 125, 125,
  125, 125, 250, 125, 125,
  125, 125, 125, 250, 125,

  125, 125, 250, 125, 125, 
  250, 125, 250, 125, 
  125, 125, 250, 125, 125,
  125, 125, 375, 375,

  250, 125,

  125, 125, 250, 125, 125,
  125, 125, 250, 125, 125,
  125, 125, 375, 125, 
  
  125, 125, 250, 125, 125, 
  125, 125, 250, 125, 125,
  125, 125, 250, 125, 125,
  125, 125, 375, 125, 
  
  125, 125, 250, 125, 125, 
  125, 125, 250, 125, 125,
  125, 125, 250, 125, 125,
  125, 125, 125, 250, 125,

  125, 125, 250, 125, 125, 
  250, 125, 250, 125, 
  125, 125, 250, 125, 125,
  125, 125, 375, 375,
 };
//FINE
//--------------------------------------------------------------------------------  
//--------------------------------------------------------------------------------
//HARRY POTTER
struct MusicStruct {
  int A = 550;
  int As = 582;
  int B = 617;
  int C = 654;
  int Cs = 693;
  int D = 734;
  int Ds = 777;
  int E = 824;
  int F = 873;
  int Fs = 925;
  int G = 980;
  int Gs = 1003;
  int A2 = 1100;
  int A2s = 1165;
  int B2 = 1234;
  int C3 = 1308;
  int C3s = 1385;
  int D3 = 1555;
}Music;

struct LengthStruct {
  float half = 0.5;
  float one = 1.0;
  float one_half = 1.5;
  float two = 2.0;
  float two_half = 2.5;
}Length;

int tempo = 400;
void setTone(int pin, int note, int duration) {
  tone(pin, note, duration);
  delay(duration);
  noTone(pin);
}
//FINE

void setup(){
  lcd.begin(16, 2);
  lcd.setCursor(0, 0);
  lcd.print("Stato");
  lcd.setCursor(0, 1);
  lcd.print("Spento");
  pinMode(LED_ON, OUTPUT);
  pinMode(LED_OFF, OUTPUT);
  Serial.begin(9600);
  Serial.println("IR Receiver Button Decode"); 
  irrecv.enableIRIn(); // Start the receiver
  digitalWrite(LED_OFF,HIGH);
}


void loop(){
  if (irrecv.decode(&results)) 

  {
    translateIR(); 
    irrecv.resume(); 
  }  
}


void translateIR() {

  switch(results.value)

  {

  case 0xFFA25D:{
    Serial.println("SPEGNI/ACCENDI");
    if(digitalRead(LED_OFF) == HIGH){
    digitalWrite(LED_ON, HIGH);
    digitalWrite(LED_OFF,LOW);
    lcd.setCursor(0,1);
    lcd.print("Acceso");
    delay(1500);
    break;
    }else{
    digitalWrite(LED_ON, LOW); 
    digitalWrite(LED_OFF,HIGH); 
    lcd.setCursor(0,1);
    lcd.print("Spento");
    break;
    }
  }
  case 0xFF629D:Serial.println("VOLUME+");    break;
  case 0xFF22DD:{
  if(pointer == 1){
  pointer == 3;
  HarryPotter();
  break;
  }
  if(pointer == 2){
  pointer == 1;
  PiratiDeiCaraibi();
  break;
  }
  if(pointer == 3){
  pointer == 2;
  SuperMarioTheme();
  break;
  }
  Serial.println("LEFT");   
  break;
  }
  case 0xFF02FD:{
    if(digitalRead(LED_ON)==HIGH){
    for(int i = 0; i<3; i++)
    {
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print("Canzoni:");
    lcd.setCursor(0,1);
    lcd.print(waiting[i]);
    delay(2500);
  }
  lcd.clear();
  lcd.setCursor(0,0);
  lcd.print("Stato");
  lcd.setCursor(0,1);
  lcd.print("Acceso");
  
    }
 Serial.println("PLAY");

  break;}
  case 0xFFC23D:{
  if(pointer == 1){
  pointer == 2;
  SuperMarioTheme();
  break;
  }
  if(pointer == 2){
  pointer == 3;
  HarryPotter();
  break;
  }
  if(pointer == 3){
  pointer == 1;
  PiratiDeiCaraibi();
  break;
  }

  Serial.println("RIGHT");   
  break;
  }
  case 0xFFE01F: Serial.println("DOWN");    break;
  case 0xFFA857: Serial.println("VOL- ");    break;
  case 0xFF906F: Serial.println("UP");    break;
  case 0xFF6897: Serial.println("0");    break;
  case 0xFF9867: Serial.println("EQ");    break;
  case 0xFFB04F: Serial.println("ST/REPT");    break;
  case 0xFF30CF:{
  if(digitalRead(LED_OFF) == LOW){
  PiratiDeiCaraibi();
  break;
  }
  else{
  break;
  }
  }
  case 0xFF18E7:{
  if(digitalRead(LED_OFF) == LOW){
  SuperMarioTheme(); 
  break;
  }
  else{
  break;
  }
  }
  case 0xFF7A85:{
  if(digitalRead(LED_OFF) == LOW){
  HarryPotter();
  break;
  }
  else{
  break;
  }
  }
  case 0xFF10EF: Serial.println("4");    break;
  case 0xFF38C7: Serial.println("5");    break;
  case 0xFF5AA5: Serial.println("6");break;  
  case 0xFF42BD: Serial.println("7");    break;
  case 0xFF4AB5: Serial.println("8");    break;
  case 0xFF52AD: Serial.println("9");break;  

  default: 
    Serial.println(" other button   ");

  }

  delay(500); 


} 


void PiratiDeiCaraibi(){
  pointer = 1;
  lcd.clear();
  Serial.println("Suonando.. Pirati dei Caraibi"); 
  lcd.setCursor(0, 0);
  lcd.print("Musica");
  lcd.setCursor(0, 1);
  lcd.print("Pirati Caraibi");
  for (int i=0;i<70;i++){             
  int wait = duration_song_1[i] * songspeed;
  tone(buzzer,notes_song_1[i],wait);         
  delay(wait);}   

}
void SuperMarioTheme(){
  pointer = 2;
  lcd.clear();
  Serial.println("Suonando.. Super Mario Theme"); 
  lcd.setCursor(0, 0);
  lcd.print("Musica");
  lcd.setCursor(0, 1);
  lcd.print("Super Mario");
tone(buzzer, 660 ,100);  
delay ( 150);  
tone(buzzer, 660 ,100);  
delay ( 300);  
tone(buzzer, 660 ,100);  
delay ( 300);  
tone(buzzer, 510 ,100);  
delay ( 100);  
tone(buzzer, 660 ,100);  
delay ( 300);  
tone(buzzer, 770 ,100);  
delay ( 550);  
tone(buzzer, 380 ,100);  
delay ( 575);  
  
tone(buzzer, 510 ,100);  
delay ( 450);  
tone(buzzer, 380 ,100);  
delay ( 400);  
tone(buzzer, 320 ,100);  
delay ( 500);  
tone(buzzer, 440 ,100);  
delay ( 300);  
tone(buzzer, 480 ,80);  
delay ( 330);  
tone(buzzer, 450 ,100);  
delay ( 150);  
tone(buzzer, 430 ,100);  
delay ( 300);  
tone(buzzer, 380 ,100);  
delay ( 200);  
tone(buzzer, 660 ,80);  
delay ( 200);  
tone(buzzer, 760 ,50);  
delay ( 150);  
tone(buzzer, 860 ,100);  
delay ( 300);  
tone(buzzer, 700 ,80);  
delay ( 150);  
tone(buzzer, 760 ,50);  
delay ( 350);  
tone(buzzer, 660 ,80);  
delay ( 300);  
tone(buzzer, 520 ,80);  
delay ( 150);  
tone(buzzer, 580 ,80);  
delay ( 150);  
tone(buzzer, 480 ,80);  
delay ( 500);  
  
tone(buzzer, 510 ,100);  
delay ( 450);  
tone(buzzer, 380 ,100);  
delay ( 400);  
tone(buzzer, 320 ,100);  
delay ( 500);  
tone(buzzer, 440 ,100);  
delay ( 300);  
tone(buzzer, 480 ,80);  
delay ( 330);  
tone(buzzer, 450 ,100);  
delay ( 150);  
tone(buzzer, 430 ,100);  
delay ( 300);  
tone(buzzer, 380 ,100);  
delay ( 200);  
tone(buzzer, 660 ,80);  
delay ( 200);  
tone(buzzer, 760 ,50);  
delay ( 150);  
tone(buzzer, 860 ,100);  
delay ( 300);  
tone(buzzer, 700 ,80);  
delay ( 150);  
tone(buzzer, 760 ,50);  
delay ( 350);  
tone(buzzer, 660 ,80);  
delay ( 300);  
tone(buzzer, 520 ,80);  
delay ( 150);  
tone(buzzer, 580 ,80);  
delay ( 150);  
tone(buzzer, 480 ,80);  
delay ( 500);  
  
tone(buzzer, 500 ,100);  
delay ( 300);  
  
tone(buzzer, 760 ,100);  
delay ( 100);  
tone(buzzer, 720 ,100);  
delay ( 150);  
tone(buzzer, 680 ,100);  
delay ( 150);  
tone(buzzer, 620 ,150);  
delay ( 300);  
  
tone(buzzer, 650 ,150);  
delay ( 300);  
tone(buzzer, 380 ,100);  
delay ( 150);  
tone(buzzer, 430 ,100);  
delay ( 150);  
  
tone(buzzer, 500 ,100);  
delay ( 300);  
tone(buzzer, 430 ,100);  
delay ( 150);  
tone(buzzer, 500 ,100);  
delay ( 100);  
tone(buzzer, 570 ,100);  
delay ( 220);  
  
tone(buzzer, 500 ,100);  
delay ( 300);  
  
tone(buzzer, 760 ,100);  
delay ( 100);  
tone(buzzer, 720 ,100);  
delay ( 150);  
tone(buzzer, 680 ,100);  
delay ( 150);  
tone(buzzer, 620 ,150);  
delay ( 300);  
  
tone(buzzer, 650 ,200);  
delay ( 300);  
  
tone(buzzer, 1020 ,80);  
delay ( 300);  
tone(buzzer, 1020 ,80);  
delay ( 150);  
tone(buzzer, 1020 ,80);  
delay ( 300);  
  
tone(buzzer, 380 ,100);  
delay ( 300);  
tone(buzzer, 500 ,100);  
delay ( 300);  
  
tone(buzzer, 760 ,100);  
delay ( 100);  
tone(buzzer, 720 ,100);  
delay ( 150);  
tone(buzzer, 680 ,100);  
delay ( 150);  
tone(buzzer, 620 ,150);  
delay ( 300);  
  
tone(buzzer, 650 ,150);  
delay ( 300);  
tone(buzzer, 380 ,100);  
delay ( 150);  
tone(buzzer, 430 ,100);  
delay ( 150);  
  
tone(buzzer, 500 ,100);  
delay ( 300);  
tone(buzzer, 430 ,100);  
delay ( 150);  
tone(buzzer, 500 ,100);  
delay ( 100);  
tone(buzzer, 570 ,100);  
delay ( 420);  
  
tone(buzzer, 585 ,100);  
delay ( 450);  
  
tone(buzzer, 550 ,100);  
delay ( 420);  
  
tone(buzzer, 500 ,100);  
delay ( 360);  
/*
tone(buzzer, 380 ,100);  
delay ( 300);  
tone(buzzer, 500 ,100);  
delay ( 300);  
tone(buzzer, 500 ,100);  
delay ( 150);  
tone(buzzer, 500 ,100);  
delay ( 300);  
  
tone(buzzer, 500 ,100);  
delay ( 300);  
  
tone(buzzer, 760 ,100);  
delay ( 100);  
tone(buzzer, 720 ,100);  
delay ( 150);  
tone(buzzer, 680 ,100);  
delay ( 150);  
tone(buzzer, 620 ,150);  
delay ( 300);  
  
tone(buzzer, 650 ,150);  
delay ( 300);  
tone(buzzer, 380 ,100);  
delay ( 150);  
tone(buzzer, 430 ,100);  
delay ( 150);  
  
tone(buzzer, 500 ,100);  
delay ( 300);  
tone(buzzer, 430 ,100);  
delay ( 150);  
tone(buzzer, 500 ,100);  
delay ( 100);  
tone(buzzer, 570 ,100);  
delay ( 220);  
  
tone(buzzer, 500 ,100);  
delay ( 300);  
  
tone(buzzer, 760 ,100);  
delay ( 100);  
tone(buzzer, 720 ,100);  
delay ( 150);  
tone(buzzer, 680 ,100);  
delay ( 150);  
tone(buzzer, 620 ,150);  
delay ( 300);  
  
tone(buzzer, 650 ,200);  
delay ( 300);  
  
tone(buzzer, 1020 ,80);  
delay ( 300);  
tone(buzzer, 1020 ,80);  
delay ( 150);  
tone(buzzer, 1020 ,80);  
delay ( 300);  
  
tone(buzzer, 380 ,100);  
delay ( 300);  
tone(buzzer, 500 ,100);  
delay ( 300);  
  
tone(buzzer, 760 ,100);  
delay ( 100);  
tone(buzzer, 720 ,100);  
delay ( 150);  
tone(buzzer, 680 ,100);  
delay ( 150);  
tone(buzzer, 620 ,150);  
delay ( 300);  
  
tone(buzzer, 650 ,150);  
delay ( 300);  
tone(buzzer, 380 ,100);  
delay ( 150);  
tone(buzzer, 430 ,100);  
delay ( 150);  
  
tone(buzzer, 500 ,100);  
delay ( 300);  
tone(buzzer, 430 ,100);  
delay ( 150);  
tone(buzzer, 500 ,100);  
delay ( 100);  
tone(buzzer, 570 ,100);  
delay ( 420);  
  
tone(buzzer, 585 ,100);  
delay ( 450);  
  
tone(buzzer, 550 ,100);  
delay ( 420);  
  
tone(buzzer, 500 ,100);  
delay ( 360);  
  
tone(buzzer, 380 ,100);  
delay ( 300);  
tone(buzzer, 500 ,100);  
delay ( 300);  
tone(buzzer, 500 ,100);  
delay ( 150);  
tone(buzzer, 500 ,100);  
delay ( 300);  
  
tone(buzzer, 500 ,60);  
delay ( 150);  
tone(buzzer, 500 ,80);  
delay ( 300);  
tone(buzzer, 500 ,60);  
delay ( 350);  
tone(buzzer, 500 ,80);  
delay ( 150);  
tone(buzzer, 580 ,80);  
delay ( 350);  
tone(buzzer, 660 ,80);  
delay ( 150);  
tone(buzzer, 500 ,80);  
delay ( 300);  
tone(buzzer, 430 ,80);  
delay ( 150);  
tone(buzzer, 380 ,80);  
delay ( 600);  
  
tone(buzzer, 500 ,60);  
delay ( 150);  
tone(buzzer, 500 ,80);  
delay ( 300);  
tone(buzzer, 500 ,60);  
delay ( 350);  
tone(buzzer, 500 ,80);  
delay ( 150);  
tone(buzzer, 580 ,80);  
delay ( 150);  
tone(buzzer, 660 ,80);  
delay ( 550);  
  
tone(buzzer, 870 ,80);  
delay ( 325);  
tone(buzzer, 760 ,80);  
delay ( 600);  
  
tone(buzzer, 500 ,60);  
delay ( 150);  
tone(buzzer, 500 ,80);  
delay ( 300);  
tone(buzzer, 500 ,60);  
delay ( 350);  
tone(buzzer, 500 ,80);  
delay ( 150);  
tone(buzzer, 580 ,80);  
delay ( 350);  
tone(buzzer, 660 ,80);  
delay ( 150);  
tone(buzzer, 500 ,80);  
delay ( 300);  
tone(buzzer, 430 ,80);  
delay ( 150);  
tone(buzzer, 380 ,80);  
delay ( 600);  
  
tone(buzzer, 660 ,100);  
delay ( 150);  
tone(buzzer, 660 ,100);  
delay ( 300);  
tone(buzzer, 660 ,100);  
delay ( 300);  
tone(buzzer, 510 ,100);  
delay ( 100);  
tone(buzzer, 660 ,100);  
delay ( 300);  
tone(buzzer, 770 ,100);  
delay ( 550);  
tone(buzzer, 380 ,100);  
delay ( 575);  
*/
}                   

void HarryPotter(){
  pointer = 3;
  lcd.clear();
  Serial.println("Suonando..Harry Potter Theme"); 
  lcd.setCursor(0, 0);
  lcd.print("Musica");
  lcd.setCursor(0, 1);
  lcd.print("Harry Potter");
  setTone(buzzer, Music.B, tempo * Length.one);
  setTone(buzzer, Music.E, tempo * Length.one_half);
  setTone(buzzer, Music.G, tempo * Length.half);
  setTone(buzzer, Music.F, tempo * Length.one);
  setTone(buzzer, Music.E, tempo * Length.two);
  setTone(buzzer, Music.B2, tempo * Length.one);
  setTone(buzzer, Music.A2, tempo * Length.two_half);
  setTone(buzzer, Music.Fs, tempo * Length.two_half);
  
  setTone(buzzer, Music.E, tempo * Length.one_half);
  setTone(buzzer, Music.G, tempo * Length.half);
  setTone(buzzer, Music.F, tempo * Length.one);
  setTone(buzzer, Music.Ds, tempo * Length.two);
  setTone(buzzer, Music.F, tempo * Length.one);
  setTone(buzzer, Music.B, tempo * Length.two_half);
}

Schematics

Circuit
WARNING
USE 3.3 V NOT 5V FOR IR RECEIVER

ATTENZIONE
UTILIZZARE 3.3V E NON 5V PER IL RICEVITORE IR
Circuit chkvc7hg3e

Comments

Similar projects you might like

Electronic Piano Keyboard With Preset Songs

Project tutorial by Lindsay Fox

  • 82,266 views
  • 65 comments
  • 163 respects

Piezo Christmas Songs

Project showcase by joshi

  • 18,722 views
  • 19 comments
  • 50 respects

Rickroll Box

Project showcase by slagestee

  • 6,831 views
  • 1 comment
  • 14 respects

Healthcare Skin Pressure Detector

Project tutorial by David Escobar

  • 6,688 views
  • 3 comments
  • 20 respects

How to Make a Siren Using Arduino

by coding_killer

  • 3,641 views
  • 4 comments
  • 11 respects
Add projectSign up / Login