DIY Tutorial EEPROM

Hallo.
setelah berpusing ria karna sibuk mengerjakan TA. akhirnya saya belajar EEPROM, entah saya berpikir apa itu EEPROM, apa fungsinya, setelah saya berdiskusi dengan dosen sekaligus pembimbing saya, beliau menyinggung masalah EEPROM dan saya teringat apa itu EEPROM lalu saya bertanya dan akhirnya saya mengetahui pengertiannya saja. akhirnya saya coba pelajari menggunakan Arduino Uno dan Mega saya, setelah berpusing ria akhirnya saya sedikit mengerti bagaimana cara kerja eeprom itu sendiri.

EEPROM.read berfungsi untuk membaca nilai yang tersimpan didalam address yang kita gunakan, address ini memliki nilai antara 0 - 512, kita bebas memilihnya, dan saya menggunakan address 100, kenapa 100? kan terserah.

EEPROM.write berfungsi untuk menyimpan data yang kita dapat kedalam eeprom yang nantinya jika kita matikan board arduinonya, nilai yg kita dapat tidak tereset ke nilai awal tapi akan dimulai ke nilai terakhir yang kita dapat,nah penulisan EEPROM.write pada arduino seperti ini "EEPROM.write(address, nilai);". address disitu adalah alamat dimana kita akan menyimpan data yang kita dapat, sedangkan nilai, adalah data yg kita dapat. 

berikut script program buatan saya semoga berguna
----------------------------------------------------------------
/*
tutorial EEPROM read and write

i hope you can do it with my tutorial.
i can help you want i can

thanks,
Bintang

email : mc.bintang@gmail.com
*/

#include <EEPROM.h>


int addr = 100;                       // Address, you can change between 0 - 512
int val;                              // range 0 - 255
int serial;                                                 

void setup()
{
  Serial.begin(9600);
 
  Serial.println("====== ~ Welcome ~ ======");
  Serial.println("Please Clear Before Using");
  Serial.println("=========================");
  Serial.print("type");
  Serial.print("        ");
  Serial.println("Function");
  Serial.print("+  :");
  Serial.println("   val + 1");
  Serial.print("-  :");
  Serial.println("   val - 1");
  Serial.print("C  :");
  Serial.println("   Clear Val = 0");
  Serial.println("=========================");
}

void loop()
{

   
  if (Serial.available())
  {
    delay(100);

    while (Serial.available() > 0)
    {    
      serial = Serial.read();
      val  = EEPROM.read(addr);
       
      if(serial == '+')
      {
        if(val <= 254)
        {    
          val = val + 1;
          EEPROM.write(addr, val);
          Serial.print("+");
          Serial.print("      :   ");
          Serial.println(val);
         
          while(val == 255)
          {
            Serial.print("+");
            Serial.print("      :   ");
            Serial.println("FULL MEMORY! Please Clear / -");
            break;
          }
        }
      }
     
      if(serial == '-')
      {     
         if(val == 0)
         {
           Serial.print("-");
           Serial.print("      :   ");
           Serial.println("FULL MEMORY! Please Clear / +");
         }
           
         else
         {
           val = val - 1;
           EEPROM.write(addr, val);
           Serial.print("-");
           Serial.print("      :   ");
           Serial.println(val);
         }
      }
     
      // clear Data on Address
      while(serial == 'c')
      {
        val = 0;
        EEPROM.write(addr, val);
        Serial.print("clear");
        Serial.print("  :   ");
        Serial.println(val);
        break;
      }
      delay(300);
    }
  }
}
-------------------------------------------------------------------

ya sekian dulu, jika ada pertanyaan silahkan email saya

terimakasih,
bintang

Comments

Popular posts from this blog

DIY PCB Layout Potensiometer stereo 100k

Cisco Networking Academy (Packet Tracer) 5.6.1: Skills Integration Challenge-Routing IP Packets