loading...
Selamat datang di blog jurnal dan karya ilmiah masih
tetap pada pembahasan seputar Arduino kali ini penulis akan memberikan
penjelasan dan tutorial mengenai EEPROM. EEPROM(Electrically Erasable Programmable Read-Only Memory) adalah
sebuah memory yang tidak terhapus walau pun tanpa di aliri listrik. EEPROM ini
memiliki alamat dan jumlah memory. Analogi nya mirip seperti hardisk atau flash
disk. Data yang kita simpan tidak akan terhapus walau tanpa di aliri listrik
lagi. Berbeda dengan RAM, tanpa di aliri listrik, atau Arduino padam, maka
memory kembali menjadi kosong.
Setiap data yang ingin
kita simpan pada blok memory memiliki alamat, Biasanya Arduino pada satu alamat
hanya mampu menyimpan memory sebanyak 8 bit, FF, atau kalo decimal nya hanya
menyimpan data sebesar 255 dalam satu alamat. Jika kita ingin menyimpan data
lebih banyak maka kita harus menambah alamat penyimpanan nya.
Arduino sendiri sudah memiliki library untuk penggunaan EEPROM internal ini, seperti ini:
#include <EEPROM.h>
untuk penyimpanan memori lebih dari 8 bit, kita perlu menggunakan function tersendiri, selanjutnya akan kita bahas pada Sub judul lain nya.
Fungsi EEPROM Arduino
Fungsi EEPROM Arduino, EEPROM ini memiliki fungsi yang sangat banyak pada system control dan kendali. Sebagai contoh input password. Dengan EEPROM ini kita bisa merubah-rubah default password menjadi password baru. Kemudian password baru kita simpan di EEPROM. system control dan kendali. Sebagai contoh input password. Dengan EEPROM ini kita bisa merubah-rubah default password menjadi password baru. Kemudian password baru kita simpan di EEPROM. Bisa juga kita gunakan untuk setting-setting harga pada CPU POM mini, atau yang lain nya. Inti nya adalah Memory EEPROM ini bisa di gunakan untuk menyimpan variable yang nilai nya bisa kita ubah tanpa merubah program pada CHIP Arduino. Untuk setting-setting harga pada CPU POM mini, atau yang lain nya. Inti nya adalah Memory EEPROM ini bisa di gunakan untuk menyimpan variable yang nilai nya bisa kita ubah tanpa merubah program pada CHIP Arduino.
eeprom arduino
Contoh Aplikasi EEPROM
Arduino sendiri sudah memiliki library untuk penggunaan EEPROM internal ini, seperti ini:
#include <EEPROM.h>
untuk penyimpanan memori lebih dari 8 bit, kita perlu menggunakan function tersendiri, selanjutnya akan kita bahas pada Sub judul lain nya.
Fungsi EEPROM Arduino
Fungsi EEPROM Arduino, EEPROM ini memiliki fungsi yang sangat banyak pada system control dan kendali. Sebagai contoh input password. Dengan EEPROM ini kita bisa merubah-rubah default password menjadi password baru. Kemudian password baru kita simpan di EEPROM. system control dan kendali. Sebagai contoh input password. Dengan EEPROM ini kita bisa merubah-rubah default password menjadi password baru. Kemudian password baru kita simpan di EEPROM. Bisa juga kita gunakan untuk setting-setting harga pada CPU POM mini, atau yang lain nya. Inti nya adalah Memory EEPROM ini bisa di gunakan untuk menyimpan variable yang nilai nya bisa kita ubah tanpa merubah program pada CHIP Arduino. Untuk setting-setting harga pada CPU POM mini, atau yang lain nya. Inti nya adalah Memory EEPROM ini bisa di gunakan untuk menyimpan variable yang nilai nya bisa kita ubah tanpa merubah program pada CHIP Arduino.
eeprom arduino
Contoh Aplikasi EEPROM
Arduino Tanpa LibraryArduino Tanpa Library
Biar Seru dan gak penasaran yuk kita coba buat program EEPROM Arduino. Contoh nya sangat unik,penasaran yuk kita coba buat program EEPROM Arduino. Contoh nya sangat unik, kita coba buat setting harga barang, kemudian kita save di EEPROM. Input Arduino nya adalah keypad 4×4. Bagaimana kah cara memprogram nya? ops sebelum program siapkan dulu bahan bahan di bawah ini,
kita coba buat setting harga barang, kemudian kita save di EEPROM. Input
Arduino nya adalah keypad 4×4. Bagaimana kah cara memprogram nya? ops sebelum program siapkan dulu bahan bahan di bawah ini,
§ Arduino bisa Arduino UNO atau Arduino Mega§ LCD 16×2 dengan I2c LCD§ Keypad 4×4Setelah semua bahan sudah ada, coba kita lihat program di bawah inisudah ada, coba kita lihat program di bawah iniFungsi EEPROM ArduinoFungsi EEPROM Arduino, EEPROM ini memiliki fungsi yang sangat banyak padaBisa juga kita gunakaneeprom arduinoContoh Aplikasi EEPROMBiar Seru dan gak§ Arduino bisa Arduino UNO atau Arduino Mega§ LCD 16×2 dengan I2c LCD§ Keypad 4×4Setelah semua bahan
#include <Wire.h> #include <LiquidCrystal_I2C.h> #include <Keypad.h> #include <EEPROM.h> LiquidCrystal_I2C lcd(0x3f, 16, 2); // alamat i2c lcd dan type lcd 16x2 const byte buz = 6; const byte ROWS = 4; //four rows const byte COLS = 4; //three columns char keys[ROWS][COLS] = { {1, 2, 3, 'A'}, {4, 5, 6, 'B'}, {7, 8, 9, 'C'}, {'*', '0', '#', 'D'} }; byte rowPins[ROWS] = {4, 3, 1, 0}; //koneksi row keypad dengan arduino byte colPins[COLS] = {A3, A2, A1, A0}; //koneksi kolom dengan arduino Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS ); #define BINTANG 42 // nilai BINTANG #define PAGAR 35 // nilai pagar #define TOMBOL_A 65 // nilai TOMBOL_A #define TOMBOL_B 66 // nilai TOMBOL_B #define TOMBOL_C 67 // nilai TOMBOL_C #define TOMBOL_D 68 // nilai TOMBOL_D #define READY 0 #define SET_HARGA 6 #define LIMIT 7 int state = 0; long dtKey = 0; int key; unsigned char line1[16]; unsigned char line2[16]; void baca_key(); void get_text(); void update_lcd(); void baca_eeprom(); void EEPROMWritelong(int address, long value); long EEPROMReadlong(long address); int addr_harga = 0; long HARGA = 0; void setup() { pinMode(buz, OUTPUT); pinMode(pump, OUTPUT); lcd.begin(); lcd.backlight(); lcd.print("MIKROAVR.COM"); delay(2000); lcd.clear(); baca_eeprom(); } void loop() { key = keypad.getKey(); if (key) { digitalWrite(buz, HIGH); baca_key(); lcd.clear(); delay(20); } if (!key) { digitalWrite(buz, LOW); } update_lcd(); } void baca_key() { if ( state == READY ) { if ( key == TOMBOL_A ) { state = SET_HARGA; } } else if ( state == SET_HARGA){ if ( key == 48 )key = 0; if ( key < 10) { dtKey = dtKey * 10 + key; } else if ( key == BINTANG ) { dtKey = 0; } else if ( key == PAGAR ){ if ( dtKey > 12){ state = LIMIT; } else{ EEPROMWritelong(addr_harga, dtKey);HARGA = EEPROMReadlong(addr_harga); dtKey = 0; state = READY; } } } else if ( state == LIMIT){ if ( key == BINTANG){ state = SET_HARGA; } } } void get_text(){ if ( state == READY ) { sprintf(line1, "MIKROAVR"); sprintf(line2, "HARGA: %lu", HARGA); } else if ( state == SET_HARGA) { sprintf(line1, "SET HARGA"); sprintf(line2, "RP: %lu", dtKey); } else if ( state == LIMIT ){ sprintf("NILAI MAX 12"); sprintf("* -> BACK"); } } void update_lcd() { get_text(); lcd.setCursor(0, 0); lcd.printstr(line1); lcd.setCursor(0, 1); lcd.printstr(line2); } void EEPROMWritelong(int address, long value) { //Decomposition from a long to 4 bytes by using bitshift. //One = Most significant -> Four = Least significant byte byte four = (value & 0xFF); byte three = ((value >> 8) & 0xFF); byte two = ((value >> 16) & 0xFF); byte one = ((value >> 24) & 0xFF); //Write the 4 bytes into the eeprom memory. EEPROM.write(address, four); EEPROM.write(address + 1, three); EEPROM.write(address + 2, two); EEPROM.write(address + 3, one); } long EEPROMReadlong(long address) { //Read the 4 bytes from the eeprom memory. long four = EEPROM.read(address); long three = EEPROM.read(address + 1); long two = EEPROM.read(address + 2); long one = EEPROM.read(address + 3); //Return the recomposed long by using bitshift. return ((four << 0) & 0xFF) + ((three << 8) & 0xFFFF) + ((two << 16) & 0xFFFFFF) + ((one << 24) & 0xFFFFFFFF); } void baca_eeprom(){ HARGA = EEPROMReadlong(addr_harga); if (HARGA == 0xFFFFFFFF ){ HARGA = 0; } }Nah coba masukkan
program nya ke Arduino teman-teman, kemudian tekan tombol A untuk masuk ke menu
setting Harga. Input nilai Harga, tekan pagar untuk me nol kan nya, jika sudahyakin dengan nilai Harga, tegak Pagar. Kemudian program akan kembali ke beranda.Setelah itu coba matikan Arduino nya, kemudian hidup lagi. Awal nya di LCD akantampil harga 0 sebelum di setting, tapi setelah di setting maka harga akantersimpan sesuai dengan nilai yang kita setting tadi. Apakah di matikan atauhidupkan lagi, nilai harga akan tetap sama sampai kita rubah lagi nilai nya..
Program Berikut
Program Berikut
Coba Perhatikanvoid EEPROMWritelong(int address, long value)
{ //Decomposition from a long to 4 bytes by using bitshift. //One = Most significant -> Four = Least significant byte byte four = (value & 0xFF); byte three = ((value >> 8) & 0xFF); byte two = ((value >> 16) & 0xFF); byte one = ((value >> 24) & 0xFF); //Write the 4 bytes into the eeprom memory. EEPROM.write(address, four); EEPROM.write(address + 1, three); EEPROM.write(address + 2, two); EEPROM.write(address + 3, one); } long EEPROMReadlong(long address) { //Read the 4 bytes from the eeprom memory. long four = EEPROM.read(address); long three = EEPROM.read(address + 1); long two = EEPROM.read(address + 2); long one = EEPROM.read(address + 3); //Return the recomposed long by using bitshift. return ((four << 0) & 0xFF) + ((three << 8) & 0xFFFF) + ((two << 16) & 0xFFFFFF) + ((one << 24) & 0xFFFFFFFF); }Pada Program di atas akan memakan memory sebanyak 4 lokasi, jadi ketika
kita buat alamat penyimpanan di atas adalah 0, maka alamat memory yang kitagunakan sebenar nya
adalah alamat 0, 1, 2 dan 3, jadi jika ingin menulis kememory EEPROM dengan data lain,
misalnya hasil penjualan, maka kasih alamat 6,int addr_lain = 6;Agar data di memory
tidakoverlapping, atau data lama di hapus dengan data baru.
loading...
Mas.. boleh minta nomer W,A gk yaa? mau tanya tentang eproom, barangkali bisa bantu dan kerjasama. trmksh.
ReplyDeleteboleh nih mas 085322463651
ReplyDelete