Arduino While Kullanımı

Arduino While Kullanımı

Arduino While Kullanımı içeriğimizde, While Loop yani While Döngüsü kullanımını anlatıyoruz. Bazen belirli bir koşul doğruyken programdaki her şeyin durmasını istersiniz. Bunu bir while döngüsü kullanarak yapabilirsiniz. Bu içerik aslında bir analog sensörün değerini kalibre etmek için bir while döngüsünün nasıl kullanılacağını gösterir.

While Döngüsü Nedir?

while döngüsü, parantez içindeki koşul doğru (true) olduğu sürece, süslü parantezler içindeki kod bloğunu durmaksızın çalıştırır. Koşul yanlış hale geldiği anda döngü kırılır ve program kaldığı yerden devam eder.

Temel Sözdizimi:

while (koşul) {
  // Koşul doğru olduğu sürece burası çalışır
}

Ana döngüde, aşağıdaki çizim analog pin 0’daki bir foto direnç(LDR) değerini okur ve bunu pin 9’daki bir LED’i yakmak için kullanır. Ancak dijital pin 2’ye bağlı bir butona basıldığında program calibrate() adlı bir fonksiyonu çalıştırır. Bu, analog sensörün en yüksek ve en düşük değerlerini arar. Düğmeyi bıraktığınızda program ana döngü ile devam eder.

Bu teknik, aydınlatma koşulları değiştiğinde foto direnç(LDR) için maksimum ve minimum değerleri güncellemenizi sağlar.

Gerekli Malzemeler

  • Arduino Geliştirme Kartı
  • Buton
  • Foto direnç(LDR)
  • 10kΩ direnç x 2

Devre Şeması

Analog giriş 2’deki analog sensörünüzü (örn. potansiyometre, ışık sensörü) 10k ohm’luk bir dirençle toprağa(gnd) bağlayın. Butonu tekrar toprağa 10k ohm’luk bir dirençle dijital pine bağlayın. LED’inizi seri olarak 220 ohm’luk bir dirençle dijital pin 9’a bağlayın.

Arduino While Kullanımı
Arduino While Kullanımı

Arduino Kodu

Neden if Değil de while Kullanıyoruz?

Eğer if kullansaydık, program butona basıldığını kontrol eder, bir kez ölçüm yapar ve hemen loop içindeki diğer kodlara geçerdi. while kullandığımızda ise buton basılı olduğu sürece programı calibrate() fonksiyonu içerisinde hapse diyoruz. Bu sayede kullanıcı butonu bırakana kadar sadece kalibrasyona odaklanılır, diğer işlemler (LED parlaklığını değiştirmek gibi) duraklatılır.

Bu Tekniğin Avantajları:

  • Esneklik: Cihazı ister çok aydınlık bir ofiste, ister karanlık bir odada çalıştırın; tek butonla saniyeler içinde kalibre edebilirsiniz.
  • Hassasiyet: Sensörün o anki tam dinamik aralığını (range) yakalarsınız.
  • Kararlılık: map() fonksiyonuyla birlikte kullanıldığında sensör verilerindeki dalgalanmalar minimize edilir.

Yorum yapma özelliği, forum tarafından gelen istek sebebiyle kapatılmıştır. Lütfen tartışmalar ve sorularınız için topluluk forumumuza katılın.