Tutorial Belajar Menulis dan Membaca EEPROM Arduino


Tutorial belajar Arduino kali ini akan membahas mengenai menyimpan data ke EEPROM lalu kemudian membacanya. Setelah data disimpan di EEPROM, nilai yang ada disana dapat dilihat dengan menggunakan Serial Monitor pada Arduino IDE. Penulisan data pada EEPROM akan menggunakan input data analog pembacaan dari potentiometer yang terhubung ke pin analog Arduino A3. Untuk wiring diagram tersebut, tampak seperti pada gambar.

<img src="arduino_adc.png" alt="arduino_adc">


Dengan satu pin potentiometer ke Vcc, satu ke Ground, dan satu lagi ke pin analog Arduino A3. Untuk source code (sketch) yang digunakan dalam menuliskan data ke EEPROM Arduino ialah sebagai berikut.

/*
Program menyimpan nilai ADC
ke EEPROM

Loki Lang
*/

#include<EEPROM.h>

int address = 0;

void setup()
{
}

void loop()
{
  int lang = analogRead(A3)/4;
  EEPROM.write(address, lang);
  address += 1;
  if(address == 512)
  {
    address = 0;
  }
  delay(100);
}

Adapun penjelasan untuk source code (sketch) program Arduino menuliskan data ke EEPROM ialah sebagai berikut.
  • Agar library EEPROM dapat digunakan perlu mencakup file header EEPROM.h terlebih dahulu
  • EEPROM board Arduino Uno memiliki alamat dari 0 hingga 511 total ada 512
  • Variable address merupakan alamat EEPROM tempat menyimpan data, sedangkan variable lang ialah nilai yang akan disimpan pada alamat EEPROM
  • Nilai variable lang didapat dari pembacaan nilai ADC pada pin analog Arduino A3
  • Nilai ADC (10 bit, maximum 1023) yang terbaca dibagi dengan 4, karena nilai yang dapat disimpan dalam sebuah alamat EEPROM Arduino maximum hanya 8 bit, dengan nilai dari 0 hingga 255
  • Bagian utama dalam menyimpan data ke EEPROM pada instruksi EEPROM.write(address, lang), yang mana nilai variable lang akan disimpan pada EEPROM dengan alamat address
  • Setelah data disimpan pada alamat address, dilakukan increment address untuk digunakan sebagai tempat penyimpanan data selanjutnya
  • Proses increment alamat address tersebut dilakukan hingga mencapai alamat ke 511, saat mencapai pencacahan increment 512, alamat address akan dikembalikan ke alamat awal yakni kembali dari 0
Setelah selesai menuliskan data ke alamat EEPROM, selanjutnya beranjak ke tahap selanjutnya yakni membaca nilai yang ada pada EEPROM mulai dari alamat 0 hingga 511. Untuk menampilkan data ke Serial Monitor Arduino IDE diperlukan jalur komunikasi serial antara Arduino dengan komputer. Berikut adalah source code (sketch) yang digunakan untuk membaca data EEPROM di Arduino dan menampilkannya di Serial Monitor.

/*
Program membaca nilai ADC
yang disimpan di EEPROM

Loki Lang
*/

#include<EEPROM.h>

int address = 0;
byte lang;

void setup()
{
  Serial.begin(9600);
}

void loop()
{
  lang = EEPROM.read(address);
  Serial.print(address);
  Serial.print("\t");
  Serial.print(lang, DEC);
  Serial.println();

  address += 1;
  if(address == 512)
  {
    address = 0;
  }
  delay(500);
}


Adapun penjelasan untuk source code (sketch) program Arduino membaca data ADC yang tersimpan di EEPROM ialah sebagai berikut.
  • Agar library EEPROM dapat digunakan perlu mencakup file header EEPROM.h terlebih dahulu
  • Agar komunikasi dengan komputer dapat dilakukan, terlebih dahulu melakukan deklarasi penggunaan jalur komunikasi serial serta baud rate yang digunakan yakni 9600
  • EEPROM board Arduino Uno memiliki alamat dari 0 hingga 511 total ada 512
  • Variable address merupakan alamat EEPROM tempat menyimpan data, sedangkan variable lang ialah nilai yang akan tersimpan pada alamat EEPROM
  • Nilai variable lang didapat dari pembacaan nilai ADC pada pin analog Arduino A3
  • Bagian utama dalam menyimpan data ke EEPROM pada instruksi EEPROM.read(address) untuk membaca data lang pada alamat EEPROM tersebut
  • Setelah itu data akan ditampilkan pada Serial Monitor dengan instruksi Serial.print(), berturut-turut adalah address kemudian variable lang, data ADC
  • Karena data pada EEPROM tersimpan adalam bentuk byte, maka perlu dilakukan tahap mengubah data byte menjadi DEC, nilai desimal, yang lebih mudah dimengerti
  • Sama seperti sebelumnya, setelah selesai membaca dan menampilkan data pada sebuah alamat EEPROM, kemudian dilakukan increment address untuk membaca data pada alamat EEPROM selanjutnya
  • Bila telah mencapai 511, pembacaan selanjutnya 512 akan kembali membaca ke alamat 0 dari EEPROM


Saat ini di Indonesia board Arduino Uno R3 dapat diperoleh dengan mudah di kota-kota besar. Board Arduino Uno R3 dijual dengan harga murah. Membuat perkembangan Arduino kian pesat. Bila ada sesuatu yang belum jelas dan ingin tahu lebih dalam seputar project Arduino, pemrograman, dan elektronika, bisa bertanya pada bagian comment.