LED_binary_clock_code
LED_binary_clock_code
#include <Time.h>
#include <TimeLib.h>
// seconds
int led1 = 22;
int led2 = 23;
int led3 = 24;
int led4 = 25;
int led5 = 26;
int led6 = 27;
int led7 = 28;
// minutes
int led8 = 29;
int led9 = 30;
int led10 = 31;
int led11 = 32;
int led12 = 33;
int led13 = 34;
int led14 = 35;
// hours
int led15 = 36;
int led16 = 37;
int led17 = 38;
int led18 = 39;
int led19 = 40;
int led20 = 41;
void setup() {
// initialize output pins for seconds
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);
pinMode(led5, OUTPUT);
pinMode(led6, OUTPUT);
pinMode(led7, OUTPUT);
// take as input time in sec, min, hr as ints and then output to Binary LED layout
void UpdateDisplay(int seconds, int minutes, int hours) {
/* Seconds Count */
int seconds_ones = 0;
int seconds_tens = 0;
/* Minutes Count */
int minutes_ones = 0;
int minutes_tens = 0;
/* Hours Count */
switch(hours_ones) {
case 0:
digitalWrite(led15, LOW);
digitalWrite(led16, LOW);
digitalWrite(led17, LOW);
digitalWrite(led18, LOW);
break;
case 1:
digitalWrite(led15, HIGH);
break;
case 2:
digitalWrite(led15, LOW);
digitalWrite(led16, HIGH);
break;
case 3:
digitalWrite(led15, HIGH);
break;
case 4:
digitalWrite(led15, LOW);
digitalWrite(led16, LOW);
digitalWrite(led17, HIGH);
break;
case 5:
digitalWrite(led15, HIGH);
break;
case 6:
digitalWrite(led15, LOW);
digitalWrite(led16, HIGH);
break;
case 7:
digitalWrite(led15, HIGH);
break;
case 8:
digitalWrite(led15, LOW);
digitalWrite(led16, LOW);
digitalWrite(led17, LOW);
digitalWrite(led18, HIGH);
break;
case 9:
digitalWrite(led15, HIGH);
break;
}
}
}
// function to reset the display after entering another mode
void ResetDisplay() {
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
digitalWrite(led5, LOW);
digitalWrite(led6, LOW);
digitalWrite(led7, LOW);
digitalWrite(led8, LOW);
digitalWrite(led9, LOW);
digitalWrite(led10, LOW);
digitalWrite(led11, LOW);
digitalWrite(led12, LOW);
digitalWrite(led13, LOW);
digitalWrite(led14, LOW);
digitalWrite(led15, LOW);
digitalWrite(led16, LOW);
digitalWrite(led17, LOW);
digitalWrite(led18, LOW);
digitalWrite(led19, LOW);
digitalWrite(led20, LOW);
}
// to be added
// to be added
void loop() {
if (digitalRead(hr_button) == LOW) {
adjustTime(3600); // add 3600 sec or 1 hr
}
if (digitalRead(randomize_button) == LOW) {
Randomize();
}
if (digitalRead(wave_button) == LOW) {
Wave();
}