
For, Türkçe’ye ‘İçin’ olarak çevrilebilir. While döngüsünden farkı ise içerisine aldığı argümanlardır. Bu argümanlar sırasıyla başlangıç değeri, koşul ve işlemdir. İlk olarak bir değişkene başlangıç değeri verilir. Daha sonra bir koşul belirlenir. Son olarak da bu koşulun sağlandığı durumda yapılacak işlem girilir. Küme parantezler içerisine de kodlar yazılır. Bu döngüyü yazarak anlatmak biraz zor. Bu yüzden kodlara geçtiğimizde bu döngüyü daha iyi anlayacaksınız.
PWM, Pulse Witdh Modulation kelimelerinin baş harflerinden oluşan bir kısaltmadır Türkçe’ye ‘Sinyal Genişlik Modülasyonu’ olarak çevrilebilir. Dijital çıkışlar ile analog veri elde etmemizi sağlar. PWM pinleri Arduino üzerinde ‘~’ işareti ile gösterilmiştir.
Arduino’nun PWM frekansı 500 hertzdir. Resimdeki her 2 yeşil çizgi arası 500Hz’lik zamanı temsil etmektedir. Bu zaman dilimi içerisinde 5V ile 0V verilme süresi değiştirilerek analog sinyaller üretilebilmektedir. Yani 250Hz boyunca 5V, 250Hz boyunca 0V vermemiz durumunda sanki 2.5V’luk bir sinyal veriyormuşuz gibi anlaşılır. PWM pinlerinde verebileceğimiz maksimum değer 255, en düşük değer ise 0’dır (1 bayt aralığındaki değerler). Bu bilgilerden sonra bağlantı şemasına geçebiliriz.
Bağlantı Şeması:
NOT: Artık LED bağlantısını öğrenmiş olmalıyız çünkü projelerimizin hepsinde LED kullandık. Bağlantıyı bakmadan yapmanız sizin yararınıza olacaktır.
Bağlantımızın 2. projedeki bağlantıdan hiçbir farkı yok fakat burada önemli olan LED’in artı kutbunun PWM pinlerinden birine bağlanması. Ben burada pin olarak 3. pini seçtim siz isterseniz farklı PWM pinleri de kullanabilirsiniz fakat yaptığınız bu değişikliği kodda da uygulamayı unutmayın.
Kodlar:
Yine loop fonksiyonuna kadar olan kodları açıklama gereği duymuyorum çünkü zaten önceki projelerimizde hep aynı kodları yazmıştık.
Loop fonksiyonu içerisinde iki tane for döngüsü görüyoruz. Birincisine bakacak olursak ilk olarak sayaç değişkeninin içerisine 0 değeri atanıyor. Unutulmamalıdır ki bu ilk parametre for döngüsü başlangıcında sadece bir kere çalışır. Daha sonra döngü tekrar çağırılana kadar tekrar çalışmaz. İkinci parametre olarak bir koşul girildiğini görüyoruz. Bu koşul sağlandığı sürece for döngümüz çalışmaya devam edecektir. Üçüncü ve son parametre olarak da bir işlem girildiğini görüyoruz. Koşul her doğru olduğunda küme parantezleri içerisindeki kodlar yapıldıktan sonra bu komut bir kere çalışır. Burada sayacı bir arttırmışız.
Kısacası bu döngü sayaç 0 iken sayacın 256’dan küçük olduğu durumlarda içerisindeki komutları uygular ve üçüncü parametredeki işlemleri uygular. Eğer koşul sağlanmazsa döngüden çıkar.
- for döngüsü ise yukarıdaki döngünün aynısı fakat bu sefer 255’den başlayıp sayacı birer birer azaltıyoruz.
analogWrite(pin numarası, değer);
Bu komut belirlenen pine analog sinyal çıkışı sağlar. PWM pinleri için bu çıkış aralığı 0-255 arası iken analog sinyaller için ise 0-1023 arasıdır. Biz şuanda PWM sinyaller ile ilgileniyoruz. Analog pinlerin kullanımına ileriki projelerde değineceğim.
Kısacası analog sinyal çıkışlarını bu komut ile yapıyoruz. Kodda yazdığımız gibi bu komut içerisine değer olarak bir değişken girebiliriz. Bu kullanım Arduino’nun değer olarak değişkenin içerisindeki değeri almasını sağlar.
Bu kodu yüklediğimizde for döngüsü sayesinde LED’imiz PWM sinyalleri ile yavaş yavaş yanıp söndüğünü görebilirsiniz. Bir sonraki yazımda seri iletişimi ele alacağım. Görüşmek üzere!