#include "SevSeg.h"
SevSeg sevseg;
const int button = 11;
bool Button1 = HIGH;
unsigned long lastDebounceTime = 0;
unsigned long debounceDelay = 50;
void setup() {
initializeDisplay();
pinMode(button, INPUT_PULLUP);
Serial.begin(9600);
}
void loop() {
bool buttonState = digitalRead(button);
if (isButtonPressed(buttonState)) {
int randomnumber = generatenumber();
updateDisplay(randomnumber);
printToSerial(randomnumber);
}
if (buttonState == HIGH) {
Button1 = buttonState;
}
}
void initializeDisplay() {
byte numDigits = 1;
byte digitPins[] = {10};
byte segmentPins[] = {6, 5, 2, 3, 4, 7, 8, 9};
bool resistorsOnSegments = true;
byte hardwareConfig = COMMON_CATHODE;
sevseg.begin(hardwareConfig, numDigits, digitPins, segmentPins, resistorsOnSegments);
sevseg.setBrightness(90);
}
bool isButtonPressed(bool buttonState) {
if (buttonState == LOW && Button1 == HIGH && (millis() - lastDebounceTime) > debounceDelay) {
lastDebounceTime = millis();
return true;
}
return false;
}
int generatenumber() {
return random(1, 7);
}
void updateDisplay(int number) {
sevseg.setNumber(number);
sevseg.refreshDisplay();
}
void printToSerial(int number) {
Serial.print("Random Dice Value: ");
Serial.println(number);
}