EEPROM (Electrically Erasable Programmable Read-Only Memory) adalah jenis memori non-volatil yang sering
digunakan dalam aplikasi elektronik untuk menyimpan data yang perlu
dipertahankan bahkan ketika daya mati. EEPROM di Arduino sangat
berguna untuk menyimpan konfigurasi, pengaturan atau data penting lainnya yang
harus dipertahankan antara siklus daya. EEPROM pada dasarnya adalah memori yang
bisa dibaca dan ditulis seperti RAM, tetapi tidak akan hilang ketika daya mati. Kelebihan EEPROM di Arduino 1. Data tetap ada
meskipun perangkat dimatikan. Hal ini dikarenakan EEPROM termasuk jenis non-volatil.
2. Dapat menahan ribuan
siklus tulis/erase.
3. API Arduino
menyediakan fungsi yang mudah digunakan untuk mengakses EEPROM.
Kekurangan EEPROM di Arduino
1. Pada umumnya memiliki kapasitas kecil seperti Arduino Uno yang hanya
memiliki 1024 byte EEPROM.
2. Waktu akses lebih lambat jika
dibandingkan dengan RAM.
3. Setiap
sel memori hanya dapat dihapus dan ditulis ulang sekitar 100.000 kali sebelum
mulai gagal. Baca juga : Menulis Kode yang Efisien dan Bersih untuk Arduino
Cara Kerja EEPROM di Arduino
EEPROM di Arduino bekerja dengan
menyimpan data dalam sel memori individual yang dapat diakses menggunakan alamat
tertentu. EEPROM dapat diakses menggunakan library EEPROM bawaan.
Library ini menyediakan fungsi-fungsi untuk membaca dan menulis data ke EEPROM.
Fungsi Utama EEPROM • EEPROM.write(address, value) berfungsi untuk menulis nilai (byte) ke alamat EEPROM tertentu.
• EEPROM.read(address) berfungsi untuk membaca
nilai dari alamat EEPROM tertentu.
• EEPROM.update(address, value) berfungsi untuk menulis nilai (byte) ke alamat EEPROM tertentu hanya jika nilai tersebut
berbeda dengan nilai yang sudah ada untuk menghemat siklus tulis.
• EEPROM.get(address, value) berfungsi untuk membaca nilai dari alamat EEPROM tertentu ke variabel.
• EEPROM.put(address, value) berfungsi untuk menulis nilai dari variabel ke alamat EEPROM tertentu.
Contoh Penerapan EEPROM di ArduinoContoh 1: Menyimpan dan Membaca
Data Sederhana #include <EEPROM.h>
void setup() {
Serial.begin(9600);
// Menulis nilai 42 ke alamat 0 di EEPROM
EEPROM.write(0, 42);
// Membaca nilai dari alamat 0 di EEPROM
byte value = EEPROM.read(0);
// Menampilkan nilai yang dibaca
Serial.print(“Nilai yang disimpan di EEPROM: “);
Serial.println(value);
}
void loop() {
// Tidak melakukan apa-apa
}
Pada contoh di atas, nilai 42 disimpan
ke alamat 0 di EEPROM yang akan dibaca kembali untuk ditampilkan di Serial
Monitor. Anda dapat mengunggah sketsa ini ke Arduino Anda dan membuka Serial
Monitor untuk melihat hasilnya.
Contoh 2: Menyimpan dan Membaca
Struktur Data
EEPROM dapat digunakan untuk
menyimpan struktur data yang lebih kompleks seperti struct. Berikut ini
contoh cara menyimpan dan membaca struct menggunakan EEPROM.
#include <EEPROM.h>
struct MyData {
int id;
float value;
};
void setup() {
Serial.begin(9600);
// Data yang akan disimpan
MyData data = { 1, 123.45 };
// Menyimpan data ke EEPROM
EEPROM.put(0, data);
// Variabel untuk membaca data
MyData readData;
// Membaca data dari EEPROM
EEPROM.get(0, readData);
// Menampilkan data yang dibaca
Serial.print(“ID: “);
Serial.println(readData.id);
Serial.print(“Value: “);
Serial.println(readData.value);
}
void loop() {
// Tidak melakukan apa-apa
}
Pada
contoh di atas, Anda membuat
struct `MyData` yang berisi sebuah integer dan float. Struct ini
disimpan ke EEPROM menggunakan fungsi `EEPROM.put()` dan dibaca kembali
menggunakan `EEPROM.get()`. Hasilnya ditampilkan di Serial Monitor.
Contoh 3: Menyimpan Pengaturan
Konfigurasi
EEPROM menyimpan pengaturan konfigurasi yang dapat diubah oleh pengguna.
Sebagai contoh, Anda dapat menyimpan pengaturan tingkat kecerahan LED yang dapat
diatur oleh potensiometer.
#include <EEPROM.h>
const int potPin = A0;
const int ledPin = 9;
int brightness;
void setup() {
Serial.begin(9600);
pinMode(ledPin, OUTPUT);
// Membaca kecerahan yang disimpan dari EEPROM
brightness = EEPROM.read(0);
// Mengatur kecerahan LED sesuai dengan nilai yang dibaca
analogWrite(ledPin, brightness);
Serial.print(“Kecerahan LED yang disimpan: “);
Serial.println(brightness);
}
void loop() {
// Membaca nilai potensiometer
int potValue = analogRead(potPin);
// Mengubah nilai potensiometer menjadi nilai kecerahan (0 – 255)
brightness = map(potValue, 0, 1023, 0, 255);
// Mengatur kecerahan LED
analogWrite(ledPin, brightness);
// Menyimpan kecerahan ke EEPROM
EEPROM.update(0, brightness);
delay(100);
}
Pada contoh di atas, Anda menggunakan
potensiometer untuk mengatur tingkat kecerahan LED. Nilai kecerahan yang
disimpan akan dibaca dari EEPROM ketika startup dan digunakan untuk mengatur LED.
Setiap kali nilai kecerahan berubah, nilai tersebut akan disimpan kembali ke
EEPROM menggunakan `EEPROM.update()` untuk mengurangi siklus tulis yang tidak perlu.
Tips dan Trik Menggunakan EEPROM
1. Gunakan
`EEPROM.update()` untuk menghindari penulisan berulang ke alamat yang sama
dengan nilai yang sama. Hal ini akan memperpanjang umur EEPROM.
2. Jika Anda perlu menyimpan banyak data, pertimbangkan untuk menggunakan encoding
atau pengompresan data.
3. Selalu baca
nilai dari EEPROM ketika startup untuk menghindari penulisan yang tidak disengaja
dan memastikan bahwa perangkat Anda dimulai dengan pengaturan yang benar.
4. Jika data
yang Anda simpan sangat penting, pertimbangkan untuk menyimpan salinan cadangan
di alamat lain pada EEPROM.
5. Gunakan struct agar lebih mudah mengelola dan menyimpan
data ke EEPROM. dengan lebih kompleks.
Jadi, EEPROM di Arduino
sangat berguna untuk menyimpan data yang perlu dipertahankan antara
siklus
daya. Anda dapat menulis dan membaca data dari EEPROM dengan mudah
menggunakan library EEPROM Arduino. EEPROM cocok untuk berbagai aplikasi
yang memerlukan penyimpanan data non-volatil meskipun terdapat beberapa
keterbatasan seperti kapasitas yang terbatas dan siklus tulis yang
terbatas. Pahami cara kerja dan terapkan teknik yang tepat agar dapat
memanfaatkan EEPROM di Arduino untuk berbagai keperluan, mulai dari menyimpan pengaturan konfigurasi hingga data aplikasi yang kompleks. Siap Untuk Membuat Proyek Impianmu
Menjadi Kenyataan?
Klik di sini untuk chat langsung via
WhatsApp dan dapatkan dukungan langsung dari tim ahli kami!

Terimakasih telah membaca di Aopok.com, semoga bermanfaat dan lihat juga di situs berkualitas dan paling populer Piool.com, peluang bisnis online Topbisnisonline.com dan join di komunitas Topoin.com.