Official StoreTekan tombol di atas untuk membeli semua alat dan bahan eksperimen di web ini

Membaca dan Menulis Data ke EEPROM Arduino

Membaca dan Menulis Data ke EEPROM Arduino – Seperti yang kita ketahui, mikrokontroller pada papan Arduino (Uno) menggunakan tipe ATMega328. Mungkin perlu saya jelaskan dulu bahwa Arduino bukanlah mikrokontroller. Arduino adalah papan elektronik yang berisi mikrokontroller, lengkap dengan sistem minimumnya supaya dapat bekerja. Nah, kebanyakan Arduino menggunakan mikrokontroller buatan Intel yaitu seri ATMega. Khusus untuk Arduino Uno, wa bil khususon lagi pada Arduino Uno Rev3, menggunakan tipe ATMega328. Sebenarnya Anda dapat menggantinya dengan tipe ATMega168 atau bahkan ATMega8. Ketiganya kakak beradik yang sama dari bentuk fisik dan jumlah kakinya. Yang membedakan adalah kapasitas RAM-nya. ATMega328 memiliki RAM 32Kb, ATMega18 punya 16kb. Nah, si bungsu ATMega8 kira-kira berapa RAM-nya ayo ..?  🙂

Membaca dan Menulis Data ke EEPROM Arduino

Back to topic, kali ini kita akan membahas tentang membaca dan menulis data ke EEPROM Arduino. Jika RAM bersifat volatile (hilang saat power supply dimatikan), maka EEPROM kebalikannya, yakni bersifat non volatile. Mikrokontroller ATMega328 memiliki EEPROM sebesar 1 Kb (ATMega128 dan ATMega8 512b). Cukup lumayan untuk menyimpan data settingan  aplikasi atau konstanta program. Jangan bandingkan dengan flashdisk Anda yang bisa mencapai 128 Gb ya? Itu mah jauh perbandingannya, 1Kb vs 128 Gb J.

Untuk membaca dan menulis data ke EEPROM ke mikrokontroller ATMega di papan Arduino sangat mudah sekali karena sudah disiapkan library khusus dari yang empunya Arduino. Nama library tersebut adalah <EEPROM.h>. Dengan library ini Anda cukup menuliskan beberapa baris kode saja untuk urusan handling EEPROM karena semuanya sudah dikerjakan oleh library itu sendiri. Sangat sangat membantu untuk meringankan beban Anda. Jika Anda pernah menulis program C untuk ATMega menggunakan CodeVision AVR atau AVR Studio, Anda akan tahu yang saya maksud he he he.

Dalam library EEPROM ada dua fungsi utama yang digunakan untuk membaca dan menulis data ke EEPROM yaitu :

–  EEPROM.write (addr, val) –> untuk menulis data ke EEPROM. Parameter ‘addr’ adalah alamat EEPROM mulai dari 0 s/d 1023, sedangkan parameter ‘val’ adalah nilai/data yang berada dalam alamat EEPROM tersebut. Karena lebar data hanya 8 bit maka data yang ditampung hanya dapat bernilai 0 s/d 255. Saya akan menjelaskan lebih detail mengenai hal ini di bawah.

–  EEPROM.read(address) –> untuk membaca/mengambil data dari EEPROM. Parameter ‘address’ merupakan alamat EEPROM yang akan dibaca.

Just simple as possible, right? Anda hanya perlu ‘menghafal’ dua function di atas jika berhubungan dengan EEPROM. Dan jangan lupa untuk mendefinisikan library <EEPROM> di ujung paling atas dari sketch Anda.

Biar lebih paham, mari kita mempraktekkan dua function di atas dalam sebuah sketch (program Arduino) di bawah ini. Tapi sebelumnya, sebaiknya Anda membuat prototipe rangkaian berikut sebagai bahan praktek. Anda cukup menyediakan 1 bh Arduino Uno, 1 bh potensiometer dan 3 bh kabel jumper. Perhatikan gambar di bawah

Membaca dan Menulis Data ke EEPROM Arduino

Berikutnya adalah menulis sketch berikut di IDE Arduino dan menggahnya ke Arduino Uno Anda.

Inti dari sketch di atas adalah membaca tegangan analog di pin A0, menuliskan hasilnya di EEPROM (dibagi 4 dulu supaya dapat disimpan di EEPROM), membacanya kembali dari EEPROM dan mengirim data terbaca ke serial port agar dapat dilihat di laptop melalui aplikasi terminal client (jendela Serial Monitor Arduino atau bisa juga menggunakan aplikasi hyper Terminal)

Perhatikan baris 1. Baris ini adalah untuk mendefiniskan library EEPROM ke dalam sketch (wajib ada). Baris 14untuk membagi data tegangan analog dengan angka 4. Mengapa dibagi 4? Karena kita tahu bahwa resolusi pembacaan tegangan analog di pin analog (A0 s/d A5) adalah 10 bit sedangkan lebar data EEPROM adalah 8 bit (lagi-lagi silahkan baca di bawah untuk keterangan lebih detail mengenai ini). Baris 15 untuk menulis data hasil pembacaan sensor ke EEPROM dan baris 17 s/d 18 adalah membaca kembali data yang sudah ditulis di EEPROM dan menyimpannya ke variabel ‘address’. Baris berikutnya (20 s/d 23) adalah untuk mengirim pembacaan data EEPROM ke laptop melalui port USB (virtual serial port) sedangkan baris 25 s/d 31 untuk membatasi alamat EEPROM yang akan diisi datanya. Saya harap Anda sudah paham mengenai cara membaca dan menulis data ke EEPROM Arduino dari penjelasan dan contoh sketch di atas. Bagi yang masih belum paham, silahkan isi komentar di bawah, saya akan menjawabnya secepat mungkin.

Pada bagian artikel terakhir ini, saya akan menjelaskan tentang parameter ‘alamat’ atau ‘address’ dan ‘val’ atau value/nilai/data dari EEPROM. Saya akan jelaskan ilustrasi yang mendekati gambaran fisik sebuah EEPROM dalam mikrokontroller pada umumnya. Perhatikan gambar di bawah

Membaca dan Menulis Data ke EEPROM Arduino - ilustrasi EEPROM

Pada dasarnya, sebuah EEPROM adalah sebuah register bertingkat yang memiliki alamat yang didalamnya ada sebuah data. Anda dapat membayangkan ‘register’ adalah sebuah lemari pakaian dengan rak bertingkat. Tiap rak tersebut berisi jenis pakaian yang berbeda. Jika rak adalah ‘alamat’ lemari, maka jenis pakaian yang berada di dalam rak adalah ‘data’-nya. Perhatikan kembali gambar di atas.  Kolom dari atas ke bawah mulai angka 0 … 1023 adalah alamat EEPROM, sedangkan baris yang yang menyamping adalah datanya. Kolom bisa Anda bayangkan sebuah rak lemari, sedangkan baris yang menyamping adalah isi data alias jenis pakaiannya. Karena  mikrokontroller ATMega adalah mikrokontroller  berbasis 8 bit maka, mau tau mau desain fisik EEPROM juga akan mengikuti 8 bit (jangan bandingkan dengan Windows Anda yang 32bit/64bit ya 🙂 , untuk hal ini Arduino masih kalah jauh 😀 ). Apakah itu 8 bit? Yakni angka biner dari 0000 0000 sampai dengan 1111 1111 alias 0 s/d 255. Saya harap Anda sudah mulai terbuka jalan pikirannya 🙂 . Jika belum, silahkan isi komentar 🙂

Incoming search terms:

cara menggunakan eeprom arduino, cara menyimpan data di arduino, menyimpan data di eeprom arduino, fungsi eeprom pada arduino, contoh program eeprom arduino, fungsi eeprom arduino, contoh eeprom, eeprom arduino adalah, eeprom pada arduino, akses eeprom arduino

Leave a Reply

114 Comments on "Membaca dan Menulis Data ke EEPROM Arduino"

avatar
  Subscribe  
newest oldest most voted
Notify of
rahmat hasan
Guest

maaf mas, (masih ingat dengan saya kan??). ilmu saya ttg mikrokontroler masih sangat minim mas.
saya masih bingung mas, apa gunanya EEPROM pada mikrokontroler dan untuk apa menuliskan data di dalamnya???

Budi
Guest

Untuk pembatasan alamat eeprom yang di isi tiu harus 512 gitu mas atau bebas

Bayu Nur P
Guest

Pagi mas ajie..
saya lagi bikin project arduino turn on lamp via sms with arduino..
saya sedang coba ketika arduino mati dan dinyalakan lagi, menampilkan settingan yg kita set sebelum mati..
untuk yang sekarang jika arduino mati, lampu nyala lagi semua..
mohon pencerahannya..terima kasih

Rendy
Guest

Mas sya mau tanya sya mau nyimpan data rtc sensor suhu sma kelembaban udara itu dngan wifi shield gmna yaa mas supya datanya bisa tersimpan di eeprom wassalamualaikum wr wb

Rendy
Guest

Sebagai client mas wifi shieldnya mas,sbgai client mas eepromnya gmna mas masuk diarduino trus cra baca dtanya klo masuk dieeprom gmna yaa mas

Rendy
Guest

Mas ems wifi shieldnya sbgai server mas trus eepromnya server gmna mas

lekmans
Guest

Satu alamat satu data ya, mas? Dan datanya harus biner? kalo huruf bisa?

surya
Guest

mas saya mau nanya, saya buat webserver pake HTML arduino, di dalemnya ada program buat masukin data, data yang di isi angka 1-100, saya buat tombol simpan, semua sudah jadi, cuman kenapa ya mas itu data tidak bisa berubah yang ingin di simpan, apa eeprom saya rusak ?
terima kasih

Bagus
Guest

pak maaf mau tanya soalnya masih pemula, baris 25-31 maksudnya gimana ya? kok ada data “512”, bukannya kalau arduino uno alamat EEPROM sampai 1024? kasus dalam percobaan ini saya pakai arduino mega 2560 pak… terimakasih sebelumnya

Syahdana Putra
Guest

Mas saya mau tanya2 tentang arduino bisa mas? Saya ada project monitoring baterai, nah saya mau tanya, arduino tadi merekam sebagai data loggernya , gimana caranya mas? Mohon dibalas😄

Ahmad
Guest

Maaf mas tanyak nih,,
Saya ada project, semisal, saya gunakan sensor suhu, dg program biasa, suhu tersebut akn terbaca terus menerus,dan datanya keluar sperti biasa,
Saya cobak pakek cara diatas hasilnya gk sesuai yang saya inginkan, yg saya inginkan,
Data dari sensor” itu di simpan setiap 1 jam sekali, kemudian setelah beberapa jam, saya ingin membaca data” yg disimpan setiap jamnya sebelumnya,
Gmna mas caranya mungkin ada solusi,
Trimakasih

Ahmad
Guest

Mungkin ada sedikit modifikasi program tersebut?

Niar
Guest

maaf mas mau nannya nih
aku ada program akses contol masuk ruangan memakai finger dan arduino, nah aku mau mengambil data dari finger itu gmna yah mas? apa bisa pakai eeprom ini?

mohon bantuannya

Niar
Guest

gimana yah mas caranya ?
apa harus menggunakan komponen lain ?

Turno Texno
Guest

Mas apakah eeprom dapat di gunakan untuk merekam putaran motor servo dan dan nantinya dapat di putar otomatis sesuai dengan gerakan yg tadi di lakukan. Intinya “merekam gerakan motor servo” apakah itu bisa di lakukan dengan eeprom..?
Mohon pencerahanya mas..?
Ma`lum ane pemula , mas
Hehehe

Nurhayati
Guest

om, cara membuat tombol mencetak angka 1-5 trus di stop tanpa diulang gmna ya?

Turno Texno
Guest

Maaf mas numpang tanya + minta ilmunya.
Oya apakah eeprom bisa untuk merekam gerakan motor servo dan dapat di putar kembali, sesuai dengan gerakan yang tadi di record kan, mohon minta penjelasannya dan caranya.

zaipul rahmat
Guest

mas apakah eeprom bisa di gunakan untuk menyimpan data analog yang outputannya hanya dalam satuan mili detik./ kurang dari satu detik , bagai mana contoh program agar data tersebut tertampil di lcd walau sudah tidk ada inputan ke adc. mohon bantuan nya mas

Novaldi Sarif
Guest

mas mau tanya, saya sedang membuat projek dengan rfid, nantinya saya mau ada kaya database gitu… saya beli micro sd adapter yg catalex v1.0.11 cman kendalanya rfid dan micro sd nya sama2 ngambil pin SPI. apakah disini eeprom bisa dijadikan sebagai datalog tanpa menggunakan micro sd?? Trus apa micro sd bisa ngambil pin yg lain selain pin 13,12,11,10 (SPI). plis d bales mas 😀

Diaz Suryo
Guest

Assalamualaikum. Mas saya pingin mbuat rangkaian push on switch 3 channel saja. Rangkaiannya sederhana jika push on no 1 ditekan led 1 nyala. jika push on no 1 dilepas led tetap menyala. Rangkaian dan sketchnya saya udah mengerti,Mas. Mau saya jika disaat terakhir saya tekan posisi push on (push on no berapa saja). Kemudian modul arduino saya matikan catu dayanya. Keesokan harinya modul arduino saya nyalakan. Posisi led tadi tetap sama pada saat terakhir saya matikan. Itu ditambahi menu eepromnya ya,Mas? Caranya gimana,Mas. Mau saya nyimpan posisi push on yg terakhir tadi Mas. Terima kasih atas jawabannya.

David Suwandi
Guest

Dear Mas Ajie,
saya mau tanya, kan saya punya modul wifi esp8266. nah setiap mau konek ke wifi, dia konek ke ssid,user&password menggunakan static text di script arduino.

Yg mau ditanyakan, bisakah ssid,user&pass dimasukkan ke eeprom? dan kira2 metode efektif buat memasukannya kesitu via apa ya? misal via sms input atau keyboard input(tanpa komputer)

Terima kasih.

Tyar.nugraha
Guest

Mas ajie, trimakasih penjelasan diatas sya sangat tertarik. Sya punya project blum beres2. Bagai mana cara mengcopy skech controller yg sudah jadi. Berharap sya dapat menggandakan kontroller tsb. Jenis board yg digunakan mirip dengan arduino. Apakah ada aplikasi khusus, yg bisa copas langsung secara keseluruhan. Trims untuk berbagi

Bayu
Guest

Mau tanya mas, jika isi data pada address yang akan disimpan isinya sama apakah akan ditulis ulang?
misalkan isi dari address (0)=12 dan data yang akan ditulis kembali ke address (0) = 12,istilahnya di rewrite. apakah tidak akan mengurangi performa memory jika looping terus menerus dan melakukan rewrite?

ilham
Guest

mas gimana menyimpan data terus dapat mennampilkan kembali dlm wkt 30 hari sebelumnya atau sebulan yg lalu gitu?

Fitri
Guest

Mas kalo saya mau menyimpan data tinggi badan (datanya bentuk integer), terus dapat ditampilkan lagi di LCD jika ditekan suatu tombol, berarti baris 20-23 diganti perintah
LCD. Setcursor(12,0);
LCD. Print(tinggi); begitu?
Apa data integer bisa disimpan di EEPROM?

kasfika
Guest

Mas, saya ingin menyimpan data waktu pemakaian lampu (menghitung life time lampu) sampai 5000 jam dengan interval pencatatan per-jam, apakah cukup dengan EEPROM atau butuh memori eksternal ?

khanif
Guest

Mas mau tanya. Saya punya project robot wall follower pada labiri menggunakan arduino 1560. dengan tujuan utama mencari jalur terpendek. fungsi yang saya butuhkan ialah robot bisa menyimpan data dari pembacaan sensor ultrasonik ke dalam memori arduino, untuk proses pembelajaran. Apakah saya bisa menggunakan Lib. EEPROM arduino mega 2560 mas??

wasis
Guest

mas saya mau tanya,,kan saya rencana mau buat jarvis di sepeda,saya menggunakan arduino buat kontrol nya mas,tapi masiih saya coba dengan led,saya coba nyalakan 4 buah led,,gimna caranya pas lampu di 3 sumber nya saya matikan trs saya tancep lagi dibisa nyala di 3lagi,,itu di tambahin eeprom nya di codingan arduino apa app inventor nya mas??,,saya menggunakan bluetooth hc-05

..mohon bimbimnganya..

Viko
Guest

Mas saya mau tanya, saya ada project pakek rotary encoder buat hitung jumpah putaran motor untuk nentuin titik koordinat. Nah hasilnya mau saya simpen ke epprom, apakah bisa mas ?

Hanang
Guest

mas mau tanya, “512” diatas apakah sekedar perulangan untuk jumlah data yang masuk adalah sebanyak 512. mohon jawabannya mas. thx

zamroni
Guest

Mohon pencerahan mas
Eeprom uno r3, itu bisa buat nyimpen data cacahan tidak? Misal jam 12.00 ada data yang masum 300, terus jm 13.00 data masuk 400, nah kedua data itu biar gak ilang, sekian trrimakasih

fren
Guest

hallo mas
saya mau belajar mengenai eeprom..langkah pertama gimana mas…apakah sama semua cara kerja dan membaca eeprom untuk handphone atau eeprom mobil…terimakasih

Tiar
Guest

maaf gan mau tanya. sya memiliki sebuah controller dilengkapi lcd, sekarang alat itu rusak, yg saya tanyakan apakah memungkinkan data dari controller tsb dipindahkan ke arduino. dikarenakan ic eeprom tsb sama yg digunakan pada arduino. trimakasih banyak atas waktunya.

alfan azkiya dzikri
Guest

mas itu kan di contoh nya menggunakan data analog, lalu bagaiamana cara nya menyimpan data digital, apakah cuma tinggal ganti aja analogRead nya jadi digitalRead ? lalu di hilangkan juga di bagi 4 (/4) nya ?

nita nurlina
Guest

assalamualaikum mas, apakah eeprom bisa digunakan untuk sensor MLX90614 output sensornya i2C.? sensor untuk temperatur dg sinar infrared

nita nurlina
Guest

makasih mas.
berarti list programnya sama ya mas?

Nita nurlina
Guest

Assalamualaikum mas. Kalo pada alat saya sensornya hanya mlx90614 itu dg menggunakan atmega328 dg kapasitas 1KB eeprom. Maka berapa batas maksimal data terakhir yg bisa disimpan mas? Apakah bisa 7 data terakhir disimpan. ? Terimakasih mas

locky
Guest

mas saya mau tanya. saya dapat tugas untuk membuat program yang intinya adalah menulis data dari keyboard dan tersimpan ke eeprom. kalo program eeprom kebanyakan artikel memberikan contoh berupa value sedangkan data yang akanditulis ke eeprom berupa string (character, numeric, alphabet), nah program untuk membuat data string tersebut seperti apa? untuk yang keyboard karena di example library keyboard hanya dapat di aplikasikan pada arduino leonardo sedangkan saya mau menggunakan arduino uno. mohon solusinya!

ananda
Guest

Mas, mau tanya nih..kalau kita membaca resistansi menggunakan persamaan voltage divider dengan sistem multiplex (4 titik (relay) resistansi bergantian) di arduino. Bagaimana supaya yang dibaca gak double antara titik 1 dgn yg lainnya ?
Apa perlu variabel reset di setiap titik (R) di programnya ? mohon bantuannya mas, Saya buat terkadang dia masih membaca di titik (R) 1 padahal aktual relay sudah pindah ke titik (R) 2

restu pangestu
Guest

mas, eeprom bisa gk buat nyimpen variable yg nilainya berubah

Muharam Saribi
Guest

mas, saya masih kurang ngerti dgn penjelasan mas tentang tegangan pin A0-A5 terbaca 10 bit, itu maksud nya tegangan real dri pin A0-A5 kan bisa berkisar 9v dc klo ngak salah, kan angka 9 masih masuk range 0-255, bisa di jelasin mas ?

Frans Hasibuan
Guest

Selamat siang, Mas. Saya pengin membuat binary counter 8bit yang datanya bisa disimpan ke EEPROM internal. Ketika listrik mati, hitungan terakhir dari binary counter itu disimpan. Selain itu rangkaiannya dilengkapi dengan tombol up / down binary counter, satu tombol store dan 5 tombol memori. Boleh minta programnya? Terima kasih atas perhatiannya.

Sigit AK
Guest
Mas Aji, saya Sigit yang WA tadi, saya mau nanya, apakah dengan EEPROM ini saya bisa menyimpan data perhitungan yang melibatkan millis()? Saya membuat proyek untuk menghitung kecepatan jalan kaki, dengan menempatkan dua buah sensor dengan jarak 10 m. Waktu yang dibutuhkan orang dari dia mengaktifkan sensor 1 (IN) sampai sensor 2 (OUT) digunakan untuk membagi jarak sensor, maka akan didapatkan kecepatan. Nah saya ingin agar ketika ada 10 orang jalan beriringan masuk melalui sensor 1 hingga ke sensor 2, akan ditampilkan berurutan kecepatan dari orang ke-1 sampai orang ke-10. Apakah bisa menyimpan data seperti itu? Jadi ketika orang pertama… Read more »
Sigit Aprianto Kurniawan
Guest
Sigit Aprianto Kurniawan

Saya memakai dua sensor, photoelectric tipe diffuse reflective mas..ketika ada objek melintas, sensor akan HIGH.

Nah saya masih belum bisa menemukan coding yang pas agar bisa digunakan untuk beberapa orang sekaligus yg masuk ke zona scanning (zona di antara dua sensor).

Bisa kasih saran mas buat coding nya bagusnya gimana ya? Makasih sebelumnya.

Sigit Aprianto Kurniawan
Guest
Sigit Aprianto Kurniawan

Iya mas, kmrn sempet kepikiran pake face recog juga, karena kalo cuma dua sensor pikir saya, gak mungkin bisa mendeteksi IN dan OUT harus orang yang sama (bisa jadi yang IN orang A yang OUT orang B jika di area scanning B mendahului A).

Kalo pake face recog, berbekal kamera webcam bisa gak ya mas?

R.astuty
Guest

Assalamualaikum, kak saya bisa tanya ga ya? sepertinya OOT hehe

saya mau buat program menggunakan password, sistem keamanan gitu.
Nah kalo kita masukin password sekali nanti sistem keamanan aktif terus, tapi kalo kita masukin password kedua kali nanti sistem keamanan non-aktif, begitu seterusnya. jadi password disini gunanya buat aktifin sama non-aktifin sistem keamanannya, dan kalo bisa cuma pake 1 password aja. kalo itu kira2 gimana ya?

Mohon bantuannya, terimakasih..

Rahmat Albarzanjie
Guest

Assalamualaikum mas ajie, saya ingin membuat alarm dengan arduino uno, kira-kira ada referensi gak mas yang dapat saya baca untuk merealisasikan sistem tersebut? terima kasih sebelumnya mas

Moch rian
Guest

Mas saya numpang tanya.
Saya ingin membuat projek penghitung barang.
Dan saya ingin hasil hitungan terakhir agar tidak hilang dan terus menghitung dari hitungan yang terakhir di simpan. Dan jika ad pengambilan barang jadi nilai yang terakhir dapat di kurangi
Dengan jumlah barang yang diambil. Dan seterusnya .
Bgaimana cara.a mas. Mohon bantuan.a

error: Content is protected !!