This commit is contained in:
wancat
2022-03-23 12:05:25 +08:00
parent d56ea0dab0
commit 6b661f1d48
5 changed files with 268 additions and 53 deletions

45
week5-1/week5-1.ino Normal file
View File

@@ -0,0 +1,45 @@
const unsigned int scan[] = {5, 6, 7, 8};
#define DATA 10
#define LATCH 11
#define CLK 12
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 loop() {
static int number = 0;
static unsigned long checkpoint = 0;
static 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);
}
if (millis() - checkpoint > 200) {
number++;
setDigits(number, digits);
checkpoint = millis();
}
}