/*
* Lezzetli Robot Tarifleri
* https://lezzetlirobottarifleri.com/7-segment-display/
*/

int sayi=0;

int rakam_tablosu[]=
{
 0x03, // 0 rakamı
 0x9F, // 1 rakamı
 0x25, // 2 rakamı
 0x0D, // 3 rakamı
 0x99, // 4 rakamı
 0x49, // 5 rakamı
 0x41, // 6 rakamı
 0x1F, // 7 rakamı
 0x01, // 8 rakamı
 0x09  // 9 rakamı
};

void _7segment_gonder(int veri)
{
 int i; // for döngüsü değişkeni tanımlanıyor
 for(i=2;i<10;i++) // 2'den başlıyor çünkü i değikenini pini seçmek içinde kullanıcağız. 10'a kadar döngü 8 kere işleyecek
 {
   if(bitRead(rakam_tablosu[veri], (9-i))==HIGH) // rakam bilgisinin okunacak biti HIGH ise şart doğru olur
   {
     digitalWrite(i, HIGH); // ve i numaralı arudino pini HIGH yapılır
   }
   if(bitRead(rakam_tablosu[veri], (9-i))==LOW) // eğer rakam bilgisinin okunak biti LOW ise şart doğru olur
   {
     digitalWrite(i, LOW); // ve i numaralı arduino pini LOW yapılır
   }
 }
}

void setup()
{
 pinMode(6, OUTPUT);
 pinMode(7, OUTPUT);
 pinMode(8, OUTPUT);
 pinMode(9, OUTPUT);
 pinMode(10, OUTPUT);
 pinMode(11, OUTPUT);
 pinMode(12, OUTPUT);
 pinMode(13, OUTPUT);

 pinMode(2, INPUT);
 pinMode(3, INPUT);
 
 _7segment_gonder(sayi);
}

void loop()
{
 if(digitalRead(2)==HIGH)
 {
   while(digitalRead(2)==HIGH);
   sayi++;
   if(sayi>9)
   {
     sayi=0;
   }
   _7segment_gonder(sayi);
 }
 if(digitalRead(3)==HIGH)
 {
   while(digitalRead(3)==HIGH);
   sayi--;
   if(sayi<0)
   {
     sayi=9;
   }
   _7segment_gonder(sayi);
 }}
