// Pin Definitions
int slideSwitchPins[] = {2, 3, 4}; // Pins for slide switches
int buttonPin = 13; // Pin for reset button
int ledPin = A0; // Pin for LED
int segmentPins[] = {5, 6, 7, 8, 9, 10, 11}; // Pins for 7-segment display (a-g)
// 7-segment display digits (Common Cathode)
byte digitPatterns[] = {
0b00111111, // 0
0b00000110, // 1
0b01011011, // 2
0b01001111, // 3
0b01100110, // 4
0b01101101, // 5
0b01111101, // 6
0b00000111, // 7
0b01111111, // 8
0b01101111 // 9
};
void setup() {
// Set up slide switches as input
for (int i = 0; i < 3; i++) {
pinMode(slideSwitchPins[i], INPUT);
}
// Set up button and LED
pinMode(buttonPin, INPUT_PULLUP); // Use internal pull-up resistor
pinMode(ledPin, OUTPUT);
// Set up 7-segment display pins
for (int i = 0; i < 7; i++) {
pinMode(segmentPins[i], OUTPUT);
}
}
void loop() {
// Read slide switches and calculate the value
int number = 0;
for (int i = 0; i < 3; i++) {
number |= digitalRead(slideSwitchPins[i]) << i; // Combine bits
}
// Check if reset button is pressed
if (digitalRead(buttonPin) == LOW) {
digitalWrite(ledPin, HIGH); // Turn on LED
number = 0; // Reset number
delay(500); // Debounce delay
digitalWrite(ledPin, LOW); // Turn off LED
}
// Display number on 7-segment
displayNumber(number);
}
// Function to display a number on the 7-segment display
void displayNumber(int number) {
byte pattern = digitPatterns[number];
for (int i = 0; i < 7; i++) {
digitalWrite(segmentPins[i], (pattern >> i) & 1); // Set each segment
}
}