// This is a clock build around a biaxial stepper motor
// ;P 2024 raphik
#define MOTOR1_PIN 2
#define MOTOR2_PIN 3
#define SENSEx_PIN 4
unsigned long oldSecondsMinuteHand = millis() / 1000;
unsigned long oldSecondsHourHand = oldSecondsMinuteHand;
unsigned long newSecondsMinuteHand = oldSecondsMinuteHand;
unsigned long newSecondsHourHand = oldSecondsHourHand;
// ambas saetas: 1 vuelta = 200 tics
// la saeta de los minutos: 3600 segundos = 200 tics
int secondsPerTicMinuteHand = 18; // = 3600 / 200
// la saeta de las horas: 43200 segundos = 200 tics
int secondsPerTicHourHand = 216; // = 43200 / 200
void setup() {
pinMode(MOTOR1_PIN, OUTPUT);
pinMode(MOTOR2_PIN, OUTPUT);
pinMode(SENSEx_PIN, OUTPUT);
digitalWrite(SENSEx_PIN, HIGH);
//Serial.begin(9600);
}
void loop() {
newSecondsMinuteHand = millis()/1000;
if ( newSecondsMinuteHand - oldSecondsMinuteHand >= ( secondsPerTicMinuteHand ) ) {
oldSecondsMinuteHand = newSecondsMinuteHand;
digitalWrite(MOTOR1_PIN, HIGH);
digitalWrite(MOTOR1_PIN, LOW);
delay(5);
}
newSecondsHourHand = newSecondsMinuteHand;
if ( newSecondsHourHand - oldSecondsHourHand >= ( secondsPerTicHourHand ) ) {
oldSecondsHourHand = newSecondsHourHand;
digitalWrite(MOTOR2_PIN, HIGH);
digitalWrite(MOTOR2_PIN, LOW);
delay(5);
}
}