#include <Wire.h>
#include "RTClib.h"
#define Led 2
#define Pot A0
RTC_DS1307 rtc;
int pot_value;
char DaysinaWeek[7][12] = {"Minggu", "Senin", "Selasa", "Rabu", "Kamis", "Jumat", "Sabtu"};
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
//LED and potensio set up
pinMode(Led, OUTPUT);
pinMode(Pot, INPUT);
//RTC set up
if (! rtc.begin()) {
Serial.println("RTC Not reading");
while (1);
}
if (! rtc.isrunning()) {
Serial.println("RTC is NOT running!");
rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));//update rtc dari waktu komputer
}
}
void LedControl() {
pot_value = analogRead(Pot);
pot_value = map(pot_value, 0, 1023, 0, 255);
analogWrite(Led, pot_value);
Serial.print("Nilai analog potensio adalah: ");
Serial.println(pot_value);
if ( pot_value == 0) {
Serial.println("Terang lampu 0%");
}
else if (pot_value > 0 && pot_value <= 63) {
Serial.println("Terang lampu 25%");
}
else if (pot_value > 63 && pot_value <= 127) {
Serial.println("Terang lampu 50%");
}
else if (pot_value > 127 && pot_value <= 192) {
Serial.println("Terang lampu 75%");
}
else {
Serial.println("Terang lampu 100%");
}
}
void DisplayTime() {
DateTime now = rtc.now();
Serial.print(DaysinaWeek[now.dayOfTheWeek()]);
Serial.print(',');
Serial.print(now.day(), DEC);
Serial.print('/');
Serial.print(now.month(), DEC);
Serial.print('/');
Serial.print(now.year(), DEC);
Serial.print(" ");
Serial.print(now.hour(), DEC);
Serial.print(':');
Serial.print(now.minute(), DEC);
Serial.print(':');
Serial.print(now.second(), DEC);
Serial.println();
}
void loop() {
// put your main code here, to run repeatedly:
LedControl();
DisplayTime();
delay(3000);
}