PRAKTIKUM_8
-
Upload
pandu-thegokils -
Category
Documents
-
view
43 -
download
0
description
Transcript of PRAKTIKUM_8
PRAKTIKUM 8
EEPROM MEMORY
TUJUAN :
1. Mampu membuat progr am untuk melakukan penyimpanan data pad a memori eeprom.
2. Mampu membuat progr am untuk melakukan pembacaan data dari m emori eeprom.
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 opera tion");
Serial.println("write : For write
data to EEPROM");
Serial.println("read
: For read data from EEPROM");
Serial.println("clear : Forclear 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();
Modul Praktikum Mikrokontr oler - Eko RudiawanJurusan Teknik ElektroPoliteknik Negeri Batam 58
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;nt 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;}
Modul Praktikum Mikrokontr oler - Eko RudiawanJurusan Teknik ElektroPoliteknik Negeri Batam 59
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() {
Modul Praktikum Mikrokontr oler - Eko RudiawanJurusan Teknik ElektroPoliteknik Negeri Batam 60
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);
}
Tugas dan Pertanyaa n :
1. Jalankan aplikasi S erial Monitor pada Arduino, pastikan konfigu rasi Serial
Monitor menggunakan baud rate 9600 dan pada akhir pengiriman data disertakan
karakter CR + LF. Lakukan penulisan data pada memori alamat 100, dengan data
bernilai 10. Kemudian kel uar dari program dan matikan power Arduino dan
nyalakan kembali. Lakukan pembacaan data pada alamat 100, berapak ah nilai data
pada alamat 100 ? Apaka h data yang dituliskan sebelumnya hilang ?
2. Kenapa pada progra m penulisan data hanya dibatasi sampai 512 ? Jelaskan !
3. Kenapa pada progr am alamat memori yang dapat ditulisi data h anya sampai 512 ?
Jelaskan !
4. Buatlah kesimpulan dari praktikum ini !
Modul Praktikum Mikrokontr oler - Eko Rudiawan
Jurusan Teknik ElektroPoliteknik Negeri Batam 61