#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <Wire.h>
#include "RTClib.h"
RTC_DS1307 rtc;
char daysOfTheWeek[7][12] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define OLED_RESET -1 // Reset pin is not used
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
#define buttonPinUp 2
#define buttonPinDown 3
#define buttonPinSelect 1
const int TIME = 1000;
#define ledRED1 13
#define ledRED2 12
#define ledRED3 11
#define ledRED4 10
#define ledORG1 9
#define ledORG2 8
#define ledORG3 7
#define ledORG4 6
#define ledYEL1 5
#define ledYEL2 4
#define ledYEL3 A0
#define ledYEL4 A1
#define ledGRN1 A2
#define ledGRN2 A3
#define ledGRN3 A6
#define ledGRN4 A7
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
if (! rtc.begin()) {
Serial.println("Couldn't find RTC");
Serial.flush();
abort();
}
pinMode(buttonPinUp, INPUT_PULLUP);
pinMode(buttonPinDown, INPUT_PULLUP);
pinMode(buttonPinSelect, INPUT_PULLUP);
pinMode(ledRED1, OUTPUT);
pinMode(ledRED2, OUTPUT);
pinMode(ledRED3, OUTPUT);
pinMode(ledRED4, OUTPUT);
pinMode(ledORG1, OUTPUT);
pinMode(ledORG2, OUTPUT);
pinMode(ledORG3, OUTPUT);
pinMode(ledORG4, OUTPUT);
pinMode(ledYEL1, OUTPUT);
pinMode(ledYEL2, OUTPUT);
pinMode(ledYEL3, OUTPUT);
pinMode(ledYEL4, OUTPUT);
pinMode(ledGRN1, OUTPUT);
pinMode(ledGRN2, OUTPUT);
pinMode(ledGRN3, OUTPUT);
pinMode(ledGRN4, OUTPUT);
//pinMode(buttonPinSelect, INPUT_PULLUP);
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
display.clearDisplay();
display.setTextSize(2);
display.setTextColor(SSD1306_WHITE);
display.print("TIME:");
display.display();
}
void ledRotation(){
//RED LED
digitalWrite(ledRED1, HIGH);
delay(TIME);
digitalWrite(ledRED1, LOW);
delay(TIME);
digitalWrite(ledRED2, HIGH);
delay(TIME);
digitalWrite(ledRED2, LOW);
delay(TIME);
digitalWrite(ledRED3, HIGH);
delay(TIME);
digitalWrite(ledRED3, LOW);
delay(TIME);
digitalWrite(ledRED4, HIGH);
delay(TIME);
digitalWrite(ledRED4, LOW);
delay(TIME);
//ORANGE LED
digitalWrite(ledORG1, HIGH);
delay(TIME);
digitalWrite(ledORG1, LOW);
delay(TIME);
digitalWrite(ledORG2, HIGH);
delay(TIME);
digitalWrite(ledORG2, LOW);
delay(TIME);
digitalWrite(ledORG3, HIGH);
delay(TIME);
digitalWrite(ledORG3, LOW);
delay(TIME);
digitalWrite(ledORG4, HIGH);
delay(TIME);
digitalWrite(ledORG4, LOW);
delay(TIME);
//YELLOW LED
digitalWrite(ledYEL1, HIGH);
delay(TIME);
digitalWrite(ledYEL1, LOW);
delay(TIME);
digitalWrite(ledYEL2, HIGH);
delay(TIME);
digitalWrite(ledYEL2, LOW);
delay(TIME);
digitalWrite(ledYEL3, HIGH);
delay(TIME);
digitalWrite(ledYEL3, LOW);
delay(TIME);
digitalWrite(ledYEL4, HIGH);
delay(TIME);
digitalWrite(ledYEL4, LOW);
delay(TIME);
//GREEN LED
digitalWrite(ledGRN1, HIGH);
delay(TIME);
digitalWrite(ledGRN1, LOW);
delay(TIME);
digitalWrite(ledGRN2, HIGH);
delay(TIME);
digitalWrite(ledGRN2, LOW);
delay(TIME);
digitalWrite(ledGRN3, HIGH);
delay(TIME);
digitalWrite(ledGRN3, LOW);
delay(TIME);
digitalWrite(ledGRN4, HIGH);
delay(TIME);
digitalWrite(ledGRN4, LOW);
delay(TIME);
}
void loop() {
// put your main code here, to run repeatedly:
ledRotation();
}