Contoh penerapan EEPROM pada Arduino

Pada beberapa sistuasi, kita mungkin membutuhkan memori yang dapat membackup data dari suatu proses, misalnya Ketika kita membuat suatu sistem untuk menghitung barang, kemudian terjadi pemadaman listrik ketika sitem tersebut sedang bekerja, sedangkan barang yang sudah dihitung sudah banyak, bagaimana caranya supaya ketika listrik kembali lagi menyala, penghitungan dilanjutkan dari data terakhirnya ?. misalnya penghitungan terakhir adalah 100, kemudian ketika diulang kembali maka penghitungannya dimulai dari 101.
Solusinya adalah dengan menggunakan EEPROM. EEPROM merupakan suatu memori yang dapat kita gunakan untuk menyimpan suatu data, data tersebut tidak akan terhapus walaupun Arduino dimatikan atau di reset, dan hanya akan terhapus melalui perintah (program) yang sudah ditentukan, perintah tersebut adalah EEPROM.clear. EEPROM dapat ditulis per-blok dimana dalam setiap bloknya mampu menyimpan data sekitar 0 sampai 255.
kapasitas dari EEPROM sendiri berbeda-beda sesuai dengan mikrokontroler yang digunakan, dalam percobaan ini saya menggunakan board Arduino Pro yang menggunakan mikrokontroler atmega328p, chip ini sama dengan yang digunakan oleh Arduino uno R3, kapasitas EEPROM yang dimiliki oleh atmega328P adalah 1 KB, yang berarti mempunyai 1023 blok penyimpanan EEPROM. Untuk menggunakan EEPROM, kita harus menggunakan library EEPROM.h yang sudah disediakan pada Arduino IDE.
Dalam artikel ini, saya membuat sebuah percobaan sederhana yaitu membuat sebuah counter-up dengan menggunkan sebuah push button, dimana setiap push button ditekan maka proses increment (tambahan) akan dimulai, dan hasil dari increment tersebut akan disimpan didalam EEPROM.

Perancangan
Rangkaian yang saya buat adalah sebagai berikut:

program yang saya buat adalah sebagai berikut:


 
Pembahasan program
Untuk menyimpan hasil increment ini saya menggunakan 1 blok EEPROM, yaitu pada blok 1. EEPROM.update digunakan untuk mengupdate/menyimpan setiap hasil perubahan increment, penulisan EEPROM.update umumnya ditulis dengan perintah EEPROM.update(alamat_EEPROM, nilai_yang_akan_disimpan).

Hasil
Hasil yang didapat adalah sebagai berikut:

 Dari Gambar diatas, dapat dilihat meskipun Arduino direset beberapa kali, counter nya akan melanjutkan dari hasil sebelumnya. nilai awal yang terdapat dalam EEPROM adalah 17. nilai ini akan berbeda-beda karena mungkin saja anda belum pernah menggunakan alamat EEPROM ini untuk menyimpan data, sehingga counter awalnya adalah 0 atau 1, atau yang lainnya.

Penutup
bagi yang belum mengerti, Silahkan tulis komentarnya, terima kasih...

Comments

  1. makasih ya mas, sangat membantu

    ReplyDelete
  2. Siap mas, Sama-sama, terima kasih juga sudah berkunjung ke blog saya

    ReplyDelete
  3. Kalau mau bisa simpan data lebih dari 255 bisa gak ya mas?
    atau harus pakai external eeprom ?

    ReplyDelete
  4. cara melihat hasilnya dmana mas?apakah menggunakan aplikasi diluar arduino?

    ReplyDelete
  5. @angga fatah untuk melihat hasilnya itu pakai serial monitor, di arduino IDE

    ReplyDelete
  6. @Fans NeQoPoY, bisa juga menggunakan program berikut

    https://pastebin.com/raw/U3tuk77x

    atau mungkin merubahnya terlebih dahulu ke karakter, seperti artikel berikut
    http://lang8088.blogspot.com/2014/11/tutorial-arduino-belajar-menulis-dan.html

    ReplyDelete
  7. untuk menghapus data eeprom nya gimana ?

    ReplyDelete
  8. @BiohazardRe4 Mungkin bisa di coba pake eeprom.write, seperti di artikel resmi nya arduino https://www.arduino.cc/en/Tutorial/LibraryExamples/EEPROMWrite

    ReplyDelete
  9. @Ryan Pairera maaf baru bales :D, bisa pake eeprom.clear bang, bisa dilihat di https://www.arduino.cc/en/Tutorial/EEPROMClear

    ReplyDelete

Post a Comment