#include <Servo.h>
Servo servo1;
int digits[10][7] { {1,1,1,1,1,1,0}, //0
{0,1,1,0,0,0,0}, //1
{1,1,0,1,1,0,1}, //2
{1,1,1,1,0,0,1}, //3
{0,1,1,0,0,1,1}, //4
{1,0,1,1,0,1,1}, //5
{1,0,1,1,1,1,1}, //6
{1,1,1,0,0,0,0}, //7
{1,1,1,1,1,1,1}, //8
{1,1,1,1,0,1,1}, //9
};
int d = 0;
int servo_angle = 0;
unsigned long start_time = 0;
unsigned long start_time_servo = 0;
unsigned long interal = 1000;
unsigned long servo_interval = 30;
void setup() {
for(int i = 13; i >=7; i--)
pinMode(i, OUTPUT);
pinMode(2, INPUT_PULLUP);
servo1.attach(6);
}
void loop() {
unsigned current_time = millis();
if(current_time - start_time >= 1000)
{
start_time = current_time;
for(int i = 13; i >=7; i--)
digitalWrite(i, digits[d][13-i]);
d++;
}
if (digitalRead(2) == LOW || d == 10) d=0;
if(start_time_servo - current_time >= servo_interval)
{
current_time = start_time_servo;
servo1.write(servo_angle);
servo_angle++;
if(servo_angle == 180) servo_angle = 0;
}
}