iamironman
Hectopat
- Katılım
- 3 Kasım 2019
- Mesajlar
- 280
Kod aşağıda sorun şu segmentte 9 yandıktan sonra 11 yanıyor 10 hiç yazmıyor. Diğer sayılarda bir problem yok bir türlü çözemedim. Yardım eder misiniz mantığı ile? Teşekkürler.
Kod:
int sayac = 0;
int segmentPin[7] = {2, 3, 4, 5, 6, 7, 8};
int nDisplayPin[2] = {11, 12};
int sayi[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
};
void setup()
{
Serial.begin(9600);
for (int i = 0; i <= 7; i++)
{
pinMode(segmentPin[i], OUTPUT);
}
for (int i = 0; i <= 2; i++)
{
pinMode(nDisplayPin[i], OUTPUT);
}
}
void loop()
{
Serial.println("seri haberlesme");
if (sayac <= 9)
{
digitalWrite(nDisplayPin[0], HIGH);
digitalWrite(nDisplayPin[1], LOW);
for (int i = 0; i <= 9; i++)
{
for (int j = 0; j <= 7; j++)
{
digitalWrite(segmentPin[j], sayi[i][j]);
}
delay(500);
sayac++;
}
}
else
{
String number = (String)sayac;
int dsp1 = ((String)number[0]).toInt();
int dsp2 = ((String)number[1]).toInt();
for ( int t = 0; t < 25; t++)
{
digitalWrite(nDisplayPin[0], LOW);
digitalWrite(nDisplayPin[1], HIGH);
for (int j = 0; j <= 7; j++)
{
digitalWrite(segmentPin[j], sayi[dsp1][j]);
}
delay(10);
digitalWrite(nDisplayPin[0], HIGH);
digitalWrite(nDisplayPin[1], LOW);
for (int j = 0; j <= 7; j++)
{
digitalWrite(segmentPin[j], sayi[dsp2][j]);
}
delay(10);
}
}
if (sayac >= 99)
{
sayac = 0;
}
else
{
sayac++;
}
}