Week 5
This commit is contained in:
50
week5-3/week5-3.ino
Normal file
50
week5-3/week5-3.ino
Normal file
@@ -0,0 +1,50 @@
|
||||
const unsigned int scan[] = {5, 6, 7, 8};
|
||||
#define DATA 10
|
||||
#define LATCH 11
|
||||
#define CLK 12
|
||||
const int date[] = {2022, 323};
|
||||
|
||||
byte numbers[] = {
|
||||
0xC0, 0xF9, 0xA4, 0xB0, 0x99,
|
||||
0x92, 0x82, 0xF8, 0x80, 0x90
|
||||
};
|
||||
|
||||
void setup() {
|
||||
for (int i = 0; i < 4; i++) {
|
||||
pinMode(scan[i], OUTPUT);
|
||||
digitalWrite(scan[i], HIGH);
|
||||
}
|
||||
pinMode(DATA, OUTPUT);
|
||||
pinMode(LATCH, OUTPUT);
|
||||
pinMode(CLK, OUTPUT);
|
||||
}
|
||||
|
||||
void setDigits(int number, int digits[4]) {
|
||||
for (int i = 0; i < 4; i++) {
|
||||
digits[i] = number % 10;
|
||||
number /= 10;
|
||||
}
|
||||
}
|
||||
|
||||
void show(int digits[4]) {
|
||||
for (int i = 0; i < 4; i++) {
|
||||
digitalWrite(LATCH, LOW);
|
||||
shiftOut(DATA, CLK, MSBFIRST, numbers[digits[i]]);
|
||||
digitalWrite(LATCH, HIGH);
|
||||
digitalWrite(scan[i], LOW);
|
||||
delay(1);
|
||||
digitalWrite(scan[i], HIGH);
|
||||
}
|
||||
}
|
||||
|
||||
void loop() {
|
||||
static unsigned long checkpoint = 0;
|
||||
static int digits[4];
|
||||
static bool mode = false;
|
||||
show(digits);
|
||||
if (millis() - checkpoint > 500) {
|
||||
mode = !mode;
|
||||
setDigits(date[mode], digits);
|
||||
checkpoint = millis();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user