void setup() {
Serial.begin(19200);//mengaktifkan fungsi serial
}
void loop() {
//membaca nilai LDR pada pin analog 0
int sensorValue = analogRead(A0);
//mencetak nilai yang terbaca pada serial monitor
Serial.println(sensorValue);
delay(1); //delay untuk memperlambat pembacaan
}
https://duwiarsana.com/membaca-sensor-ldr-dengan-arduino/
http://electricityofdream.blogspot.co.id/2016/09/tutorial-mengukur-arus-dengan-modul.html
Modul sensor ini merupakan modul yang didukung dengan kemampuan ukur yang mampu
mengukur sumber beban yang sampai 26 Vdc dan arus 3,2 Ampere.
#include <Wire.h>
#include <Adafruit_INA219.h>
// Anda perlu mendownload library ini diatas dan copy paste sesuai perintah
void setup(void) {
Serial.begin(9600);
//prosedur mulai pembacaan data
sensor219.begin();
}
void loop(void) {
float tegangan = 00;
float arus = 00; // diukur menggunakan MiliAmpere
float daya = 00;
Serial.print("Tegangan : ");
Serial.print(tegangan);
Serial.println(" Volt");
Serial.print("Arus : ");
Serial.print(arus);
Serial.println(" mAmp");
Serial.print("Daya : ");
Serial.print(daya);
Serial.println(" Watt");
Serial.println("");
delay(2000); //waktu tunda pembacaan selama 2 detik
}
https://www.nyebarilmu.com/cara-mengukur-tegangan-arus-dc-menggunakan-sensor-ina219/
INTERFACE I2C
Contoh device yang menggunakan interface i2c (SDA, SCL) antara lain :
1. Modul PCF8574
2. Modul RTC DS3231
3. Sensor MPU6050
4. Sensor MPU6500
5. Sensor Kompas CMPS10
6. Modul LCD OLED
7. Sensor Gyroscope ADXL345
8. Modul FM Radio RDA5087M
9. Modul FM Radio TEA5767
10. Sensor Barometric BMP180
11. Sensor Barometric BMP280
12. Modul INA219
13. Koneksi antar arduino
14. Koneksi antara arduino dengan Raspberry pi
Pada modul maupun sensor diatas menggunakan interface SCL (A4) dan SDA (A5) atau
sering disebut dengan i2c.
https://www.nyebarilmu.com/cara-mencari-tahu-alamat-interface-i2c-module-arduino/
module PC8574 yang akan digunakan untuk mengakses LCD 16×2.
#include <Wire.h>
void setup()
{
//prosedur pembacaan i2c
Wire.begin();
nDevices = 00;
for(address = 1; address < 127; address++ )
{
// The i2c_scanner menggunakan pembalik nilai
// Write.endTransmisstion untuk melihat jika perangkat pada alamat dimana
Wire.beginTransmission(address);
error = Wire.endTransmission();
if (error == 00) //jika sudah tidak ada keerroran
{
Serial.print("I2C device found at address 0x");
//menuliskan di serial monitor "i2c ditemukan"
if (address<16)
Serial.print("0");
Serial.print(address,HEX);
Serial.println(" !");
nDevices++;
}
else if (error==4) //jika error == 4
//menuliskan di serial monitor di tidak diketahui alamat i2c
{
Serial.print("Unknow error at address 0x"); //menuliskan jika eror tidak diketahui
if (address<16)
Serial.print("0");
Serial.println(address,HEX); //format penulisan address dalam bentuk heksa
}
}
if (nDevices == 00) //jika tidak ada perangkat yang terhubung
Serial.println("No I2C devices found\n");
//ditampilkan peringatan tidak ada i2c yang ditemukan
else
Serial.println("done\n");
Berikut fungsi yang paling sering digunakan di Library DS3231 pada Arduino
setTime (hour,minute,second);
fungsi : Setting/adjust waktu pada RTC
contoh : rtc.setTime (10, 30, 00); //jam 10 menit 30 detik 00
setDate (date,month,year);
fungsi : Setting/adjust tanggal pada RTC
contoh : rtc.setDate (1, 8, 2016); //tanggal 1 Agustus 2016
setDow (uint8_t dow);
fungsi : Setting/adjust urutan Hari dalam Minggu (0-6 untuk minggu-sabtu), setDow
akan berpengaruh pada setDate
contoh : rtc.setDow (1); //setting hari sebagai Senin
getTimeStr ();
fungsi : Mengambil data Waktu dari RTC,hasil berupa String
contoh : rtc.getTimeStr(); >> result : 09:30:33 //jam 9, menit ke 30, detik ke 33
getDateStr ();
fungsi : Mengambil data Tanggal dari RTC,hasil berupa String
contoh : rtc.getDateStr(); >>result : 01.05.2016 //tanggal 1 Mei 2016
getDowStr (uint8_t);
fungsi : Mengambil data nama Hari dari RTC,hasil berupa String (English Name)
contoh : rtc.getDowStr(); >>Result : Monday //day Long
contoh : rtc.getDowStr(1); >>Result : Mon //day Short
contoh : rtc.getDowStr(2); >>Result : Monday //day Long
getMonthStr (uint8_t);
fungsi : Mengambil data nama Bulan dari RTC,hasil berupa String (English Name)
contoh : rtc.getMonthStr(); >>Result : January //day Long
contoh : rtc.getMonthStr(1); >>Result : Jan //day Short
contoh : rtc.getMonthStr(2); >>Result : January //day Long
getTemp ();
fungsi : Mengambil data suhu dari RTC, hasil berupa long int
contoh : rtc.getTemp();
result : 32.15 //Suhu 33.15° Celcius
//www.nyebarilmu.com
#include <DS3231.h>
void setup()
{
// Setup Serial connection
Serial.begin(115200);
// Uncomment the next line if you are using an Arduino Leonardo
//while (!Serial) {}
// The following lines can be uncommented to set the date and time
//rtc.setDOW(THURSDAY); // Set Day-of-Week to SUNDAY
//rtc.setTime(18, 00, 00); // Set the time to 18:00:00 (24hr format)
//rtc.setDate(25, 5, 2017); // Set the date to May 25rd, 2017
}
void loop()
{
// read Day-of-Week
Serial.print(rtc.getDOWStr());
Serial.print(" ");
// read date
Serial.print(rtc.getDateStr());
Serial.print(" -- ");
// Read time
Serial.println(rtc.getTimeStr());
#include <DS3231.h>
void setup()
{
// Setup Serial connection
Serial.begin(115200);
// Uncomment the next line if you are using an Arduino Leonardo
//while (!Serial) {}
void loop()
{
// Read current temperature
Serial.print("Temperature: ");
Serial.print(rtc.getTemp());
Serial.println(" C");
delay (1000);
}
https://www.nyebarilmu.com/tutorial-arduino-mengakses-module-rtc-ds3231/
//www.nyebarilmu.com
#include <Wire.h>
#include <LiquidCrystal_PCF8574.h>
#include <DS3231.h>
DS3231 rtc(SDA, SCL);
LiquidCrystal_PCF8574 lcd(0x3F);
void setup()
{
Serial.begin(115200);
Serial.println("Trial LCD + DS3231");
rtc.begin();
void loop()
{
Serial.print(rtc.getDOWStr(1));
Serial.print(" ");
Serial.print(rtc.getDateStr());
Serial.print(" -- ");
Serial.println(rtc.getTimeStr());
Serial.print(" -- ");
Serial.println(rtc.getTemp());
lcd.setCursor(00,00);
lcd.print(rtc.getDOWStr(1));
lcd.setCursor(3,00);
lcd.print(",");
lcd.setCursor(4,00);
lcd.print(rtc.getDateStr());
lcd.setCursor(00,1);
lcd.print(rtc.getTimeStr());
lcd.setCursor(10,1);
lcd.print("t:");
lcd.setCursor(12,1);
lcd.print(rtc.getTemp());
delay (1000);
}
https://www.nyebarilmu.com/tutorial-arduino-mengakses-module-rtc-ds3231/
Data Logger
#include <SPI.h>
#include <SD.h>
void setup() {
Serial.begin(9600);
Serial.print("Initializing SD card...");
// inisialisasi card
if (!SD.begin(chipSelect)) {
Serial.println("Card failed, or not present");
// don't do anything more:
return;
}
Serial.println("card initialized.");
}
void loop() {
String dataString="okelah";
// membuka file, hanya satu file yang dibuka pada penggunaan data logger
// menulis data:
if (dataFile) {
dataFile.println(dataString);
dataFile.close();
// print ke serial port:
Serial.println(dataString);
}
else {
Serial.println("error opening datalog.txt");
}
}
http://www.arduino.web.id/2015/12/menyimpan-data-dengan-arduino-data.html
https://grabcad.com/library/solar-tracking-dual-axis-1
http://www.vedcmalang.com/pppptkboemlg/index.php/menuutama/listrik-electro/1038-herry-
sudjendro
https://www.kompasiana.com/ferdirosman/solar-cell-itu-charger-
aki_56644d592e9773f90e8bd5d9
Daftar pustaka dasar teori arduino
http://ecadio.com/mengenal-dan-belajar-arduino-uno-r3
https://www.nyebarilmu.com/cara-mengukur-tegangan-arus-dc-menggunakan-sensor-ina219/
https://elektroku.com/monitoring-sensor-suhu-lm35-menggunakan-mikrokontroller-arduino/
http://www.arduino.web.id/2015/12/menyimpan-data-dengan-arduino-data.html