ingin tauw kejelasaannya silakan baca sampai tuntas ya gan...?????
PERALATAN :
|
||
1.
|
Komputer
|
: 1 s et
|
2.
|
Arduino Uno
|
: 1 pcs
|
3.
|
Kabel USB tipe B : 1
pcs
|
PERCOBAAN :
8.1 Baca dan Tulis Memori
EEPROM
Pada percobaan kali ini akan dibuat
program yang berfungsi sebagai antarmuka penanganan memori eeprom. Antarmuka
program menggunakan komunikasi serial. Melalui Serial Termina l atau aplikasi
lainnya, user dapat melakuka n perintah baca dan tulis dari atau ke memori
eeprom.
Prosedur :
1. Tuliskan sintaks p rogram berikut
ini pada Arduino IDE, kemudian lakukan kompilasi dan uplo ad program ke
mikrokontroler,
#include
<EEPROM.h> boolean exitProgram = 0;
void setup() {
Serial.begin(9600);
|
|||
Serial.println("=========
EEPROM
|
Access Via
|
Serial
|
==== ====");
|
Serial.println("Type this command
|
to execute
|
EEPROM operation");
|
|
Serial.println("write : For write
|
data to
EEPROM");
|
Serial.println("read
|
: For read
|
data
|
from
|
EEPROM");
|
||
Serial.println("clear :
|
For
|
clear all
|
data
|
in EEPROM");
|
||
Serial.println("exit
|
:
|
For
|
exit
|
from
|
program");
|
|
}
|
void loop() { int command;
while(!exitProgram) { do {
Serial.print("Type Command >> "); while(Serial.available()==0);
command = readCommandFromSerial();
switch(command) {
case 1 : Serial.println("Write
EEPROM Selected"); writeEEPROM();
break;
case 2 : Serial.println("Read
EEPROM Selected"); readEEPROM();
break;
case 3 : Serial.println("Clear
EEPROM Selected"); clearEEPROM();
Serial.println("Clear EEPROM Finished");
break;
case 4 : Serial.println("Exit
From Program"); exitProgram = 1;
break;
default : Serial.println("Wrong
Command, Please Ty pe Again !");
break;
}
}
while(command == 0);
}
}
int readCommandFromSerial()
{
char stringFromSerial[10];
char data;
int command;
int countData = 0;
for(int i=0;i<10;i++)
{
stringFromSerial[i]=0;
}
while(true) { if(Serial.available())
{
data =
Serial.read(); Serial.write(data); if(data=='\n')
{
break;
}
else { if(data!='\r')
{
stringFromSerial[countData]
= data; countData++;
}
}
}
}
if(strcmp(stringFromSerial,"write")==0){ command = 1;
}
else if(strcmp(stringFromSerial,"read")==0){ command = 2;
}
else if(strcmp(stringFromSerial,"clear")==0){ command = 3;
}
else if(strcmp(stringFromSerial,"exit")==0){ command = 4;
}
else{
command = 0;
}
return command;
}
int readValFromSerial() { char stringFromSerial[10]; char data;
int val;
int countData = 0; for(int i=0;i<10;i++)
{
stringFromSerial[i]=0;
}
while(true) { if(Serial.available()) {
data =
Serial.read(); Serial.write(data); if(data=='\n') {
break;
}
else { if(data!='\r') {
stringFromSerial[countData]
= data; countData++;
}
}
}
}
sscanf(stringFromSerial,"%d",&val); return
val;
}
void clearEEPROM() { for(int i=0;i<512;i++) {
EEPROM.write(i,0);
}
}
void writeEEPROM() { int address;
do {
Serial.print("Address : "); address =
readValFromSerial(); if(address>512) {
Serial.println("Addres
maximal is 512 !, Please type again !");
}
}
while(address>512); int data;
do {
Serial.print("Data : "); data = readValFromSerial(); if(data>512) {
Serial.println("Data
maximal is 512 !, Please type ag ain !");
}
}
while(data>512); EEPROM.write(address,data); Serial.println("EEPROM Write Success !");
}
void readEEPROM() {
int address; do {
Serial.print("Address : "); address =
readValFromSerial(); if(address>512) {
Serial.println("Addres
maximal is 512 !, Please type again !");
}
}
while(address>512);
int data =
EEPROM.read(address); Serial.print("Data in Address ");
Serial.print(address,DEC); Serial.print(" : "); Serial.println(data,DEC);
}
==> buka serial monitor dan ketik :
1. write
2. masukan addres yang ingin dimasukan data("dari 1-512")
3. masukan data yang anda inginkan ("dari 1-512")
4. matikan arduino dan hidupkan lagi
5. buka serial monitor
6. ketik : read
7. masukan alamat yang anda masukan tadi.
<<<>>>>> kesimpulan dari percobaan ini adalah kita dapat menyimpan data tanpa takut kehilangan data tersebut karena arduino mati dll. dan karena kita mengunakan arduino 8 bit kita hanya bisa memasukan data dan alamat sebsar 512
sekian dan terimah kasih kalau banyak salah ya mohon maklum namanya juga baru belajar....
AARRIGATOOOO GOSAIMAS......
AARRIGATOOOO GOSAIMAS......
Tidak ada komentar:
Posting Komentar