Skip to main content

Cara Menggunakan EEPROM pada Arduino untuk menyimpan harga barang dengan Menggunakan Keypad 4x4

loading...



Hai..... hai.... hai.....
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 Tanpa Library
Arduino Tanpa Library
Biar Seru dan gak 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,
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,
§  Arduino bisa Arduino UNO atau Arduino Mega
§  LCD 16×2 dengan I2c LCD
§  Keypad 4×4
Setelah semua bahan sudah ada, coba kita lihat program di bawah ini
sudah ada, coba kita lihat program di bawah ini
Fungsi EEPROM Arduino
Fungsi EEPROM Arduino, EEPROM ini memiliki fungsi yang sangat banyak pada
Bisa juga kita gunakan
eeprom arduino
Contoh Aplikasi EEPROM
Biar Seru dan gak
§  Arduino bisa Arduino UNO atau Arduino Mega
§  LCD 16×2 dengan I2c LCD
§  Keypad 4×4
Setelah 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 Perhatikan
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);
      }



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...

Comments

  1. Mas.. boleh minta nomer W,A gk yaa? mau tanya tentang eproom, barangkali bisa bantu dan kerjasama. trmksh.

    ReplyDelete

Post a Comment

POSTINGAN POPULER

MRT, LRT, dan KRL: Apa Bedanya?

Jakarta! Penduduknya sekarang udah lebih dari 10 juta. Belom lagi jutaan lainnya yang dateng tiap hari pake motor, gerobak, dan mobil — yang bikin Jakarta, banyak diprediksi, bakal terancam ngga bisa gerak, pada tahun 2020. Makanya ide bikin transportasi massal, sebenernya udah ada dari  zaman Pak Habibie. Yang akhirnya, setelah sekian lama, baru sekarang transportasi massal baru di Jakarta, bakal mulai beroperasi! Tapi, sebenernya apa itu MRT dan LRT? Apa bedanya mereka sama KRL? Ini Dia Perbedaannya! Oke, kalau dibandingin, dari kecepatannya, jumlah gerbongnya, muatnya bisa berapa, sampai lintasannya… Mereka semua ini jelas beda-beda. Jadi, MRT itu bisa lebih banyak ngangkut orang dan rutenya lebih banyak di pusat kota. Beda sama LRT yang lebih ramping, tapi jalur operasionalnya lebih luas daripada MRT. Sedangkan KRL, karena emang udah dibangun dari lama, bisa ngejangkau banyak orang dan rutenya bisa sampe lu...

DOWNLOAD E-BOOK In situ Characterization of Thin Film Growth (Woodhead Publishing in Materials)

DOWNLOAD In situ Characterization of Thin Film Growth (Woodhead Publishing in Materials) Gertjan Koster ,  Guus Rijnders Year: 2012 Language: English Pages: 289 Disini kami menyediakan banyak e-book gratis untuk anda silahkan klik download atau anda dapat mendonload e-book lainnya di halaman e-book diatas. Berikan komentar dan saran anda seputar situs ini di bagian kolom komentar. Selain itu anda juga dapat mengikuti situs ini agar mudah ditemukan jika suatu waktu anda hendak kembali berkunjung ke situs ini. Untuk mengikuti situs ini silahkan anda klik subscribe di jendela atas terima kasih .............. penulis cara downloadnya : 1. klik DOWNLOAD 2. verifikasi reCAPTHA 3. klik VISIT LINK 4. klik Get Link

SAKADANG PEUCANG JEUNG BUAYA

Sakadang Buhaya keur moyan di sisi walungan. Jol sakadang Peucang. “Rék naon Sakdang Peucang ka dieu? Rék maling cai, nya? Di leuweung euweuh cai. Da halodo banget.” Jawab Peucang, “Kuring mah tara nginum deui cai walungan. Komo ayeuna keur saat. Nya teu ngeunah nya loading... kiruh. Ayeuna mah nginum téh cai kalapa. Nya beresih nya ngeunah. Amis.” “Rék naon atuh kadieu?” cék Buhaya. Omong Peucang, “Tadina mah rék ngalalajoan kulit sampéan. Resep ting gareret, hérang. Komo mun katojo ku panonpoé. Euweuh baé nu kulitna alus saperti kulit sampéan. Ngan geuning bet kotor. Pinuh ku leutak.” Omong Buhaya, “Walungan saat. Kuring teu bisa teuteuleuman pikeun meresihan tonggong.” “Emh, lebar. Kulit saalus-alus jadi kotor. Kumaha mun diberesihan ku kuring” ceuk Peucang. “Nya sukur baé ari daek mah,” jawab Buhaya, “kumaha caranya?”, ceuk Buhaya keneh “Kulit tonggong sampéan dikumbah ku kuring. Tapi caina kudu anu beresih. Tuh di tengah!, ceuk Peucang “Pek atuh. G...

DOWNLOAD E-BOOK Thin Film Analysis by X-Ray Scattering

DOWNLOAD Thin Film Analysis by X-Ray Scattering Mario Birkholz Year: 2006 Language: English Pages: 356 Disini kami menyediakan banyak e-book gratis untuk anda silahkan klik download atau anda dapat mendonload e-book lainnya di halaman e-book diatas. Berikan komentar dan saran anda seputar situs ini di bagian kolom komentar. Selain itu anda juga dapat mengikuti situs ini agar mudah ditemukan jika suatu waktu anda hendak kembali berkunjung ke situs ini. Untuk mengikuti situs ini silahkan anda klik subscribe di jendela atas  terima kasih .............. penulis cara downloadnya : 1. klik DOWNLOAD 2. verifikasi reCAPTHA 3. klik VISIT LINK 4. klik Get Link

REPRESENTASI SINYAL DALAM DOMAIN WAKTU DAN DOMAIN FREKUENSI

MODUL 3 REPRESENTASI SINYAL DALAM DOMAIN WAKTU DAN DOMAIN FREKUENSI I.           TUJUAN Mahasiswa mampu menjelaskan perbedaan sinyal wicara dalam domain waktu dan domain frekuensi menggunakan perangkat lunak                                                                                                                        ...

Menganalisis Bunyi Beep Saat Menyalakan Laptop

spAcer pernahkah kamu mengalami bunyi “beep’” saat kamu menyalakan perangkat laptop atau komputer kamu? Umumnya suara “beep” akan keluar dari laptop atau komputer tiap kali melakukan proses booting sebelum akhirnya laptop atau komputer berhasil masuk kedalam sistem operasi. Namun tahukah kamu pada dasarnya bunyi “beep” bukan tidak sengaja muncul. Bunyi “beep” yang keluar dari perangkat laptop atau komputer kamu merupakan pertanda masalah tertentu yang terjadi pada laptop atau komputer kamu. Analisis suara seperti ini memang seringkali digunakan bagi seorang troubleshooter (penganalisa masalah pada komputer). Bunyi “beep” pendek sekali dapat mengindikasikan bahwa komputer atau laptop kamu berhasil melakukan dan menghidupkan semua komponen yang dibutuhkan untuk prosse boot up sebuah perangkat komputer. Jjika bunyi ini terdengar namun perangkat tidak menyala, cobalah cek monitor kamu. Sedangkan bunyi “beep” pendek 2 kali dapat berarti terdapat masalah pada konfigurasi atau setting CMOS. U...

LANGKAH UTAMA PEMEROGRAMAN, TRNASFER DATA ASSEMBLER DIRECTIVE, OPERASI I/0 PADA PORT

STRUKTUR BAHASA ASMBELER AVR Bahasa yang akan dipakai untuk memperogram mikrokontroler AVR adalah Bahasa assembly AVR. Struktur Bahasa assembly terdiri dari paling banyak empat medan (field), yaitu medan abel, medan kode operasi (mnemonic), medan operand dan medan komentar. Contoh : Mulai :   mov        r16, r17                  :salin data dari register r17 ke register r16 Mulai = label Mov = operand R16, r17 = operand Dan yang palinga kanan adalah komentar ·          Label mewakili alamat intruksi (atau data). Jika program bercabang ke intruksi ini, maka label ini digunakan oleh intruksi branch. Nama label harus diakhiri dengan ttanda titik dua. ·          Mnemonic merupakan operasi yang harus dikerjakan. ·          Operand adalah...

DOWNLOAD E-BOOK A Guide To Chalcogen-Nitrogen Chemistry

DOWNLOAD A Guide To Chalcogen-Nitrogen Chemistry Tristram Chivers Chalcogen-nitrogen chemistry involves the study of compounds that exhibit a linkage between nitrogen and sulfur, selenium or tellurium atoms. Such studies have both fundamental and practical importance. A Guide to Chalcogen-Nitrogen Chemistry examines the role of chalcogen-nitrogen compounds in areas ranging from solid-state inorganic chemistry to biochemistry. The discussion covers fundamental questions concerning the bonding in electron-rich systems, as well as potential practical applications of polymers and materials with novel magnetic or electrical properties. This book is the only account of this important topic to appear in the last twenty-five years, and coupled with its extensive literature coverage of very recent developments, this  comprehensive guide is essential for anyone working in the field. The treatment is unique in providing a comparison of sulfur, selenium and tellurium systems, with ...

DOWNLOAD E-BOOK CCNA Cisco Certified. Network Associate

DOWNLOAD CCNA Cisco Certified. Network Associate Lammle Todd Year: 2006 Language: ru Pages: 576 Disini kami menyediakan banyak e-book gratis untuk anda silahkan klik download atau anda dapat mendonload e-book lainnya di halaman e-book diatas. Berikan komentar dan saran anda seputar situs ini di bagian kolom komentar. Selain itu anda juga dapat mengikuti situs ini agar mudah ditemukan jika suatu waktu anda hendak kembali berkunjung ke situs ini. Untuk mengikuti situs ini silahkan anda klik subscribe di jendela atas  terima kasih .............. penulis cara downloadnya : 1. klik DOWNLOAD 2. verifikasi reCAPTHA 3. klik VISIT LINK 4. klik Get Link

KISI-KISI UJIAN SKD CPNS PERKEMBANGAN HUKUM DI INDONESIA

1.     Pengertian Hukum a.      Hans Kelsen, hukum itu bersifat hierarkis, artinya hukum tidak boleh bertentangan dengan ketentuan yang lebih atas derajatnya. b.      Aristoteles, hukum tertentu pada hukum yang dianut oleh masyarakat yang digunakan atau berlaku untuk anggota masyarakat itu. c.       Grotius, hukum adalah aturan tingkah laku moral yang mewajibkan untuk berbuat benar. d.      M. Mayers, hukum adalah semua aturan yang mengandung pertimbangan kesusilaan, ditujukan kepada tingkah laku manusia dalam masyarakat, dan yang menjadi pedoman bagi penguasa Negara dalam melaksanakan tugasnya. e.      Immanuel Kant, hukum adalah keseluruhan syarat-syarat yang dengan ini kehendak bebas dari orang yang satu dapat menyesuaikan diri dengan kehendak bebas dari orang lain, menuruti peraturan hukum tentang kemerdekaan. f.        U...