Widget Ads

Arduino

Arduino Nano Memainkan Lagu dari Microsd


Dengan teknologi yang semakin berkembang banyak hal yang sebelumnya sulit dilakukan menjadi mudah untuk dilakukan karena banyak sekali alat bantu yang telah diciptakan. Salah satunya adalah arduino, dulu untuk memainkan mp3 menggunakan microcontroller sangatlah sulit karena kode yang rumit juga harus menggunakan berbagai ic tambahan yang sulit didapatkan dan harga yang sangat mahal.
Kini untuk memainkan sebuah lagu pada mp3 tidaklah sesulit dulu. Telah hadir modul mp3 yang dapat dikendalikan melalui perintah serial. Dan kabar baik lainnya adalah arduino mempunyai banyak port serial virtual untuk mengendalikannya.
Pada percobaan kali ini akan dibuat suatu alat yang dapat memainkan mp3 dengan variasi sebanyak 36 lagu. Percobaan ini sebenarnya sudah dilakukan sejak 6 Mar 2015 dan sudah diunggah di youtube pada alamat : https://www.youtube.com/watch?v=BbeKKFTs2YI karena banyak yang komentar maka artikel ini untuk menjelaskan video tersebut.
Alat ini menggunakan beberapa komponen, diantaranya :
1. Arduino Nano
2. Modul mp3 DF-Miniplayer
3. Tombol matrix 6x6
4. Komponen Pelengkap (kabel, soket, dsb)
Mempunyai 2 cara kerja dasar, yaitu :
1. Membaca tombol matrix
2. Memainkan lagu mp3

Source code program - Membaca tombol matrix :

int inRow1 = 14;
int inRow2 = 15;
int inRow3 = 16;
int inRow4 = 17;
int inRow5 = 18;
int inRow6 = 19;
int keycol1 = 13; 
int keycol2 = 8; 
int keycol3 = 9; 
int keycol4 = 10; 
int keycol5 = 11; 
int keycol6 = 12; 
int val=0;
int keyx=0;

void setup () {
	pinMode(inRow1, INPUT); 
	pinMode(inRow2, INPUT);
	pinMode(inRow3, INPUT);
	pinMode(inRow4, INPUT);
	pinMode(inRow5, INPUT);
	pinMode(inRow6, INPUT);
	pinMode(keycol1, OUTPUT);
	pinMode(keycol2, OUTPUT);
	pinMode(keycol3, OUTPUT);
	pinMode(keycol4, OUTPUT);
	pinMode(keycol5, OUTPUT);
	pinMode(keycol6, OUTPUT);
	Serial.begin (9600);
	Serial.println("Ready");
}

void loop () {  
  keypads();
  if (keyx>0)
  {
	  Serial.print("Nilai tombol : ");
	  Serial.println(keyx);
	  delay(200);
  }
}

void keypads()
{
  keyx=0;
  
  //kolom 1
  digitalWrite(keycol1, 0);
  digitalWrite(keycol2, 1);
  digitalWrite(keycol3, 1);
  digitalWrite(keycol4, 1);
  digitalWrite(keycol5, 1);
  digitalWrite(keycol6, 1);
  digitalWrite(inRow1, 1);
  digitalWrite(inRow2, 1);
  digitalWrite(inRow3, 1);
  digitalWrite(inRow4, 1);
  digitalWrite(inRow5, 1);
  digitalWrite(inRow6, 1);
  val = digitalRead(inRow1);
  if (val==0)
    {
    keyx=1;
    return;
    }
  val = digitalRead(inRow2);
  if (val==0)
    {
    keyx=2;
    return;
    }
  val = digitalRead(inRow3);
  if (val==0)
    {
    keyx=3;
    return;
    }
  val = digitalRead(inRow4);
  if (val==0)
    {
    keyx=4;
    return;
    }
  val = digitalRead(inRow5);
  if (val==0)
    {
    keyx=5;
    return;
    }
  val = digitalRead(inRow6);
  if (val==0)
    {
    keyx=6;
    return;
    }
  delay(200);
  
  //kolom 2
  digitalWrite(keycol1, 1);
  digitalWrite(keycol2, 0);
  digitalWrite(keycol3, 1);
  digitalWrite(keycol4, 1);
  digitalWrite(keycol5, 1);
  digitalWrite(keycol6, 1);
  digitalWrite(inRow1, 1);
  digitalWrite(inRow2, 1);
  digitalWrite(inRow3, 1);
  digitalWrite(inRow4, 1);
  digitalWrite(inRow5, 1);
  digitalWrite(inRow6, 1);
  val = digitalRead(inRow1);
  if (val==0)
    {
    keyx=7;
    return;
    }
  val = digitalRead(inRow2);
  if (val==0)
    {
    keyx=8;
    return;
    }
  val = digitalRead(inRow3);
  if (val==0)
    {
    keyx=9;
    return;
    }
  val = digitalRead(inRow4);
  if (val==0)
    {
    keyx=10;
    return;
    }
  val = digitalRead(inRow5);
  if (val==0)
    {
    keyx=11;
    return;
    }
  val = digitalRead(inRow6);
  if (val==0)
    {
    keyx=12;
    return;
    }
  delay(200);
  
  //kolom 3
  digitalWrite(keycol1, 1);
  digitalWrite(keycol2, 1);
  digitalWrite(keycol3, 0);
  digitalWrite(keycol4, 1);
  digitalWrite(keycol5, 1);
  digitalWrite(keycol6, 1);
  digitalWrite(inRow1, 1);
  digitalWrite(inRow2, 1);
  digitalWrite(inRow3, 1);
  digitalWrite(inRow4, 1);
  digitalWrite(inRow5, 1);
  digitalWrite(inRow6, 1);
  val = digitalRead(inRow1);
  if (val==0)
    {
    keyx=13;
    return;
    }
  val = digitalRead(inRow2);
  if (val==0)
    {
    keyx=14;
    return;
    }
  val = digitalRead(inRow3);
  if (val==0)
    {
    keyx=15;
    return;
    }
  val = digitalRead(inRow4);
  if (val==0)
    {
    keyx=16;
    return;
    }
  val = digitalRead(inRow5);
  if (val==0)
    {
    keyx=17;
    return;
    }
  val = digitalRead(inRow6);
  if (val==0)
    {
    keyx=18;
    return;
    }
  delay(200);
  
  //kolom 4
  digitalWrite(keycol1, 1);
  digitalWrite(keycol2, 1);
  digitalWrite(keycol3, 1);
  digitalWrite(keycol4, 0);
  digitalWrite(keycol5, 1);
  digitalWrite(keycol6, 1);
  digitalWrite(inRow1, 1);
  digitalWrite(inRow2, 1);
  digitalWrite(inRow3, 1);
  digitalWrite(inRow4, 1);
  digitalWrite(inRow5, 1);
  digitalWrite(inRow6, 1);
  val = digitalRead(inRow1);
  if (val==0)
    {
    keyx=19;
    return;
    }
  val = digitalRead(inRow2);
  if (val==0)
    {
    keyx=20;
    return;
    }
  val = digitalRead(inRow3);
  if (val==0)
    {
    keyx=21;
    return;
    }
  val = digitalRead(inRow4);
  if (val==0)
    {
    keyx=22;
    return;
    }
  val = digitalRead(inRow5);
  if (val==0)
    {
    keyx=23;
    return;
    }
  val = digitalRead(inRow6);
  if (val==0)
    {
    keyx=24;
    return;
    }
  delay(200);
  
  //kolom 5
  digitalWrite(keycol1, 1);
  digitalWrite(keycol2, 1);
  digitalWrite(keycol3, 1);
  digitalWrite(keycol4, 1);
  digitalWrite(keycol5, 0);
  digitalWrite(keycol6, 1);
  digitalWrite(inRow1, 1);
  digitalWrite(inRow2, 1);
  digitalWrite(inRow3, 1);
  digitalWrite(inRow4, 1);
  digitalWrite(inRow5, 1);
  digitalWrite(inRow6, 1);
  val = digitalRead(inRow1);
  if (val==0)
    {
    keyx=25;
    return;
    }
  val = digitalRead(inRow2);
  if (val==0)
    {
    keyx=26;
    return;
    }
  val = digitalRead(inRow3);
  if (val==0)
    {
    keyx=27;
    return;
    }
  val = digitalRead(inRow4);
  if (val==0)
    {
    keyx=28;
    return;
    }
  val = digitalRead(inRow5);
  if (val==0)
    {
    keyx=29;
    return;
    }
  val = digitalRead(inRow6);
  if (val==0)
    {
    keyx=30;
    return;
    }
  delay(200);
  
  //kolom 6
  digitalWrite(keycol1, 1);
  digitalWrite(keycol2, 1);
  digitalWrite(keycol3, 1);
  digitalWrite(keycol4, 1);
  digitalWrite(keycol5, 1);
  digitalWrite(keycol6, 0);
  digitalWrite(inRow1, 1);
  digitalWrite(inRow2, 1);
  digitalWrite(inRow3, 1);
  digitalWrite(inRow4, 1);
  digitalWrite(inRow5, 1);
  digitalWrite(inRow6, 1);
  val = digitalRead(inRow1);
  if (val==0)
    {
    keyx=31;
    return;
    }
  val = digitalRead(inRow2);
  if (val==0)
    {
    keyx=32;
    return;
    }
  val = digitalRead(inRow3);
  if (val==0)
    {
    keyx=33;
    return;
    }
  val = digitalRead(inRow4);
  if (val==0)
    {
    keyx=34;
    return;
    }
  val = digitalRead(inRow5);
  if (val==0)
    {
    keyx=35;
    return;
    }
  val = digitalRead(inRow6);
  if (val==0)
    {
    keyx=36;
    return;
    }
  delay(200);
}
Source code program - Memainkan lagu mp3 :
#include ‹SoftwareSerial.h›
#include ‹DFPlayer_Mini_Mp3.h›
SoftwareSerial mySerial(3, 2); // RX, TX
int keyx=0;

void setup () {
	Serial.begin (9600);
	mySerial.begin (9600);
	mp3_set_serial (mySerial);
	mp3_reset();
	delay (400);
	mp3_set_volume (20); 
	delay (400);  
	delay(1000); 
	Serial.println("Mp3 Ready");
}

void loop () {
  for (keyx=1;keyx<=36;keyx++)
  {  
  Serial.println(keyx);
  mp3_play(keyx);
  delay(2000);
  }
}

Untuk cara pengisian lagu, pin out modul, syntax, dan library dapat dibaca di link yang ada pada modul DF-Playermini di daftar komponen bagian atas artikel.
Untuk sambungan yang dipakai pada alat ini adalah :
1. Pin GND Modul DF-PlayerMini --- Pin GND Arduino
2. Pin TX Modul DF-PlayerMini --- Pin 3 Arduino
3. Pin RX Modul DF-PlayerMini --- Pin 2 Arduino
4. Pin SPK_1 Modul DF-PlayerMini --- Pin + SPK
5. Pin SPK_2 Modul DF-PlayerMini --- Pin - SPK
6. Pin VCC Modul DF-PlayerMini --- Pin VCC Arduino

Baca Juga

1 komentar

  1. Hudan

    Assalmualikum bang itu gimna cara penggabungan sketch pembacaan keypad dan pemutar lagu nya

TULISKAN KOMENTAR KAMU

Wajib diisi (No.hp akan kami rahasiakan)*

Nama *

Alamat *

No.hp *