Pazartesi , 16 Mayıs 2022

0-99 Sayıcı Arduino 7 Segment Display


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 yap

digitalWrite(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 yap

digitalWrite(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 yap

digitalWrite(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.

Bu Konuda İlginizi Çekebilir

NTC-16×2 LCD Termometre Projesi

NTC-16×2 LCD Termometre Projesi Devre Şeması Gerçek Devre Devre Kodları #include <LiquidCrystal.h> int sicaklikPin=A0; LiquidCrystal …

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.