/**
Arduino Digital Alarm Clock
Copyright (C) 2020, Uri Shaked.
Released under the MIT License.
*/
#include <SevSeg.h>
SevSeg sevseg;
byte numDigit = 4;
byte digitPins[] = {2, 3, 4, 5};
byte segmentPins[] = {6, 7, 8, 9, 10, 11, 12, 13};
bool resistorsOnSegment = false;
byte hardwareConfig = COMMON_ANODE;
bool updateWithDelays = false;
bool leadingZeros = false;
bool disableDecPoint = false;
void setup() {
//
sevseg.begin(hardwareConfig, numDigit, digitPins, segmentPins, updateWithDelays, leadingZeros, disableDecPoint);
sevseg.setBrightness(6);
}
void loop() {
for (int i = -9; i < 0; i++) {
sevseg.setNumber(i);
for (int j = 0; j < 32000; j++) {
sevseg.refreshDisplay();
}
}
for (int i = -9; i < 0; i++) { //显示-0.9到-0.1
sevseg.setNumber(i, 1); //第二个参数表示小数点位置,省略则表示无小数点
for (int j = 0; j < 32000; j++) {
sevseg.refreshDisplay();
}
}
for (int i = 0; i <= 20; i++) {
if (isprime(i)) {
for (int k = 0; k < 3; k++) {
sevseg.setNumber(i);
for (int j = 0; j < 32000; j++) {
sevseg.refreshDisplay();
}
sevseg.blank();
for (int j = 0; j < 32000; j++) {
sevseg.refreshDisplay();
}
}
}
else {
sevseg.setNumber(i);
for ( int j = 0; j < 32000; j++) {
sevseg.refreshDisplay();
}
}
}
sevseg.refreshDisplay();
}
bool isprime(int n) {
int prime[] = {2, 3, 5, 7, 11, 13, 17, 19};
bool a = false;
for (int i = 0; i < 8; i++) {
if (prime[i] == n) {
a = true;
break;
}
}
return a;
}