Contents
EEPROM (Electronic Erasable Programmable Read Only Memory) adalah memori yang tidak akan hilang ketika catu daya juga hilang. Ketika power on, isi memori akan tetap ada seperti sebelumnya. Walaupun bersifat non-volatile (tetap), sifat dari EEPROM adalah bisa dihapus dan diisi ulang, berbeda dengan ROM yang hanya bisa diisi data sekali saja dan berlaku selamanya. EEPROM ini sama sekali berbeda dengan RAM (Random Access Memory) yang akan hilang datanya ketika tidak mendapat catu daya.
Sekilas tentang EEPROM
EEPROM di Arduino besarnya berbeda-berbeda tergantung tipe mikrokontroller yang ada di dalamnya. Sebagai contoh, Arduino Uno memiliki EEPROM sebesar 1 KB, Arduino Nano hanya dibekali EEPROM 512 byte sedangkan Arduino Mega dipersenjatai dengan EEPROM sebesar 4Kb (paling besar di antara tipe Arduino board lainnya).
Sekarang mari kita coba perhatikan ukuran EEPROM. Tadi disebutkan ukurannya adalah 512 byte, 1 KB, 4 KB, dst. Apa maksudnya? Coba perhatikan gambar di bawah untuk lebih jelasnya
Angka yang ditunjukkan adalah jumlah alamat yang dimiliki EEPROM tersebut, sedangkan lebar datanya adalah 1 byte (8 bit). Jadi kalau kita bilang ukuran EEPROM adalah 1 KB, berarti EEPROM tersebut memiliki 1K alamat (address) dengan masing-masing alamat berisi data selebar 8 bit (1 byte). Berarti, data yang dapat disimpan hanya akan dapat bernilai 0 sampai dengan 28 – 1 (255). Pangkat ‘8’ disini diperoleh karena lebar data adalah 8 bit (1 byte), sedangkan angka ‘2’ disini karena kita sedang berbicara dalam dunia digital yang hanya mengenal 2 angka saja, yakni ‘0’dan ‘1’ (bilangan basis 2). Hitungan ini berlaku untuk semua tipe memori ya, baik itu RAM maupun ROM.
Nah sehubungan dengan kondisi phisycal EEPROM tersebut, akan ada sedikit masalah kesulitan, ketika kita akan menyimpan data dengan lebar data lebih dari 1 byte (8 bit). Kita harus bekerja ekstra dengan membuat script handler yang mampu menangani keterkaitan data yang lebarnya lebih dari 1 byte tersebut.
Cara Membaca dan Menyimpan data ke EEPROM
Untuk membaca dan menyimpan data EEPROM dengan data 1 byte caranya cukup mudah. Bisa Anda baca tutorialnya pada artikel saya yang lalu
Membaca dan Menyimpan Data di EEPROM dengan Arduino
Sedangkan untuk menyimpan data yang lebih dari 1 byte (misalnya integer, long integer, float, char array, string, dl) memang caranya agak susah. Tapi jangan khawatir, beruntunglah kita karena ekosistem Arduino yang sangat besar di dunia ini sehingga ada orang yang berbaik hati membagi source code-nya secara gratis. Source code tersebut dituangkan dalam kumpulan function-function dalam sebuah library yang bernama EEPROMEx.h. Bisa Anda download gratis di sini. Dengan library ini kita akan dengan mudah bisa menyimpan dan membaca data EEPROM yang bertipe integer, float, char array, dsb.
Yang perlu diperhatikan adalah tipe data string ya. Untuk tipe data ini sebenarnya tidak bisa langsung disimpan/dibaca. Untuk data string harus dikonversi dulu ke tipe char array bila akan disimpan ke EEPROM dengan library EEPROMEx. Dan sebaliknya jika akan dibaca, maka data yang ‘keluar’ tipenya adalah char array (kumpulan karakter) dan harus dikonversi kembali menjadi sata bertipe string.
Untuk sementara silahkan di download library-nya dan lihat dulu contoh sketch yang sudah disertakan ya…. Untuk pembahasannya akan saya tulis dalam artikel selanjutnya. Ohya, ntar akan saya jelaskan pula cara konversi string ke char array dan sebaiknya.
Update (next tutorial) contoh baca/simpan data longint, float, string ke EEPROM
a Technopreneur – writer – Enthusiastic about learning AI, IoT, Robotics, Raspberry Pi, Arduino, ESP8266, Delphi, Python, Javascript, PHP, etc. Founder of startup Indomaker.com