0-99 Sayıcı Arduino 7 Segment Display
Bu çalışmada iki adet 7 segment display kullanarak arduino sayesinde 0-99 arasında arasında ileri yönlü bir sayıcı yaptık. 7 segment displaylarimiz ortak Anotlu olduğu için orta bacakları + ya bağladık.
Ortak Anotlu 7 Segment Display
Arduinoda ortak anotlu display kullanır iken yakmak istediğiniz pine 0 bilgisini göndermemiz başka bir deyişle ilgili bacağı LOW yapmamız gerekir.
Arduino Devre Kodları:
int count = 0; // counter
void setup() {
for(int i=0;i<=13;i++)
{
pinMode(i,OUTPUT);
digitalWrite(i,0);}
digitalWrite(6, 1);//10 lar basamağı 0 olsun
digitalWrite(13,1);//1 ler basağımı 0 olsun
delay(500);
}void loop()
{
//Birler Basamığı
digitalWrite(7, 1);
digitalWrite(8, 0);
digitalWrite(9, 0);
digitalWrite(10, 1);
digitalWrite(11, 1);
digitalWrite(12, 1); // “1” rakamı için display pozisyonları
digitalWrite(13, 1);delay(1000);
digitalWrite(7, 0);
digitalWrite(8, 0);
digitalWrite(9, 1);
digitalWrite(10, 0);
digitalWrite(11, 0);
digitalWrite(12, 1); // “2” rakamı için display pozisyonları
digitalWrite(13, 0);
delay(1000);
digitalWrite(7, 0);
digitalWrite(8, 0);
digitalWrite(9, 0);
digitalWrite(10, 0);
digitalWrite(11, 1);
digitalWrite(12, 1); // “3” rakamı için display pozisyonları
digitalWrite(13, 0);
delay(1000);
digitalWrite(7, 1);
digitalWrite(8, 0);
digitalWrite(9, 0);
digitalWrite(10, 1);
digitalWrite(11, 1);
digitalWrite(12, 0); // “4” rakamı için display pozisyonları
digitalWrite(13, 0);
delay(1000);
digitalWrite(7, 0);
digitalWrite(8, 1);
digitalWrite(9, 0);
digitalWrite(10, 0);
digitalWrite(11, 1);
digitalWrite(12, 0); // “5” rakamı için display pozisyonları
digitalWrite(13, 0);
delay(1000);
digitalWrite(7, 0);
digitalWrite(8, 1);
digitalWrite(9, 0);
digitalWrite(10, 0);
digitalWrite(11, 0);
digitalWrite(12, 0); // “6” rakamı için display pozisyonları
digitalWrite(13, 0);
delay(1000);
digitalWrite(7, 0);
digitalWrite(8, 0);
digitalWrite(9, 0);
digitalWrite(10, 1);
digitalWrite(11, 1);
digitalWrite(12, 1); // “7” rakamı için display pozisyonları
digitalWrite(13, 1);
delay(1000);
digitalWrite(7, 0);
digitalWrite(8,0);
digitalWrite(9, 0);
digitalWrite(10, 0);
digitalWrite(11, 0);
digitalWrite(12, 0); // “8” rakamı için display pozisyonları
digitalWrite(13, 0);
delay(1000);digitalWrite(7, 0);
digitalWrite(8,0);
digitalWrite(9, 0);
digitalWrite(10, 0);
digitalWrite(11, 1);
digitalWrite(12, 0); // “9” rakamı için display pozisyonları
digitalWrite(13, 0);
delay(1000);
//////////////////////////////////////////////////////////////////count++;
//Onlar Basamağı
if (count == 1){ // döngü sayacı “count” 1 saydığında aşağıdaki işlemi yapdigitalWrite(0, 1);
digitalWrite(1, 0);
digitalWrite(2, 0);
digitalWrite(3, 1); // “1” rakamı için display pozisyonları
digitalWrite(4, 1);
digitalWrite(5, 1);
digitalWrite(6, 1);}
if (count == 2){ // döngü sayacı “count” 2 saydığında aşağıdaki işlemi yap
digitalWrite(0, 0);
digitalWrite(1, 0);
digitalWrite(2, 1);
digitalWrite(3, 0); // “2” rakamı için display pozisyonları
digitalWrite(4, 0);
digitalWrite(5, 1);
digitalWrite(6, 0);
}
if (count == 3){ // döngü sayacı “count” 3 saydığında aşağıdaki işlemi yapdigitalWrite(0, 0);
digitalWrite(1, 0);
digitalWrite(2, 0);
digitalWrite(3, 0); // “3” rakamı için display pozisyonları
digitalWrite(4, 1);
digitalWrite(5, 1);
digitalWrite(6, 0);
}
if (count == 4){ // döngü sayacı “count” 4 saydığında aşağıdaki işlemi yapdigitalWrite(0, 1);
digitalWrite(1, 0);
digitalWrite(2, 0);
digitalWrite(3, 1); // “4” rakamı için display pozisyonları
digitalWrite(4, 1);
digitalWrite(5, 0);
digitalWrite(6, 0);
}
if (count == 5){ // döngü sayacı “count” 5 saydığında aşağıdaki işlemi yap
digitalWrite(0, 0);
digitalWrite(1, 1);
digitalWrite(2, 0);
digitalWrite(3, 0); // “5” rakamı için display pozisyonları
digitalWrite(4, 1);
digitalWrite(5, 0);
digitalWrite(6, 0);
}
if (count == 6){ // döngü sayacı “count” 6 saydığında aşağıdaki işlemi yap
digitalWrite(0, 0);
digitalWrite(1, 1);
digitalWrite(2, 0);
digitalWrite(3, 0); // “6” rakamı için display pozisyonları
digitalWrite(4, 0);
digitalWrite(5, 0);
digitalWrite(6, 0);
}
if (count == 7){ // döngü sayacı “count” 7 saydığında aşağıdaki işlemi yap
digitalWrite(0, 0);
digitalWrite(1, 0);
digitalWrite(2, 0);
digitalWrite(3, 1); // “7” rakamı için display pozisyonları
digitalWrite(4, 1);
digitalWrite(5, 1);
digitalWrite(6, 1);
}
if (count == 8){ // döngü sayacı “count” 8 saydığında aşağıdaki işlemi yap
digitalWrite(0, 0);
digitalWrite(1, 0);
digitalWrite(2, 0);
digitalWrite(3, 0); // “8” rakamı için display pozisyonları
digitalWrite(4, 0);
digitalWrite(5, 0);
digitalWrite(6, 0);
}if (count == 9){ // döngü sayacı “count” 9 saydığında aşağıdaki işlemi yap
digitalWrite(0, 0);
digitalWrite(1, 0);
digitalWrite(2, 0);
digitalWrite(3, 0); // “9” rakamı için display pozisyonları
digitalWrite(4, 1);
digitalWrite(5, 0);
digitalWrite(6, 0);
}
if (count == 10){ // döngü sayacı “count” 10 saydığında aşağıdaki işlemi yap
digitalWrite(0, 0);
digitalWrite(1, 0);
digitalWrite(2, 0);
digitalWrite(3, 0); // “10” rakamı için display pozisyonları
digitalWrite(4, 0);
digitalWrite(5, 0);
digitalWrite(6, 1);
count = 0; // counter sayacını resetle}
}
0-9 arası sayıcı devresi için daha önceki bu linke bakabilirsiniz.