const int buttonPin = 15;
const int segmentPins[] = {27, 28, 29, 30, 31, 32, 33};
const int segmentPins2[] = {36, 37, 38, 39, 40, 41, 42};
int counter = 0;
void setup() {
for (int i=0; i<7; i++)
{
pinMode(segmentPins[i], OUTPUT);
}
for (int i = 0; i < 7; i++) {
pinMode(segmentPins2[i], OUTPUT);
}
pinMode(buttonPin, INPUT_PULLUP);
}
void loop() {
// Butonun durumunu oku
int buttonState = digitalRead(buttonPin);
// Eğer butona basıldıysa
if (buttonState == LOW) {
// Sayıyı artır
counter++;
// Eğer sayı 10 ise sıfırla (7 segment displayde 0-9 arası rakamlar olduğu için)
// if (counter >= 10) {
if(counter >= 100){
counter = 0;
}
// Yeni sayıyı 7 segment displaye göster
displayNumber(counter);
// Biraz bekle (titreme engellemek için)
delay(200);
}
}
// Sayıyı 7 segment displaye gösteren fonksiyon
void displayNumber(int number) {
// Rakam dizisi: her rakamın 7 segmentteki durumunu temsil eder
int digitPatterns[10][7] = {
{1, 1, 1, 1, 1, 1, 0}, // 0
{0, 1, 1, 0, 0, 0, 0}, // 1
{1, 1, 0, 1, 1, 0, 1}, // 2
{1, 1, 1, 1, 0, 0, 1}, // 3
{0, 1, 1, 0, 0, 1, 1}, // 4
{1, 0, 1, 1, 0, 1, 1}, // 5
{1, 0, 1, 1, 1, 1, 1}, // 6
{1, 1, 1, 0, 0, 0, 0}, // 7
{1, 1, 1, 1, 1, 1, 1}, // 8
{1, 1, 1, 1, 0, 1, 1} // 9
};
// Her bir segmenti kontrol et
for (int i = 0; i < 7; i++) {
// Eğer segment açık ise HIGH, değilse LOW
digitalWrite(segmentPins[i], digitPatterns[number % 10][i] ? LOW : HIGH);
}
for (int i = 0; i < 7; i++) {
// Eğer segment açık ise HIGH, değilse LOW
digitalWrite(segmentPins2[i], digitPatterns[number / 10][i] ? LOW : HIGH);
}
}