#include <Servo.h>
Servo hourServo;
Servo minuteServo;
const int ledSecondPin = 3;
const int ledMinutePin1 = 7;
const int ledMinutePin2 = 8;
const int ledMinutePin3 = 9;
const int ledMinutePin4 = 10;
int hour = 1;
int minute = 0;
int second = 0;
bool secondLEDOn = true;
int hourDegreeMultiplier = 15;
int minuteDegreeMultiplier = 3;
void setup()
{
Serial.begin(9600);
hourServo.attach(9); //Pwm pin
minuteServo.attach(8);
pinMode(ledSecondPin, OUTPUT);
pinMode(ledMinutePin1, OUTPUT);
pinMode(ledMinutePin2, OUTPUT);
pinMode(ledMinutePin3, OUTPUT);
pinMode(ledMinutePin4, OUTPUT);
}
void loop() {
hourServo.write(hour * hourDegreeMultiplier);
minuteServo.write(minute * minuteDegreeMultiplier);
if(secondLEDOn){
digitalWrite(ledSecondPin, HIGH);
secondLEDOn = false;
}else{
secondLEDOn = true;
digitalWrite(ledSecondPin, LOW);
}
int minuteMod = minute % 5;
if(minuteMod == 1){
digitalWrite(ledMinutePin1, HIGH);
}else if(minuteMod == 2){
digitalWrite(ledMinutePin1, HIGH);
digitalWrite(ledMinutePin2, HIGH);
}else if(minuteMod == 3){
digitalWrite(ledMinutePin1, HIGH);
digitalWrite(ledMinutePin2, HIGH);
digitalWrite(ledMinutePin3, HIGH);
}else if(minuteMod == 4){
digitalWrite(ledMinutePin1, HIGH);
digitalWrite(ledMinutePin2, HIGH);
digitalWrite(ledMinutePin3, HIGH);
digitalWrite(ledMinutePin4, HIGH);
}else{
digitalWrite(ledMinutePin1, LOW);
digitalWrite(ledMinutePin2, LOW);
digitalWrite(ledMinutePin3, LOW);
digitalWrite(ledMinutePin4, LOW);
}
if(second == 59){
second = 0;
if(minute == 59){
minute = 0;
if(hour == 12){
hour = 1;
}else{
hour++;
}
}else{
minute++;
}
}else{
second++;
}
Serial.write(hour);
Serial.write(minute);
Serial.write(second);
//delay(100);
delay(1000);
}