#include <Servo.h>
#include <Adafruit_NeoPixel.h>
#define numPixels 60
#define CLK 2
#define DT 3
#define SW 4
Adafruit_NeoPixel screen(numPixels, 21);
Servo watch;
uint64_t w = 0;
uint64_t s = 0;
void setup() {
screen.begin();
pinMode(CLK, INPUT);
pinMode(DT, INPUT);
pinMode(SW, INPUT_PULLUP);
int interruptNumber = digitalPinToInterrupt(CLK);
watch.attach(9);
attachInterrupt(interruptNumber, EncHandler, FALLING);
watch.write(0);
screen.setPixelColor(0, 255, 0, 0);
screen.show();
screen.clear();
}
void EncHandler() {
if (digitalRead(DT) == HIGH) {
s++;
w += 7;
watch.write(w);
screen.setPixelColor(s, 255, 0, 0);
screen.show();
screen.clear();
} else {
if (s != 0) {
s--;
w -= 7;
watch.write(w);
screen.setPixelColor(s, 255, 0, 0);
screen.show();
screen.clear();
}
}
}
void loop() {
if (digitalRead(SW) == LOW) {
watch.write(180);
screen.setPixelColor(30, 255, 0, 0);
screen.show();
screen.clear();
delay(435);
watch.write(0);
screen.setPixelColor(0, 255, 0, 0);
screen.show();
screen.clear();
}
}