Contents
Tipe data ‘string’ sudah didukung oleh Arduino sejak versi 1.6.x ke atas. String bisa dikatakan sebagai tipe data yang berisi kumpulan karakter. Namun untuk pemakaiannya di perangkat mikrokontroller harus hati-hati dan tepat sasaran karena penggunaan string akan sangat banyak menghabiskan memori terutama untuk string yang panjang. Di Arduino, Anda bisa menggunakan char array sebagai pengganti string. Namun karena ada beberapa kelebihan string, maka kadang kita perlu memakainya dalam sketch kita.
Artikel kali ini akan membahas tentang Cara Membaca-Menyimpan String ke EEPROM Arduino yang merupakan lanjutan dari tutorial sebelumnya, ini dan itu. Artikel ini juga terinspirasi dari artikel ‘Bekerja dengan Variabel String di Arduino‘. Tutorial di bawah langsung ke pemakaian script ya, jadi tidak lagi membahas library EEPROMEx.h, cara instalasi, cara penggunaan, dsb. Silahkan dibaca artikel pengantarnya pada link-ink artikel di atas.
Cara Menyimpan String ke EEPROM Arduino
Seperti yang saya utarakan sebelumnya, untuk memudahkan pengelolaan EEPROM di Arduino, salah satu alternatif library yang cukup powerful adalah EEPROMEx.h. Dengan mendeklarasikan library ini ke dalam sketch Anda, maka Anda akan dapat dengan mudah menyimpan integer, longInt, float, double, char array, dll ke EEPROM. Namun untuk langsung menyimpan variabel string tidak bisa. Anda harus mengubah dulu variabel string menjadi char array, baru bisa disimpan ke EEPROM. Contoh pemakaian:
char charbuf[15]; String s = “saptaji.com” s.toCharArray(charbuf,15); EEPROM.writeBlock<char>(0, charbuf, 15); //simpan data char array (15 karakter) ke address 0
Cara Membaca String dari EEPROM Arduino
Kebalikan dari langkah di atas, untuk membaca string dari EEPROM Arduino tidakah bisa langsung dilakukan, karena data yang tersimpan di EEPROM Arduino adalah tipe char array. Jadi Anda harus baca dulu data char array di EEPROM baru kemudian diubah ke string. Berikut contoh penggunaannya.
char output[] = " "; EEPROM.readBlock<char>(0, output, 15); //baca data char array di alamat 0 //convert to string String cstring = String (output);
Demikian sedikit contoh cara Membaca-Menyimpan String ke EEPROM Arduino, semoga bermanfaat. Berhati-hatilah menggunakan variabel string di Arduino. Sayangi memori-mu 🙂
a Technopreneur – writer – Enthusiastic about learning AI, IoT, Robotics, Raspberry Pi, Arduino, ESP8266, Delphi, Python, Javascript, PHP, etc. Founder of startup Indomaker.com
Saya coba upload example dari library yg didownload tdk bisa,ada eror struck.ada solusi? Sya mau menyimpan integer ke eeprom sebgai parameter
Tolong dijawab jg bozz ajie…
Sy jg mengalami hal yg sama (eror struck)
Suwunn….
kurang tau ya mas, blm pernah mengalami.
Mungkin bisa dicoba pake library EEPROM.h bawaan arduino
Caranya gini
simpan integer –> EEPROM.put(alamat,nilai_int);
baca integer –> EEPROM.get(alamat,nilai_int);
assalamualaikum mas , mohon bantuannya mas saya mau tanya bagaimana menyimpan data rtc+hasil scan rfid reader mfrc522 secara bersaman ke eeprom mas terimakasih .
waalaikumsalam wr wb. Pake library eepromex lebih mudah mas, contohnya bisa dilihat di http://saptaji.com/2016/11/02/contoh-arduino-bacasimpan-longint-float-string-ke-eeprom/
tapi bisa kan mas eeprom menyimpan data waktu rtc dan rfid secara bersaman mas
bisa mas, tergantung sketch-nya aja yg ngatur
assalamualaikum mas,mau tanya? kenapa penggunaan EEPROMex. masih bermasalah ketika di compile mas,katanya eror for “compiling board arduino”
sudah saya ganti board nya tpi ttp juga gak mau,kira2 masalah nya apa itu mas,mohon bantuan nya mas.
waalaikumsalam wr wb. Coba dicek lagi mas, apakah menu ‘target board’ udah sesuai dengan board arduino sesungguhnya yg mau diprogram
assalamualaikum mas maaf mau bertanya,kalau ingin menyimpan data string dari serial mau disimpan ke 1 alamat EEPROM bagaimana ya mas?
contoh = String data=”saptaji”
ingin disimpan di alamat EEPROM 0 gmana mas?tp menggunakan EEPROM bawaannya arduino mas,makasih
waalaikumsalam wr wb
EEPROM.put(0,”saptaji”);
Assalamualikum mas Aji, saya ada project arduino kunci pintu menggunakan solenoid. lalu saya ingin menampilkan log event di lcd data waktu dari operasi kunci pintu tersebut, untuk tombol pake keypad dan untuk waktu renacana saya pakai RTC. apakah data tersebut bisa di simpan dan di baca menggunakan eeprom mas?
Terimakasih
waalaikumsalam wr wb
bisa mas, tapi ngga bisa banyak2 ya. Arduno uno hanya punya eeprom sebesar 1Kb, sedangkan Arduino Mega sedikit lebih banyak, 4Kb
Untuk mudahnya data disimpan sebagai const char atau string. Bisa pake library eepromex.h atau pake library bawaan arduino (eeprom.h) dengan function ‘put’ dan ‘get’
Oke di coba dulu, mkasih mas info dan saran nya
bang needs help, gimana make eeprom buat nyimpan data latitude longitude bang. saya sudah coba berbagai cara yang kebaca hanya 2 digit dibeakang koma dan kdang malah gak kebaca. mohon bantuannya
nilai latitude/longitude disimpan ke variabel bertipe float dulu, habis itu disimpan ke eeprom pake ‘put’
contoh:
float lat=106.998766;
EEPROM.put(10,lat);
kalo mau ambil data tinggal pake ‘get’, contoh:
float datalat;
EEPROM.get(10,datalat);
Saya pake 2 button, button 1 sama button 2. button 1 untuk counter up dan button 2 buat counter down. biar data counter itu kesimpen di EEPROM trus saat arduino direset tetep muncul data counter yg terakhir (counter up/counter down) itu gimana ya mas ? Trimakasih…
disimpan ke EEPROM mas untuk status tiap button (pake EEPROM.write(alamat,data)). Habis itu kalo butuh data tinggal ambil dari EEPROM pake EEPROM.read(alamat)
Maaf gan, bisa jelasin lagi gak tentang penggunaan space untuk eeprom, soalnya udah baca dari artikel artikel sebelumnya bahasanya kurang mengerti bagi saya.
Mohon bantuannya ya gan ,
intinya eeprom kayak lemari aja, terdiri dari beberapa rak yang masing-masing memiliki alamat dan lebar data (anda menyebutnya ‘space’). Lebar data bisa 8 bit, 16 bit, 32 bit, 64 bit dst tergantung tipe eeprom, sedangkan alamat mulai dari 0H sampai dengan kapasitas eeprom (misal alamat 255, 1024, 2048 dst)
Assalamu’alaikum mas Ajie. Sy hendak menanyakan cara menyimpan dan membaca data dengan jumlah data 30 (data1,…,data30) data berupa string. Setiap data ada 10 karakter (Misalnya “B.Inggris”). Terimakasih
waalaikumsalam wr wb. Untuk mudahnya bisa pake library bawaan arduino, EEPROM.h. Untuk string simpan datanya pake perintah EEPROM.put(address, data), ambil data pake perintah EEPROM.get(address, data). Kemudian untuk data sebanyak 30 dengan lebar data sebanyak 10 karakter, ini perlu kita hitung dulu satu karakternya butuh berapa byte (EEPROM arduino lebarnya 1 byte). Satu karakter ASCII lebar datanya 1 byte, tapi berhubung yang kita simpan adalah berupa rangkaian karakter (tipe string) sebaiknya kita kasih spare untuk sinkronisasi antar karakter. Saya sarankan untuk spare 4 byte untuk tiap karakter. Jadi untuk 10 karakter yang akan kita butuhkan adalah 10 karakter x 4 byte… Read more »
terimakasih banyak mas Ajie
Mas klo milasi nilai lat nya ada 10 data bagaimana mas? Dan untuk pemanggilan getnya di buat simple?
masing-masing data disimpan di satu alamat supaya mudah
apa perlu dikasih for mas ?
bisa jadi, tergantung desain scriptnya (flow chart)
Mas klo milasi nilai lat nya ada 10 data bagaimana mas? Dan untuk pemanggilan getnya di buat simple?
Tanya mas,, misalkan mau simpan format jam ke eeprom gmn caranya supaya jam detik dan menitnya bisa terpisah,, misal ada 3 urutan jam yang mau kita simpan.. jam1, jam2, jam3
untuk mudahnya data disimpan sebagai string kemudian untuk memisahkan data jam, menit dan detik bisa diparsing dulu dengan pemisah karakter ‘:’ (misalnya)
Mau tanya mas, agar 2 rfid bisa bekerca beda gimana ya? 1 RFID untuk menyimpan data ke EEPROM 1 RFID lagi membaca data yang sudah masuk EEPROM. Terimakasih h
maksud dari ‘RFID’ di sini apakah ‘RFID reader’ ataukan ‘kartu RFID’?
assalamu alaikum
saya juga sdg buat project dgn rfid untuk door lock
gambarannya rfid card 1 sebagai kartu admin dan rfid card 2 sebagai kartu tamu….
jd misalkan kartu 2 hilang kita bisa mengganti dgn kartu lain setelah menempelkan kartu admin… tnpa upload skect…
mohon bantuannya gan saptaji…
waalaikumsalam wr wb. Untuk dapat membuat sistem tersebut, langkah2 yang harus dilakukan: (1) dapat mengambil data rfid card menggunakan module rfid dengan arduino, (2) melakukan profiling terhadap masing2 kartu rfid (mana yang guest, mana yang admin), (3) membuat rule untuk profile user tersebut, (4) testing (trial and error). Semoga membantu
mksh masukan… saya coba dlu… mohon bntuannya misal ada kendala…
thank you mas aji.. ijin menggunakan kodenya,, baru mulai belajar koding eeprom
baik, silahkan mas
halo mas Ajie, makasih udh share tutorialnya sangat membantu 🙂
saya menggunakan EEPROMEX untuk mengunci tombol keypad 1 x 4 yang digunakan sebagai masukan untuk menentukan parameter yang diinginkan.
tp kenapa mas ketika keypadnya ditekan dia seperti ada delay yg berbeda beda agar memuculkan keypad yg kita tekan, saya tes keypad 4 x 4 dia normal tp pake 1 x 4 dia delay yang cukup lama dan berbeda untuk membaca tombol mana yang kita tekan. mohon bantuaanya mas ajie.
coba dicek lagi script-nya mas, ada command ‘delay’ ngga?
Assalamualaikum mas Ajie, kalau data yang sudah tersimpan di EEPROM dan tidak dipakai lagi apakah harus dihapus untuk memperbesar ruang sketch ? atau nanti sketch otomatis bisa me replace alamat EEPROM juga ya bila diperlukan?
Waalaikumsalam wr wb. Antara sketch dengan eeprom beda ruang mas, sketch/script nanti disimpan ke flash ROM, jadi tidak mengganggu kapasitas EEPROM
Oh beda ruang ya, brarti tidak masalah ya bila data di EEPROM dibiarkan saja bila tidak adipakai lagi?
iya mas, ga ada masalah