13 Haziran 2025 Cuma

 


Arduino'da switch-case yapısı, belirli bir değişkenin değerine göre farklı kod bloklarını çalıştırmak için kullanılan, oldukça kullanışlı bir kontrol yapısıdır. Özellikle birden fazla if-else if koşulunu yönetmek yerine daha düzenli ve okunabilir bir alternatif sunar.


switch-case Yapısı Nedir?

switch-case yapısı, bir değişkenin (veya ifadenin) olası değerlerini kontrol eder ve bu değerlerden birine eşit olduğunda ilgili kod bloğunu yürütür. Temel yapısı şu şekildedir:

switch (değişken_adı) 

{

  case değer1:

    // değişken_adı değer1'e eşitse çalışacak kod

    break;

  case değer2:

    // değişken_adı değer2'ye eşitse çalışacak kod

    break;

  case değer3:

  case değer4: // Aynı kod bloğunu paylaşan birden fazla case

    // değişken_adı değer3 veya değer4'e eşitse çalışacak kod

    break;

  default:

    // Yukarıdaki case'lerin hiçbirine uymadığında çalışacak kod

    break;

}


switch (değişken_adı)    : switch anahtar kelimesinden sonra parantez içinde kontrol edilecek değişken veya ifade yer alır. Bu değişken genellikle bir tamsayı (int, char, byte vb.) tipinde olmalıdır.

case değer:     : case anahtar kelimesi, switch içindeki değişkenin alabileceği olası değerleri belirtir. Her case'den sonra bir değer ve iki nokta üst üste gelir. Eğer switch içindeki değişken bu değer'e eşitse, ilgili case bloğundaki kodlar çalıştırılır.

break;     : Her case bloğunun sonunda mutlaka break; komutunu kullanmak önemlidir. break; komutu, o case bloğunun tamamlandığını ve switch yapısından çıkılması gerektiğini bildirir. Eğer break; kullanılmazsa, ilgili case çalıştıktan sonra switch yapısı içinde bir sonraki case'e düşer ve o bloğun kodunu da çalıştırır (bu duruma "fall-through" denir). Bazen bilinçli olarak break kullanılmayabilir, ancak genellikle beklenmeyen sonuçlara yol açtığı için dikkatli olunmalıdır.

default:     : İsteğe bağlıdır. Eğer switch içindeki değişken, belirtilen case değerlerinden hiçbirine eşit değilse, default bloğundaki kodlar çalıştırılır. Bu, bir "hiçbiri eşleşmezse" durumu için kullanılır. default bloğundan sonra da break; kullanmak iyi bir alışkanlıktır, özellikle default son case değilse.


1. Örnek Program Kodları

Hangi ayda kaç gün olduğunu ekrana yazdırır.


int ay = 2;

void setup()

{

      Serial.begin(9600);

      switch (ay)

      {

            case 1:  //ay değişkeni 1 ise.

                  Serial.println("Aydaki Gün Sayısı=31");

                  break;

            case 2:  //ay değişkeni 2 ise.

                  Serial.println("Aydaki Gün Sayısı= 28 veya 29");

                  break;

            case 3:

                  Serial.println("Aydaki Gün Sayısı= 31");

                  break;

            case 4:

                  Serial.println("Aydaki Gün Sayısı= 30");

                  break;

            case 5:

                  Serial.println("Aydaki Gün Sayısı= 31");

                  break;

            case 6:

                  Serial.println("Aydaki Gün Sayısı= 30");

                  break;

            case 7:

                  Serial.println("Aydaki Gün Sayısı= 31");

                  break;

             case 8:

                  Serial.println("Aydaki Gün Sayısı= 31");

                  break;

            case 9:

                  Serial.println("Aydaki Gün Sayısı= 30");

                  break;

            case 10:

                  Serial.println("Aydaki Gün Sayısı= 31");

                  break;

            case 11:

                  Serial.println("Aydaki Gün Sayısı= 30");

                  break;

            case 12:

                  Serial.println("Aydaki Gün Sayısı= 31");

                  break;

            default:  //yukarıdaki case lerin dışında bir durum varsa

                  Serial.println(" Lütfen 1 ile 12 arasında bir değer giriniz");

                  break;

      }

}


void loop()

{


}


2. Örnek Program Kodları

Hangi ayda kaç gün olduğunu ekrana yazdıran farklı bir uygulama.


int ay = 15;

void setup()

{

      Serial.begin(9600);

      switch (ay)

      {

            case 1:

            case 3:

            case 5:

            case 7:

            case 8:

            case 10:

            case 12:

                  Serial.println("Aydaki Gün Sayısı: 31");

                  break;

            case 4:

            case 6:

            case 9:

            case 11:

                  Serial.println("Aydaki Gün Sayısı: 30");

                  break;

            case 2:

                  Serial.println("Aydaki Gün Sayısı: 30");

                  break;

            default:

                  Serial.println("Lütfen 1 ile 12 arasında bir değer girin");

                  break;

  }

}


void loop()

{


}



3. Örnek Program Kodları

int sayi = 5;

char karakter = 'd';

void setup()

{

  Serial.begin(9600);

  switch (sayi)

  {

        case 1 ... 12:  //sayi değişkeni 4 ile 12 arasında ise.

              Serial.println("sayı= 1 ile 12 arasında");

              break;

        default:    //sayi değişkeni bunların dışında ise.

              Serial.println("Lütfen 1 ile 12 arasında bir değer girin");

              break;

  }


  switch (karakter)

  {

      case 'a':  //karakter değişkeni a ise.

            Serial.println("karakter = a");

            break;

      case 'b':  //karakter değişkeni b ise.

            Serial.println("karakter = b");

            break;

      case 'c' ... 'z':  //karakter değişkeni c ile z arasında ise.

            Serial.println("karakter = c ile z arasında");

            break;

      default:    //karakter değişkeni bunların dışında ise.

            Serial.println("Lütfen a ile z arası karakter giriniz");

            break;

  }

}


void loop()

{


}



___________________________________________________________________________________________________________________________________________________________


 


Arduino programlamada break ve continue ifadeleri, döngülerin (yani for, while, do-while döngülerinin) normal akışını değiştirmek için kullanılır. Bu ifadeler, belirli koşullar altında döngüyü erken sonlandırmanıza veya mevcut yinelemeyi atlamanıza olanak tanır.

break ifadesi, içinde bulunduğu döngüyü anında sonlandırır. Kendinden sonraki döngü içindeki komutlar çalışmaz. break çalıştırıldığında, program kontrolü döngünün hemen dışındaki ilk ifadeye geçer.

continue ifadesi, continue'dan sonra gelen kodlar atlanır ve döngünün koşul kontrolü bölümüne dönülerek bir sonraki yinelemeye geçilir.


Örnek Program Kodları:

int i = 0;

int j = 0;


void setup()

{

      Serial.begin(9600);

      while (i < 10)

      {

        Serial.print("Ankara: "); Serial.println(i);

        if (i == 5)

        {

          break;

          Serial.println("bu komut yazdırılmaz-i");

        }

    i++;

      }

      Serial.println("i döngüsü bitti");

      while (j < 10)

      {

        Serial.print("İstanbul: "); Serial.println(j);

        j++;

        if (j == 4)

        {

          continue;

          Serial.println("bu komut yazdırılmaz-j");

        }

        Serial.println("Merhaba");

      }

      Serial.println("j döngüsü bitti");

}


void loop()

{

}



____________________________________________________________________________________________________________________________________________________



 

Arduino'da for döngüsü, belirli bir sayıda tekrar gerektiren işlemleri gerçekleştirmek için kullanılan güçlü bir kontrol yapısıdır. Bir başlangıç değeri, bir koşul ve bir artış/azalış ifadesi içerir.


for (başlangıç; koşul; artış/azalış) 

{

      // Tekrarlanacak kod bloğu

}


for Döngüsünün Temel Yapısı

başlangıç    : Döngü değişkenine başlangıç değerini atar. Bu ifade döngünün başında sadece bir kez çalışır. Örneğin, int i = 0;

koşul    : Döngünün devam edip etmeyeceğini belirleyen koşuldur. Bu koşul her tekrarın başında kontrol edilir. Koşul doğru (true) olduğu sürece döngü devam eder. Örneğin, i < 10;

artış/azalış    : Döngü değişkeninin değerini her tekrarda değiştirir. Genellikle döngü değişkeni artırılır veya azaltılır. Örneğin, i++; veya i--;


for Döngüsünün Çalışma Mantığı

1. Başlangıç    : Döngü değişkenine başlangıç değeri atanır.

2. Koşul Kontrolü    : Koşul değerlendirilir. Eğer koşul doğru ise döngü bloğu çalıştırılır, eğer yanlış ise döngü sona erer.

3. Kod Bloğu Çalıştırılır    : Koşul doğru ise, döngü içindeki kod bloğu çalıştırılır.

4. Artış/Azalış    : Döngü değişkeninin değeri artırılır veya azaltılır.

5. Koşul Kontrolü (Tekrar)    : Koşul tekrar değerlendirilir ve adım 2'den itibaren işlemler tekrarlanır.


Örnek Program Kodları:

int i;

void setup()

{

      Serial.begin(9600);

      for (i = 0; i < 10; i++)

      {

            Serial.print("i= ");Serial.println(i);

            delay(500);

      }

}


void loop()

{


}



______________________________________________________________________________________________________________________________


 


Arduino'da while ve do-while döngüleri, belirli bir koşul doğru olduğu sürece bir kod bloğunu tekrarlamak için kullanılır.

1. while Döngüsü

while döngüsü, bir koşul doğru olduğu sürece döngü içindeki kod bloğunu sürekli olarak çalıştırır. Koşul, döngü bloğu çalıştırılmadan önce kontrol edilir. Eğer koşul başlangıçta yanlışsa, döngü içine hiçbir zaman girilmez.

while(koşul)

{


}

Nasıl Çalışır?

1. Döngüye gelindiğinde koşul kontrol edilir.

2. Eğer koşul doğru (true) ise, {} parantezleri içindeki kod bloğu çalıştırılır.

3. Kod bloğu çalıştırıldıktan sonra, program tekrar while döngüsünün  başına döner ve koşul yeniden kontrol edilir.

4. Bu işlem, koşul yanlış (false) olana kadar devam eder.

5. Koşul yanlış olduğunda, döngü sona erer ve program döngüden sonraki ilk satırdan çalışmaya devam eder.



2. do-while Döngüsü

do-while döngüsü de bir koşul doğru olduğu sürece kod bloğunu tekrarlar. Ancak, while döngüsünden farklı olarak, döngü bloğu en az bir kez çalıştırıldıktan sonra koşul kontrol edilir.

do

{


}while(koşul)


Nasıl Çalışır?

1. Program do bloğuna girdiğinde, {} parantezleri içindeki kod bloğu çalıştırılır.

2. Kod bloğu çalıştırıldıktan sonra, while (koşul) ifadesindeki koşul kontrol edilir.

3. Eğer koşul doğru (true) ise, program do bloğunun başına döner ve kod bloğu tekrar çalıştırılır.

4. Bu işlem, koşul yanlış (false) olana kadar devam eder.

5. Koşul yanlış olduğunda, döngü sona erer ve program döngüden sonraki ilk satırdan çalışmaya devam eder.


Örnek Program Kodları:

int i = 0, j = 0;

void setup()

{

      Serial.begin(9600);

      Serial.println("__i degerleri__");

      while (i < 10)

      {

            Serial.print("Merhaba i= "); Serial.println(i);

            i = i + 1;

      }


      Serial.println("__j degerleri__");

      do

      {

            Serial.print("Merhaba j= "); Serial.println(j);

            j = j + 1;

      } while (j < 5);

}


void loop()

{


}



______________________________________________________________________________________________________________________________



Koşullu ifadedir. Farklı koşullara bağlı olarak farklı eylemler gerçekleştirmek için kullanılır. Kod yazarken çoğu zaman farklı kararlar için farklı eylemler gerçekleştirmek istersiniz. Bunu yapmak için kodunuzda koşullu ifadeler kullanabilirsiniz. Arduino'da aşağıdaki koşullu ifadeler bulunur:

if          :Belirtilen bir koşul doğruysa yürütülecek kod bloğunu belirtmek için kullanılır.

else     :Belirtilen koşulun dışında kalan tüm durumlar için yürütülecek kod bloğunu belirtmek için kullanılır.

else if  :İlk koşul yanlış olduğunda başka koşulun gerçekleşip gerçekleşmediği durumu test etmek amacıyla yeni bir koşul belirtmek için kullanılır.

Koşullar belirtilirken aşağıdaki karşılaştırma ve mantık operatörleri kullanılır:

Karşılaştırma Operatörleri:

== Eşit eşit

!= Eşit değildir

< Küçüktür

> Büyüktür

<= Küçük eşittir

>= Büyük eşittir


Mantık Operatörleri:

&& Ve

|| Veya

! Değil


1. Örnek Program Komutları

int sinav1 = 85;

int sinav2 = 90;


void setup()

{

      Serial.begin(9600);


      //ÖRNEK-1

      if (sinav1 >= 70)

      {

            Serial.print("sinav1= "); Serial.print(sinav1); Serial.println(" GEÇTİNİZ");

      }

      else

      {

            Serial.print("sinav1= "); Serial.print(sinav1); Serial.println(" KALDINIZ");

      }


      //ÖRNEK-2

      if (sinav2 < 55)

      {

            Serial.print("sinav2= "); Serial.print(sinav2); Serial.println(" DÜŞÜK");

      }

      else if ((sinav2 >= 55) && (sinav2 < 70))

      {

            Serial.print("sinav2= "); Serial.print(sinav2);Serial.println(" ORTA");

      }

      else if (sinav2 >= 70)

      {

            Serial.print("sinav2= "); Serial.print(sinav2);Serial.println(" YÜKSEK");

      }

}


void loop()

{


}


2. Örnek Program Komutları

int sinav1 = 85;

int sinav2 = 90;

int sinav3 = 5;

int sinav4 = 99;


void setup()

{

      Serial.begin(9600);


      //ÖRNEK-1

      if (sinav1 >= 70)

      {

            Serial.print("sinav1= "); Serial.print(sinav1); Serial.println(" GEÇTİNİZ");

      }

      else

      {

            Serial.print("sinav1= "); Serial.print(sinav1); Serial.println(" KALDINIZ");

      }


       //ÖRNEK-2

       if (sinav2 < 55)

       {

             Serial.print("sinav2= "); Serial.print(sinav2); Serial.println(" DÜŞÜK");

       }

       else if ((sinav2 >= 55) && (sinav2 < 70))

       {

             Serial.print("sinav2= "); Serial.print(sinav2); Serial.println(" ORTA");

       }

       else if (sinav2 >= 70)

       {

             Serial.print("sinav2= "); Serial.print(sinav2); Serial.println(" YÜKSEK");

       }


      //ÖRNEK-3

      if (sinav3 != 0)

      {

            Serial.println("Sıfır almadın bravo");

      }

      else

      {

            Serial.println("Sıfır aldın");

      }


      //ÖRNEK-4

      if (sinav4 == 99 || sinav4 == 100)

      {

            Serial.println("Aferin çok yüksek not aldın");

      }

}


void loop()

{


}



________________________________________________________________________________________________________________________________


8 Haziran 2025 Pazar



Arduino'daki shiftIn() ve shiftOut() komutları, bir pinden, her clock sinyalinin yükselen kenarında 1 bit olmak üzere toplam 8 bit(1 bayt) veri okur ya da veri gönderir. Okuma yönü, en sağdaki bitten(LSB) en soldaki bite(MSB) ya da en soldaki bitten(MSB) en sağdaki bite(LSB) doğru yapılır.

LSB      : “Least Significant Bit” demektir. Türkçe olarak en az anlamlı bit demektir.

MSB     : “Most Significant Bit” demektir. Türkçe olarak en anlamlı bit demektir.

 

 

 

Arduino'daki shiftIn() ve shiftOut() komutları, çok genel bir ifadeyle, SPI'nin yazılım uygulamalarıdır. Elbette, SPI çok daha hızlıdır, ancak SPI yalnızca Arduino'nun belirli bazı pinlerinde çalışabilir. shiftIn() ve shiftOut() , Arduino'nun herhangi iki pininde kullanabilir.

 

shiftIn: Bu komut, Arduino’nun herhangi bir data pininden gelen 8 bitlik bir veriyi, her saat darbesinde, en sağdaki bitten en soldaki bite yada en soldaki bitten en sağdaki bite doğru bir bit veri kaydırması yaparak okur ve kaydeder. Her saat darbesinin yükselen kenarında bitin transferi gerçekleşir.

Örnek kullanım:

byte veri;

veri = shiftIn(dataPin, clockPin, okumaYonu)

veri                    : İzin verilen veri türleri: byte.

dataPin            : Verilerin okunmasını sağlayan pin.

clockPin           : Gönderici ile alıcı cihaz arasında senkronizasyon sağlayan clock sinyali çıkış pini.

okumaYonu   : Verilerin hangi sıra ile okunması gerektiğini belirten pin. LSBFIRST (en sağdaki bitten en soldaki bite). MSBFIRST (en soldaki bitten en sağdaki bite).

 

shiftOut: Bu komut, Arduino’nun herhangi bir data pininden, 8 bitlik bir veriyi, her saat darbesinde, en sağdaki bitten en soldaki bite ya da en soldaki bitten en sağdaki bite doğru bir bit veri kaydırması yaparak çıkışa gönderir. Her saat darbesinin yükselen kenarında bitin transferi gerçekleşir.

Örnek kullanım:

byte veri;

shiftOut(dataPin, clockPin, yazmaYonu, veri);

dataPin           : Verinin gönderileceği pin.

clockPin          : Gönderici ile alıcı cihaz arasında senkronizasyon sağlayan clock sinyali çıkış pini.

yazmaYonu   : LSBFIRST (en sağdaki bitten en soldaki bite). MSBFIRST (en soldaki bitten en sağdaki bite).

Veri                  :Alıcı cihaza gönderilecek veri (byte). İzin verilen veri türleri: byte.

 

NOT: Yükselen kenarda tetikleme olduğu için shiftIn() ve shiftOut() komutundan önce clock sinyalini LOW konuma alınız. Örnek: digitalWrite(clockPin, LOW);

 

Yaptığımız Arduino uygulamalarında shiftIn() komutu ile 74HC/HCT165 entegresinden veri alacağız ve shiftOut() komutu ile de 74HC/HCT595 entegresine veri göndereceğiz. Öncelikle bu entegrelerin kullanımını öğrenelim.

 

74HC/HCT165 Entegresinin Özellikleri ve Kullanımı

Entegrenin Özellikleri:

74HC/HCT165 entegresi; bir shift register entegresidir. Türkçe karşılık olarak kaydırmalı yazmaç diyebiliriz. 74HC/HCT165;  D7…D0 pinlerinden paralel olarak giren 8 bit lojik bilgiyi Q7 pininden seri olarak çıkışa verir. Entegreden dışarıya veri gönderme clock sinyali ile yapılır ve clock sinyalinin yükselen kenarında gönderme olur.

 

 

 

 


  

Entegrenin Kullanımı:

Entegrenin giriş değerlerini (D0…D7), entegrenin 8 bitlik shift register’ına kaydetmek için;

PL (1 nolu bacak – Parallel Load Input ) pini LOW yapılarak giriş moduna alınır.

CE (15 nolu bacak – Clock Enable Input) bacağı da LOW yapılır.

CP (2 nolu pin - Clock) bacağından gelen sinyalin ilk yükselme anında, D0…D7 den gelen giriş değerleri shift register üzerine kaydolur.

Bundan sonra PL (1 nolu bacak – Parallel Load Input ) pini HIGH yapılarak giriş modu kapatılarak çıkış moduna alınır ve girişten değer okumaz.

İşte bu andan sonra, clock sinyalinin her yükselen kenarında, entegrenin shift register’ı içerisindeki data,  D7’den başlayarak D0’a kadar Q7 (9 nolu pin) çıkış pini üzerinden seri olarak dışarı aktarılır.

 

74HC/HCT595 Entegresinin Özellikleri ve Kullanımı

Entegrenin Özellikleri:

74HC/HCT595 entegresi; bir shift register entegresidir. Türkçe karşılık olarak kaydırmalı yazmaç diyebiliriz. 74HC/HCT595; DS pininden seri olarak giren 8 bit logic bilgiyi Q7…Q0 pinlerinden paralel olarak çıkışa veren bir entegredir. Entegrenin veri okuma işlemi clock sinyali ile yapılır ve clock sinyalinin yükselen kenarında okuma olur.  

 

 


 

 


  

Veri Okuma İşlemi

 


 

İlk clock sinyalinde DS(14 nolu pin) pininden veri okunur ve 74HC/HCT595’in register’ındaki en soldaki hanesine kaydedilir. İkinci clock sinyali geldiğinde ise register’ın en solundaki hanesinde bulunan veri bir sağa kaydırılır ve yeni okunan veri yine en soldaki haneye kaydedilir. Okuma işlemi bu şekilde devam eder.

 

Entegrenin Kullanımı:

MR(10 nolu pin) pini register resetleme pinidir. Bu pin HIGH konumunda olmalıdır. LOW yapıldığında register içindeki bilgiler silinir.

SH_CP(11 nolu pin) pini clock sinyali giriş pinidir. Clock sinyali LOW’dan HIGH’a değiştiğinde veriler kaydırılarak shift register’a kaydedilir.

ST_CP(12 nolu pin) pini storage register pinidir. Bu pin LOW’dan HIGH’a değiştiğinde veriler stroge register’a kopyalanır.

OE(13 nolu pin) pini çıkışa izin verme bitidir. LOW yapıldığında verinin çıkışına izin verilir. Bu pin toprağa bağlanarak çıkışa sürekli izin verilip, çıkışa gönderilecek verinin ST_CP pini ile kontrol edilmesi de sağlanabilir.

Q7’(9 nolu pin) pini Birden fazla 74HC595 seri bağlanmak istendiğinde bu pine ihtiyaç var. Yani bir tane daha bu entegreden kullanarak 16-bit, 3 tane ile 24- bit,.. gibi çıkış alabiliyoruz. 16-bit çıkış için ikinci entegrenin DATA girişi birinci entegrenin Q7′ çıkışına bağlanıyor. CLOCK ve ST_CP pinleri birbirlerine direk bağlanabiliyor.

Arduino'da veya herhangi bir mikrodenetleyicide, I/O pinlerinin sayısını arttırmada en çok tercih edilen shift register 74HC/HCT595 entegresidir.




shiftIn() Örnek Program Kodları:

74HC165 entegresinin girişinden (D7...D0) gelen logic bilginin Q7 çıkış pininden Arduino'ya seri olarak gönderilmesi ve bu lojik bilginin Arduino D portuna bağlı ledlerden görülmesi işlemidir.

const int dataPin = 8;    // data pini - (74HC165'nin 9 nolu pinine bağlı)

const int clockPin = 9;   // clock pini - (74HC165'nin 2 nolu pinine bağlı)

const int enable = 10;    // clock enable pini - (74HC165'nin 15 nolu pinine bağlı)

const int load = 11;         // 74HC165'in D7...D0 pin bilgilerinin girişini aktif/pasif etme pini - (74HC165'nin 1 nolu pinine bağlı)

byte data;                       // 74HC165 entegresinden okunan veriyi bu değişkende tutacağız

void setup() 

{

      DDRD = 0b11111111;                           //Port D çıkış yapıldı

      pinMode(dataPin, INPUT);          // dataPin giriş olacak

      pinMode(clockPin, OUTPUT);     // clockPin çıkış olacak

      pinMode(enable, OUTPUT);       // enable pini çıkış olacak

      pinMode(load, OUTPUT);           // load pini çıkış olacak

}


void loop() 

{

      PORTD = girisOku();

      delay(50);

}

    byte girisOku() 

      digitalWrite(load, LOW);           //74HC165 entegresinin giriş pin değerlerini 74HC165'in shift register'ına yüklemeye izin ver.

      digitalWrite(enable, LOW);      //clock enable yap. 

      digitalWrite(clockPin, HIGH);   //ilk clock darbesinde 74HC165'in giriş pin değerleri 74HC165'in shift register'ına yüklenir.

      digitalWrite(load, HIGH);          //74HC165 giriş pin değerlerini shift register'a yükleme izni kaldırıldı.

      data = shiftIn(dataPin, clockPin, MSBFIRST);    // pin değerlerini sıra ile oku ve data değişkenine ata.

      delay(50);

      return data;

}


shiftIn() Proteus Uygulaması:



shiftOut() Örnek Program Kodları:

Arduino'dan 8 bitlik bir veriyi 74HC595 entegresine seri olarak gönderip, verinin yine bu entegrenin Q0...Q7 pinlerinden paralel hale dönüştürme işlemidir.

const int enable = 2;               //Storage register kontrol pini. Verileri çıkışa yönlendirmek için. (74HC595'nin 12 nolu pinine bağlı)

const int dataPin = 3;              //data pini. (74HC595'nin 14 nolu pinine bağlı)

const int clockPin = 4;            //clock pini. (74HC595'nin 11 nolu pinine bağlı)

byte data;

void setup()

{

      pinMode(enable, OUTPUT);

      pinMode(clockPin, OUTPUT);

      pinMode(dataPin, OUTPUT);


      for (data = 0; data < 33; data++)

      {

        digitalWrite(enable, LOW);            //Verilerin çıkışa yönlendirilmesi pasif edildi.

        shiftOut(dataPin, clockPin, MSBFIRST, data);         //veriler 74HC595'e gönderildi.

        digitalWrite(enable, HIGH);           //Verilerin çıkışa yönlendirilmesi aktif edildi.

        delay(500);

      }


}


void loop()

{


}


shiftOut() Proteus Uygulaması:







________________________________________________________________________________________________________________________________________________________________


Arduino Eğitimi Konu - 7

Toplam Sayfa Görüntüleme Sayısı

Sensörlerin Arduino İle Kullanımı

Popular Posts

Yararlanılan Kaynaklar

İletişim

gokdag17@gmail.com