Bir İtalyan Efsanesi: Arduino’ya Giriş #2


Serial.print “Babam böyle pasta yapmayı nerden öğrendi?” ;

Arduino dersimize geçmeden önce, birkaç cümle kurmam gerekiyor. Öncelikle kodlama yeteneklerimizi geliştirmemiz gerekiyor. “Ben kodlama bilmiyorum Arduino öğrenebilir miyim?”  sözünü sık sık duyarım. “Arduino öğrenme!” terimine de tamamen karşıyım. Arduino sadece var olan bilgilerinizi derleyebileceğiniz bir platform. Genel olarak hobi amaçlı çalışmalarda kullanılan Arduino, daha komplike çalışmalarda sizleri pek tatmin etmeyebilir. Şimdi gelelim Arduino öğreniyorum kısmına karşı olma nedenime. Arduino bir çok sensörü bir elektronik kartta buluşturup, farklı projeler üretebileceğiniz bir platform ve öğrenme kısmı tamamen sizin yaratıcılığınıza kalmış. “Sensörlerin çalışma mantığı + algoritma + programlama dili = Arduino kodlayabiliyorum.” Demektir.

Şimdi küçük bir proje ile ne demek istediğimi anlatayım size.

  1. Satırda buton adında bir değişken tanımlıyoruz ve bu değişkenimizi 9’a eşitliyoruz. Burada yaptığımız şey, Arduino üzerindeki 9. Pin’e bağladığımız butonumuzu buton adı verdiğimizi değişkene atadık. Yani butondan çekeceğimiz tüm bilgileri(dijital veriler) buton değişkenimizde tanımladık.
  2. Led adı verdiğimiz bir değişkeni de 13. Pin’e atadık. Arduino üstünde 13. Pin’e bir led bağladık ve digital verileri buraya output olarak verecez.
  3. Void Setup() arduino da özelleştirilmiş bir fonksiyon olup, pinlerin durumunu tanımladığımız bir fonksiyondur. VHDL çalışan arkadaşlar buraya yabancı olmasa gerek. Belirlenen pinlerin output mu, input mu olduğunu burada tanımlarız ve arduino kendi içinde artık buraların durumunu çözümlemiş olacak. pinMode() fonksiyonu ise binlerin durumunu çekmeye yarayan bir fonksiyon.
  4. Void loop() fonksiyonuna gelecek olursak; burası diğer programlama dillerinden de tanıyacağınız main() fonksiyonu gibidir. Tüm kodların en son gelip döneceği blok burasıdır.
  5. digitalRead() adındaki fonksiyon ise, digital sinyalleri okuyan bir fonksiyondur. Bu fonksiyonlar Arduino’nun ana kütüphanesinde tanımlı hepsi. Korkmayın yani J
  6. if – else bloğunda yaptığımız herşey normal kodlama mantığında yapılan bir if-else’ten hiçbir farkı yok, olamaz da zaten. Olsa olmaz! J
  7. digitalWrite() fonksiyonu ise Arduino’da output sinyali üretmemizi sağlayan bir fonksiyon.

 

if…else Bloğu

if ve else tek bir karşılaştırma deyimi olup else kullanımı isteğe bağlıdır.
Eğer bu koşul olumlu ise if den sonraki bölüm yürütülür ve else den sonraki bölüm atlanır.
Koşul olumsuz ise if den sonraki küme atlanır ve eğer varsa, else den sonraki kümedeki işlemler gerçekleştirilir.

 

Örnekten de anlaşılacağı gibi,  bir buton ve led var elimizde ve butona bastığımızda led’in yanmasını istiyoruz. Burada kullandığımız yetenekler, önce algoritma ile tasarladığımız sistemin basamak basamak ne yaptığını yazacağız. Sonra elektronik bilgisi ile led ve butonumuzu bir devrede tamamlayıp, ardından kodlama bilgimiz ile bunları Arduino üstünde bir araya getireceğiz.

 

Yemeğimiz artık yenmeye hazır!
Şimdi gelelim devremizin tasarımına

 

Dikkatinizi bir noktaya çekmek isterim, butonları bağlarken 10kΩ direnç kullandık. Bu direncin ismi pull-down direncidir. Peki buradaki pull-down direnci ne işe yarar?

Pull-down direnci, dijital pinleri giriş olarak kullandığımızda sinyalin bozulmamasını sağlar. Bu projemizde buton basılı değilken dijital pinden okunan değer 0V yani lojik LOW seviyesidir. Pull-down direnci, buton basılıp değer HIGH’a çekilmediği sürece bu pindeki gerilimin 0V’ta sabit kalmasını sağlar. Bir de unutulmamalıdır ki, akım direçsiz yolu tercih eder J

 

Çok basit bir çalışma olmasına rağmen, bu örnek bize basit bir if-else alışkanlığı katacak, algoritma alışkanlığı katacak, küçük bir elektronik çalışma yapmamızı sağlayacak. Çünkü her zaman bir led yakarken bile V=IR formülünü kullanmayı unutmayalım ve ona göre gerekli olan direnci ledimiz takarken devreye dahil edelim…

Dönemin vebası , proje yaparken öncesinde algoritma çalışması yapmayıp bodoslama dalmaktır arkadaşlar. Yapacağınız işin daha sağlıklı olması için bunlara dikkat edelim.

 


0 yorum

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Benzer Yazılar Bilim ve Teknoloji