Dalam tutorial Arduino kali ini akan membahas mengenai project sederhana pencatat data (logger) dengan menggunakan sensor suhu LM35. Nilai pembacaan sensor suhu tersebut akan disimpan ke EEPROM. Setelah data disimpan di EEPROM, nilai suhu yang tersimpan disana dapat dilihat dengan menggunakan source code (sketch) membaca EEPROM dan menampilkannya ke Serial Monitor pada Arduino IDE. Untuk wiring diagram antara Arduino dengan sensor suhu LM35, tampak seperti pada gambar.
Dengan satu pin LM35 ke Vcc, satu lagi ke Ground, dan satu lagi ke pin analog Arduino A0. Untuk source code (sketch) yang digunakan dalam menyimpan data ke EEPROM Arduino ialah sebagai berikut.
/*
Program data logger suhu
sensor LM35 ke EEPROM
Loki Lang
*/
#include <EEPROM.h>
int address = 0;
void setup()
{
Serial.begin(9600);
}
void loop()
{
int val;
float temp;
while(address < 512);
{
val = analogRead(A0);
delay(10);
temp = val * 5;
temp *= 100;
temp /= 1023;
EEPROM.write(address, temp);
address += 1;
Serial.print(address);
Serial.print("\t");
Serial.print(temp, DEC);
}
}
Program data logger suhu
sensor LM35 ke EEPROM
Loki Lang
*/
#include <EEPROM.h>
int address = 0;
void setup()
{
Serial.begin(9600);
}
void loop()
{
int val;
float temp;
while(address < 512);
{
val = analogRead(A0);
delay(10);
temp = val * 5;
temp *= 100;
temp /= 1023;
EEPROM.write(address, temp);
address += 1;
Serial.print(address);
Serial.print("\t");
Serial.print(temp, DEC);
}
}
Adapun penjelasan untuk source code (sketch) program Arduino data logger sensor suhu LM35 ke EEPROM ialah sebagai berikut.
- Agar library EEPROM dapat digunakan perlu mencakup file header EEPROM.h terlebih dahulu
- EEPROM board Arduino Uno memiliki alamat dari 0 hingga 511 total ada 512
- Variable address merupakan alamat EEPROM tempat menyimpan data, sedangkan variable val ialah nilai pembacaan ADC pada pin analog A0
- Variable temp nilai suhu pembacaan sensor LM35 dalam celsius, diperoleh dari hasil perkalian nilai ADC terbaca dengan konstatanta untuk nilai ADC ke celsius
- Bagian utama dalam menyimpan data ke EEPROM pada instruksi EEPROM.write(address, temp), yang mana nilai suhu terbaca variable temp akan disimpan pada EEPROM dengan alamat address
- Setelah data disimpan pada alamat address, dilakukan increment address untuk digunakan sebagai tempat penyimpanan data selanjutnya
- Proses increment alamat address tersebut dilakukan hingga mencapai alamat ke 511
- Dengan menggunakan batasan penyimpanan nilai suhu ke EEPROM ini hanya dilakukan sebanyak 512 kali, lihat syarat perulangan while()
- Bagian komunikasi serial bersifat optional
Saat ini di Indonesia board Arduino Uno R3 dapat diperoleh dengan mudah di kota-kota besar. Board Arduino Uno R3 dijual dengan harga murah. Membuat perkembangan Arduino kian pesat. Bila ada sesuatu yang belum jelas dan ingin tahu lebih dalam seputar project Arduino, pemrograman, dan elektronika, bisa bertanya pada bagian comment.