Anlatıma geç
bote.web.tr blog (yeni sekmede açılır)3D Simülasyon MerkeziButonla LED Yakalım
Renkler
  • Güç
  • İşlem
  • Pinler
  • Işıklar
  • Breadboard
  • Parçalar
  • Kontrol

Bu cihaz 3D görüntüyü açamadı. Kartlardaki anlatım ve mini sınav çalışır.

Ekran kartı sahneyi durdurdu.

Bir deliğe dokun: bağlı delikler yeşil yanar

Parçalara dokunarak tanı

Adım 1 / 10

Butonla LED Yakalım: 3D Arduino simülasyonu

  1. Düğmeye basınca ne olur?

    Kapı ziline basınca zil çalar, asansör düğmesine basınca düğmenin ışığı yanar. Peki cihaz düğmeye bastığımızı nasıl anlıyor? Bugün Arduino'ya bir buton bağlayıp ona ilk kez bilgi okutacağız.

    Asansör düğmesine bastığınızda düğmenin ışığı yanar, asansör katınıza gelir. Kapı ziline basınca zil çalar. Bu cihazlar önce bizden bir bilgi alır, sonra bir iş yapar. Bugün Arduino'ya bir butonu okutacağız ve butona basılınca LED'i yakacağız.

    Asansör, düğmeye basıldığını algılar, kararını verir ve sonra katınıza gelir. Bu da bir giriş ve çıkış örneği: düğme bilgi verir, motor ve ışık iş yapar. Önceki derste Arduino yalnız çıkış verdi. Bugün ilk kez dışarıdan bilgi okuyacak ve bu bilgiye göre karar verecek.

    Asansör düğmesi, kapı zili ya da yaya geçidindeki bekleme butonu: hepsi bir insan hareketini elektrik sinyaline çevirir. Cihaz bu sinyali okur ve kodundaki koşula göre karar verir. Bugün Arduino'nun D2 pinini giriş olarak kullanıp butonun durumunu okuyacağız; buton basılıysa D13'teki LED'i yakan bir karar yapısı yazacağız.

    Bu derste

    • Butonun basınca iki tarafı birleştirdiğini göreceğiz.
    • Kartın bilgi okuduğu pin ile ışık verdiği pini ayırt edeceğiz.
    • Butona basınca LED'i yakan devreyi ve kodu deneyeceğiz.

    Bu derste

    • Giriş ve çıkış pinlerinin farkını örnekle açıklayacağız.
    • 10 kΩ direncin devrede neden durduğunu anlatacağız.
    • Eğer-değilse (if-else) yapısıyla çalışan bir kodu okuyacağız.

    Bu derste

    • Butonun durumunu HIGH ve LOW olarak okuyan bir giriş devresi kuracağız.
    • Pull-down direnci olmadan girişin neden kararsız kaldığını açıklayacağız.
    • if-else yapısının loop içinde nasıl sürekli karar verdiğini izleyeceğiz.

    Bu derste

    • Pull-down direncinin girişi 0 V'a nasıl çektiğini açıklayacağız.
    • Buton basılıyken 10 kΩ üzerinden geçen akımı hesaplayacağız.
    • digitalRead, karşılaştırma (==) ve if-else ile bir karar yapısı kuracağız.
  2. Malzemelerimiz

    Bu derste Ders 2'deki LED devresine bir buton ekliyoruz. Gerekenler: 1 buton, 1 adet 10 kΩ direnç, 1 adet 220 Ω direnç, 1 LED ve birkaç kablo. İki direnç birbirine benzer; renk çizgilerinden ayırt ederiz.

    Gerekenler: 1 buton, 1 adet 10 kΩ direnç (kahverengi, siyah, turuncu, altın), 1 adet 220 Ω direnç (kırmızı, kırmızı, kahverengi, altın), 1 LED ve kablolar. 10 kΩ, 10.000 ohm demektir; k harfi bin anlamına gelir. İki direnci karıştırmamak için renk bantlarına bakalım.

    Malzemeler: 1 buton, 1 adet 10 kΩ ve 1 adet 220 Ω direnç, 1 LED ve bağlantı kabloları. İki direncin görevi farklıdır: 220 Ω LED'in akımını sınırlar; 10 kΩ ise buton basılı değilken giriş pinini sabit bir değerde tutar. Bu ikinci görevi birazdan ayrıntılı göreceğiz.

    Malzemeler: 1 buton (4 bacaklı), 1 adet 10 kΩ direnç (kahverengi-siyah-turuncu-altın: 10 × 1000 Ω), 1 adet 220 Ω direnç, 1 LED ve bağlantı kabloları. 220 Ω, çıkış devresinde LED akımını sınırlar; 10 kΩ ise giriş devresinde pull-down direnci olarak çalışır. Değerleri karıştırmak devrenin davranışını değiştirir; renk bantlarını takmadan önce kontrol edelim.

  3. Butonu tanıyalım

    Buton bir köprü gibidir. Basmadığımızda iki taraf ayrıdır, elektrik geçemez. Bastığımızda köprü kurulur ve iki taraf birleşir. Dört bacağı var: bacaklar içeride ikişer ikişer bağlıdır, basınca bu iki çift birbirine bağlanır.

    Buton, basılınca devrenin iki noktasını birleştiren bir anahtardır. Basılı değilken o iki nokta ayrıdır (açık devre), basılıyken bağlanır (kapalı devre). Dört bacağı vardır: bacaklar içeride ikişer ikişer bağlıdır ve butona basınca bu iki çift birbirine bağlanır. Bıraktığımızda içindeki yay butonu geri iter.

    Buton, basıldığı sürece iki noktayı birleştiren bir anahtardır; bırakınca bağlantı kopar. Ev ışık anahtarından farkı, konumunu korumamasıdır. Dört bacak içeride ikişer ikişer bağlıdır; basınca iki çift birleşir. Butonu kanalın üstüne takarız; böylece bacaklar ayrı şeritlere girer ve buton, basılmadan bağlı kalmaz.

    Bu bir anlık butondur: yalnız basılı olduğu sürece iki kontağı birleştirir; bırakınca yay onu açık konuma döndürür. Dört bacak iki çift hâlinde içeriden bağlıdır; basılınca iki çift arasında iletken bir yol oluşur. Kanalın üstüne takılan butonun bacakları dört ayrı şeride girer; böylece bağlantıyı breadboard değil, buton kurar.

  4. Giriş ve çıkış

    Bu devrede iki pin var. Pin 2 kulak gibidir: butonu dinler, yani giriştir. Pin 13 ağız gibidir: LED'e ne yapacağını söyler, yani çıkıştır. Kart, duyduğuna göre karar verir.

    Giriş, karta dışarıdan bilgi gelen yoldur; çıkış, kartın dışarıya iş yaptırdığı yoldur. Bu devrede pin 2 giriştir: butona basılıp basılmadığını okur. Pin 13 çıkıştır: LED'i yakar ya da söndürür. Bilgisayardaki klavye giriş, ekran çıkış birimidir; burada da aynı fikir var.

    Her pin kodla bir göreve ayarlanır. pinMode(buton, INPUT) pin 2'yi giriş yapar: pin, üzerindeki gerilimi okur. pinMode(led, OUTPUT) pin 13'ü çıkış yapar: pin gerilim verir. Program giriş bilgisini okur, bir karar verir ve sonucu çıkışa yazar: giriş, işlem, çıkış.

    INPUT olarak ayarlanan pin bir ölçüm ucu gibi davranır: neredeyse akım çekmeden üzerindeki gerilimi okur ve HIGH ya da LOW olarak yorumlar. OUTPUT olarak ayarlanan pin ise 5 V ya da 0 V vererek LED gibi bir yükü sürer. Bu devrede D2 giriş, D13 çıkıştır. Sistem modeli: giriş (D2), işlem (if ve else), çıkış (D13).

  5. Devreyi kuralım

    USB takılı değilken kuralım. Kırmızı kablo 5V'tan alttaki + rayına (en dıştaki kırmızı çizgili sıra), siyah kablo GND'den alttaki - rayına. Buton kanalın üstüne: bir yanı + rayına, öbür yanı pin 2'ye. 10 kΩ direnç pin 2 tarafından - rayına. LED, Ders 2'deki gibi.

    USB takılı değilken kuralım. Kırmızı kablo 5V'u alttaki + rayına (en dıştaki kırmızı çizgili sıra), siyah kablo GND'yi alttaki - rayına bağlar. Buton kanalın üstüne takılır; bir yanı + rayına, öbür yanı pin 2'ye gider. 10 kΩ direnç, pin 2 tarafından - rayına iner. LED ve 220 Ω, Ders 2'deki gibi pin 13'te.

    Devreyi USB takılı değilken kuralım. Kırmızı kablo 5V'u alttaki + rayına (en dıştaki kırmızı çizgili sıra), siyah kablo GND'yi alttaki - rayına taşır. Buton kanalın üstüne takılır: bir yanı 5 V'a, öbür yanı pin 2'ye bağlanır. 10 kΩ direnç pin 2 tarafını - rayına bağlar. Çıkış tarafı Ders 2'deki gibi: pin 13, LED, 220 Ω, - rayı. İki devre aynı GND'yi paylaşır.

    Bağlantılar USB takılı değilken yapılır. Kırmızı kablo 5V'u alt kenardaki + rayına (en dıştaki kırmızı çizgili sıra), siyah kablo GND'yi hemen yanındaki - rayına bağlar. Giriş devresi: + rayı, buton, D2 bağlantı noktası; bu noktadan 10 kΩ ile - rayı. Çıkış devresi Ders 2'deki gibidir: D13, LED, 220 Ω, - rayı. İki devrenin ortak noktası GND'dir; bütün gerilimler bu ortak 0 V'a göre ölçülür.

  6. 10 kΩ direnç ne işe yarar?

    Butona basmadığımızda pin 2 neyi okuyor? 10 kΩ direnç, kapıyı kendiliğinden kapatan bir yay gibidir: pin 2'yi GND'ye çeker ve basılı değilken kart LOW (kapalı) okur. Basınca 5V pin 2'ye ulaşır, kart HIGH (açık) okur.

    10 kΩ direnç pin 2'yi GND'ye bağlar; buna pull-down (aşağı çeken) direnç denir. Basılı değilken pin 0 V'a çekilir ve kart LOW okur. Butona basınca pin 5V'a bağlanır ve kart HIGH okur. Direncin büyük olması, basınca 5V'tan GND'ye çok az elektrik akmasını sağlar.

    Pin 2 giriş olarak ayarlıdır ve kendi başına bir gerilim vermez; yalnız bağlı olduğu yerin gerilimini okur. Butona basılı değilken 10 kΩ direnç pin 2'yi GND'ye bağlar, kart LOW okur. Basınca pin doğrudan 5V'a bağlanır ve HIGH okur. Neden düz bir kablo kullanmıyoruz? Kablo olsaydı butona basınca 5V ile GND kısa devre olurdu. Bu dirence pull-down denir.

    Pull-down direnci, giriş pinini bilinen bir duruma çeker. Buton basılı değilken D2, 10 kΩ üzerinden GND'ye bağlıdır; giriş neredeyse akım çekmediği için direnç üzerinde neredeyse hiç gerilim düşmez ve D2 yaklaşık 0 V (LOW) olur. Buton basılınca D2 doğrudan 5 V'a bağlanır (HIGH). Bu sırada 10 kΩ üzerinden I = V / R = 5 V / 10.000 Ω = 0,5 mA akar; düz kablo kullansaydık R ≈ 0 olur, kısa devre oluşurdu.

  7. Kodu okuyalım

    Kodun başında pinlere ad veriyoruz: buton 2'de, LED 13'te. loop içinde kart sürekli soruyor: Butona basılı mı? Evetse LED'i yakar, değilse söndürür. Bu soru durmadan, çok hızlı tekrarlanır.

    Kodun ilk iki satırı pinlere ad verir: buton 2, led 13. const, bu değerlerin sabit olduğunu, değişmeyeceğini söyler. setup içinde pin 2 giriş, pin 13 çıkış yapılır. loop içinde bir koşul var: if (eğer) butona basılıysa LED'i yak, else (değilse) söndür.

    const int buton = 2; satırı 2 sayısına bir ad verir; artık kodda buton yazınca program 2'yi anlar. const, değerin program boyunca değişmeyeceğini belirtir. loop içindeki if yapısı bir karardır: digitalRead(buton) HIGH ise LED yanar, değilse else bölümü çalışır ve LED söner. Döngü bu kararı sürekli yeniden verir.

    const int, adı olan ama değeri değişmeyen bir tam sayı tanımlar; pin numaralarına ad vermek kodu okunur yapar ve değişikliği tek satıra indirir. digitalRead(buton) D2'nin durumunu HIGH ya da LOW olarak döndürür; == karşılaştırma işlecidir (tek = atama yapar, karıştırmayalım). Koşul doğruysa if bloğu, yanlışsa else bloğu çalışır. loop bu okuma, karar ve yazma döngüsünü sürekli tekrarlar.

    Arduino koduAltında Türkçesi
    1. const int buton = 2;Butonun bağlı olduğu pine ad verelim: buton = 2. const, bu değer değişmez demek.
    2. const int led = 13;LED'in bağlı olduğu pine de ad verelim: led = 13.
    3. void setup() {Hazırlık bölümü: kart açılınca bir kez çalışır.
    4. pinMode(buton, INPUT);Buton pinini (2) giriş yap: bu pin bilgi okuyacak.
    5. pinMode(led, OUTPUT);LED pinini (13) çıkış yap: bu pin elektrik verecek.
    6. }Hazırlık bölümü bitti.
    7. void loop() {Tekrar bölümü: durmadan döner.
    8. if (digitalRead(buton) == HIGH) {Eğer buton pini HIGH okunuyorsa, yani butona basılıysa:
    9. digitalWrite(led, HIGH);LED'i yak.
    10. } else {Değilse, yani butona basılı değilse:
    11. digitalWrite(led, LOW);LED'i söndür.
    12. }Karar bölümü bitti.
    13. }Tekrar bölümü bitti; başa dön ve butonu yeniden oku.
  8. Butona basalım

    USB'yi takalım. Şimdi "Butona bas" düğmesine ya da ekrandaki butona dokunalım. Basılı tuttuğumuz sürece LED yanar, bırakınca söner. Kodda hangi satırın parladığına bakalım: basınca if bölümü, bırakınca else bölümü.

    "Butona bas" düğmesine ya da 3D butona basıp bırakalım. Basılıyken LED yanıyor, bırakınca sönüyor. Vurgulanan satırı izleyelim: basılıyken digitalWrite(led, HIGH), bırakınca digitalWrite(led, LOW) çalışıyor. Butona kısa kısa basarak LED'in ne kadar hızlı tepki verdiğine de bakalım.

    "Butona bas" düğmesiyle ya da 3D butona dokunarak deneyelim. Basılıyken pin 2 HIGH okunur, if koşulu doğru olur ve LED yanar. Bırakınca pin 2 LOW olur, else bölümü çalışır ve LED söner. Vurgulanan satırlara bakalım: döngü her turda butonu yeniden okuyor; bu yüzden LED, butona neredeyse anında tepki veriyor.

    "Butona bas" ile D2'nin durumunu değiştirip vurgulanan satırları izleyelim. Döngünün her turunda digitalRead yeniden çağrılır ve koşul baştan değerlendirilir. LED'in anında tepki vermesinin nedeni döngünün çok kısa sürmesidir; bu kodda delay yok. Düşünelim: loop sonuna delay(1000) eklenseydi kısa bir basış neden fark edilmeyebilirdi? Ders 4'te bu soruya yeniden döneceğiz.

    Arduino koduAltında Türkçesi
    1. const int buton = 2;Butonun bağlı olduğu pine ad verelim: buton = 2. const, bu değer değişmez demek.
    2. const int led = 13;LED'in bağlı olduğu pine de ad verelim: led = 13.
    3. void setup() {Hazırlık bölümü: kart açılınca bir kez çalışır.
    4. pinMode(buton, INPUT);Buton pinini (2) giriş yap: bu pin bilgi okuyacak.
    5. pinMode(led, OUTPUT);LED pinini (13) çıkış yap: bu pin elektrik verecek.
    6. }Hazırlık bölümü bitti.
    7. void loop() {Tekrar bölümü: durmadan döner.
    8. if (digitalRead(buton) == HIGH) {Eğer buton pini HIGH okunuyorsa, yani butona basılıysa:
    9. digitalWrite(led, HIGH);LED'i yak.
    10. } else {Değilse, yani butona basılı değilse:
    11. digitalWrite(led, LOW);LED'i söndür.
    12. }Karar bölümü bitti.
    13. }Tekrar bölümü bitti; başa dön ve butonu yeniden oku.
  9. Direnci çıkarırsak?

    Önce tahmin edelim. Sonra "10 kΩ direnci çıkar" düğmesine basalım ve butona hiç dokunmadan LED'e bakalım. Kod aynı, buton aynı; yalnız pin 2'yi GND'ye bağlayan direnç gitti.

    Tahmin et, sonra gör. "10 kΩ direnci çıkar" düğmesine basınca pin 2, butona basmadıkça hiçbir yere bağlı olmayacak. Önce sınıfça tahminimizi söyleyelim, sonra butona dokunmadan bir süre LED'i izleyelim.

    Tek bir şeyi değiştiriyoruz: pull-down direncini çıkaracağız. Buton basılı değilken pin 2 hiçbir yere bağlı olmayacak. Önce gerekçeli bir tahmin yapalım: kart bu durumda ne okur? Sonra "10 kΩ direnci çıkar" düğmesine basalım, butona dokunmadan LED'i ve vurgulanan kod satırlarını izleyelim.

    Değiştirdiğimiz tek şey pull-down direnci. "10 kΩ direnci çıkar" düğmesine basınca D2, buton basılı değilken hiçbir gerilim kaynağına bağlı olmaz. Önce şu soruyu yanıtlayalım: giriş pini neredeyse akım çekmiyorsa, bağlı olmadığında gerilimini ne belirler? Tahminimizi yazdıktan sonra butona dokunmadan LED'i ve if, else satırlarının vurgusunu gözleyelim.

    Tahmin et: 10 kΩ direnci çıkarırsak, butona dokunmadığımızda LED ne yapar?

    LED kararsız davranabilir: kendi kendine yanıp sönebilir. Pin 2 boşta kalınca kart ne okuyacağını bilemez, bazen açık bazen kapalı sanır. Direnç, pini GND'ye bağlayarak bu karışıklığı önler.

    Tahmin et: Pull-down direnci yokken butona basmazsak kart pin 2'yi nasıl okur? LED ne yapar?

    Pin 2 boşta kalır. Boştaki bir pin bazen HIGH, bazen LOW okunabilir ve bu rastgele değişebilir. Bu yüzden LED, butona dokunmasak da kendi kendine yanıp sönebilir. Pull-down direnci pini LOW'da tutarak bunu engeller.

    Tahmin et: Pin 2 hiçbir yere bağlı değilken digitalRead HIGH mı okur, LOW mu? LED'e ne olur?

    Pin boşta kalınca okunan değer belirsizleşir: digitalRead bazen HIGH bazen LOW döndürebilir ve bu rastgele değişebilir. Buna boşta (floating) giriş denir. LED bu yüzden butona basılmadan da kararsız yanıp sönebilir. Pull-down direnci girişi LOW'a sabitler.

    Tahmin et: Bağlantısız (boşta) bir giriş pini hangi değeri okur? Bu, LED'in davranışına nasıl yansır?

    Boşta kalan giriş floating olur: gerilimini belirleyen bir yol olmadığı için küçük elektriksel etkilerle kayabilir. digitalRead bu yüzden rastgele HIGH ya da LOW döndürebilir ve LED kararsız yanıp sönebilir. Çözüm, girişi bilinen bir gerilime bağlayan dirençtir: pull-down (GND'ye) ya da pull-up (5 V'a; o zaman mantık tersine döner). Arduino'nun iç pull-up direnci için INPUT_PULLUP da kullanılabilir.

  10. Özet

    Bugün karta ilk kez bilgi okuttuk. Pin 2 butonu dinler (giriş), pin 13 LED'i yakar (çıkış). Buton basınca iki tarafı birleştirir. 10 kΩ direnç, basılı değilken pini kapalıda tutar. Kod sürekli sorar: basılı mı? Evetse yak, değilse söndür.

    Özet: Giriş pini bilgi okur, çıkış pini iş yaptırır. Buton basılıyken iki noktayı birleştirir. 10 kΩ pull-down direnci, basılı değilken pin 2'yi GND'ye çekerek LOW okutur; basınca pin 5V'a bağlanır ve HIGH okunur. if ve else ile kart her turda karar verir.

    Bir sistem giriş, işlem ve çıkıştan oluşur: buton (D2) giriş, if ve else işlem, LED (D13) çıkış. Pull-down direnci, buton basılı değilken girişin boşta (floating) kalıp rastgele değer okumasını önler; düz kablo yerine direnç kullanmamızın nedeni basınca kısa devreyi önlemektir. loop butonu her turda yeniden okur.

    D2 INPUT olarak gerilimi okur; pull-down direnci buton açıkken onu 0 V'a çeker, buton kapanınca D2 5 V olur ve 10 kΩ üzerinden yalnız 0,5 mA akar. Boşta kalan giriş rastgele okunur. Koşul ifadesinde == karşılaştırır; if ya da else bloklarından her turda yalnız biri çalışır. delay olmayan döngü butona neredeyse anında tepki verir.

    Mini sınav

    Bu devrede butonu okuyan pin hangisi?
    Butona basınca ne olur?
    10 kΩ direnci çıkarırsak, butona dokunmasak bile LED ne yapabilir?

    Mini sınav

    Kodda else bölümü ne zaman çalışır?
    Pull-down direnci, buton basılı değilken pin 2'yi nereye bağlar?
    Giriş pini için hangisi doğrudur?

    Mini sınav

    pinMode(buton, INPUT) satırı ne yapar?
    Pull-down direnci yerine pin 2'yi GND'ye düz bir kabloyla bağlasaydık butona basınca ne olurdu?
    Boşta (floating) giriş ne demektir?

    Mini sınav

    Buton basılıyken 10 kΩ pull-down direncinden geçen akım yaklaşık kaçtır?
    if (digitalRead(buton) = HIGH) yazılırsa sorun nedir?
    Pull-up direnciyle (5 V'a) kurulan bir buton devresinde butona basılınca giriş ne okur?

Öğretmen notu

Süre: yaklaşık 30 dakika. Düzey: ortaokul; anlatım seçilen sınıfa (5-8) göre değişir.

Öğrenme hedefleri (5. sınıf)

Öğrenme hedefleri (6. sınıf)

Öğrenme hedefleri (7. sınıf)

Öğrenme hedefleri (8. sınıf)

Hazırlık

Ders 2'deki LED devresini bozmadan buton kısmını ekleyin. Gerçek sette 4 bacaklı butonun kanalın üstüne tam oturduğunu kontrol edin; 90 derece döndürülerek takılan buton hep basılıymış gibi davranabilir. Pull-down adımında direncin ne yaptığını anlatın ama direnç olmazsa ne olacağını söylemeyin; bunu tahmin adımına bırakın. Müfredat bağı: 5. sınıf BTY 6. temasında "karar", "değişken" ve "sabit" anahtar kavramları ile problemin girdi ve çıktılarını belirleme (BTY.5.6.1); 6. sınıf BTY 6. temasında "koşul blokları" anahtar kavramı ve mekanik/robotik ürün ortaya koyma becerisi. 6. sınıf programında öğretmenin robotik bir kartla LED yaktığı örnek etkinlik de yer alır.

Gerçek set için malzemeler

Güvenlik

Sık görülen yanlış düşünceler

Sınıf tartışması

Hızlı bitirenlere

Kullanım

Kavramlar

Buton

Teknik
Buton, basınca iki tarafı birleştiren bir düğmedir. Bırakınca bağlantı kopar.

Günlük hayatta
Kapı zili, asansör düğmesi ve klavye tuşları birer buton gibi çalışır.

Teknik
Buton, basılı tutulduğu sürece devrenin iki noktasını birleştiren bir anahtardır; Arduino butonun durumunu bir giriş pininden okur.

Günlük hayatta
Bazı yaya geçitlerinde yayaların bastığı bir buton bulunur; bu buton, karşıya geçmek isteyen biri olduğunu ışık sistemine bildirir.

Teknik
Anlık buton yalnız basılıyken iletir; Arduino'da durumu digitalRead ile HIGH ya da LOW olarak okunur. Basılı değilken girişin belirsiz kalmaması için pull-down ya da pull-up direnci gerekir.

Günlük hayatta
Asansör çağrı düğmesine bir kez basmak yeter, çünkü isteği içerideki program hatırlar; buton yalnız bilgi verir, kararı program verir.

Teknik
Buton mekanik bir anahtardır: basılıyken kontakları arasındaki direnç neredeyse sıfır, açıkken çok büyüktür. Pull-down direnciyle giriş LOW'a çekilir, basınca 5 V'a bağlanır ve HIGH okunur; Arduino'nun iç pull-up direnci için INPUT_PULLUP da kullanılabilir.

Günlük hayatta
Büyük ve kolay basılan butonlar gibi, bir butonun yeri ve boyutu da tasarımın parçasıdır; iyi tasarım, engelli bireyler dahil herkesin kullanabileceği bir arayüz demektir.

Giriş ve çıkış

Teknik
Giriş, karta bilgi gelen yoldur (buton gibi). Çıkış, kartın bir iş yaptırdığı yoldur (LED gibi).

Günlük hayatta
Bilgisayarda klavye ve fare giriş, ekran ve hoparlör çıkış birimidir.

Teknik
Giriş pini dışarıdan bilgi okur, çıkış pini dışarıya elektrik vererek iş yaptırır; Arduino'da bunu pinMode ile seçeriz.

Günlük hayatta
Otomatik kapıda algılayıcı giriştir, kapıyı açan motor çıkıştır; arada kararı bir program verir.

Teknik
Bir sistem giriş (algılama), işlem (karar) ve çıkış (eylem) adımlarıyla çalışır. Arduino'da pinMode(pin, INPUT) pini okumaya, pinMode(pin, OUTPUT) yazmaya hazırlar.

Günlük hayatta
Dokunmatik ekran hem giriş hem çıkış birimidir: dokunuşumuzu algılar ve görüntü gösterir.

Teknik
INPUT olarak ayarlanan pin dışarıdaki gerilimi okur ve neredeyse akım çekmez; OUTPUT olarak ayarlanan pin HIGH'ta yaklaşık 5 V, LOW'da 0 V vererek bir yükü sürer. Giriş, işlem, çıkış modeli bilgisayar sistemlerinin temel yapısıdır.

Günlük hayatta
Bir sistemi tasarlarken önce girişleri (hangi bilgiyi toplayacağız) ve çıkışları (ne yapacağız) belirleriz; gereğinden fazla bilgi toplamamak da iyi tasarımın bir parçasıdır.

Pin

Teknik
Pin, kartın kenarındaki küçük bağlantı ucudur. Kabloları buraya takarız.

Günlük hayatta
Bir evin kapıları gibi düşünebiliriz: kart dışarıyla pinlerinden haberleşir.

Teknik
Pin, kartın dış dünyayla bağlantı kurduğu uçtur; her pinin bir numarası ya da adı vardır (13, A0, GND gibi).

Günlük hayatta
Bilgisayardaki USB girişleri ya da kulaklık girişi gibi, kartın pinleri de başka parçaları bağlamak içindir.

Teknik
Pin, mikrodenetleyiciye giden bir bağlantı noktasıdır; dijital pinler kodla giriş (okuma) ya da çıkış (yazma) olarak ayarlanabilir.

Günlük hayatta
Telefonun şarj girişindeki küçük metal temas noktaları da pin gibidir: bazıları güç, bazıları bilgi taşır.

Teknik
Pin, sinyal ya da besleme bağlantı noktasıdır. Dijital pinler pinMode ile INPUT, OUTPUT ya da INPUT_PULLUP yapılır; 5V, 3,3V ve GND gibi güç pinleri ise sabit gerilim sağlar.

Günlük hayatta
Her elektronik cihazda bağlantı uçları vardır: şarj soketleri, kart okuyucular, çiplerin bacakları. Doğru pine doğru bağlantıyı yapmak, cihazın güvenli çalışmasının ilk şartıdır.

Dijital

Teknik
Dijital, yalnız iki durum demektir: açık ya da kapalı. Bir ışık anahtarı gibi.

Günlük hayatta
Telefon, bilgisayar ve tablet bütün bilgiyi açık ve kapalı gibi iki işaretle saklar.

Teknik
Dijital sinyal yalnız iki değer alır: var (HIGH, 1) ya da yok (LOW, 0).

Günlük hayatta
Fotoğraflar, müzikler ve yazılar bilgisayarda 1 ve 0'lardan oluşan dijital bilgi olarak saklanır.

Teknik
Dijital sinyal iki seviyeli bir sinyaldir: Arduino UNO'da HIGH yaklaşık 5 V, LOW 0 V'tur. Bilgisayarlar bütün bilgiyi bu iki değerle, yani 1 ve 0'larla tutar.

Günlük hayatta
Dijital bilgi bozulmadan kopyalanabilir; bu yüzden fotoğraf, müzik ve kitaplar kolayca paylaşılabilir. Bu kolaylık, başkasının eserini izinsiz kopyalamama sorumluluğunu da getirir.

Teknik
Dijital sinyal, belli bir eşiğin üstünde HIGH (1), altında LOW (0) sayılan iki seviyeli bir sinyaldir. UNO'da çıkış HIGH iken yaklaşık 5 V, LOW iken 0 V'tur; bit, bu iki değerden birini tutan en küçük bilgi birimidir.

Günlük hayatta
Dijitalleşme, bilginin 1 ve 0'lara çevrilip saklanması ve iletilmesidir; okul kayıtlarından kütüphane kataloglarına kadar birçok iş bugün dijital yürür. Bu kolaylık, verinin korunması sorumluluğunu da getirir.

Direnç

Teknik
Direnç, elektriğin akışını azaltan küçük bir parçadır. Musluğu biraz kısmak gibi.

Günlük hayatta
Ses düzeyini ayarladığımız bazı çevirmeli düğmelerin içinde ayarlanabilir bir direnç bulunur.

Teknik
Direnç, maddelerin elektriğin geçişine karşı gösterdiği zorluktur; birimi ohm'dur (Ω). Devredeki direnç parçası akımı sınırlayarak diğer parçaları korur.

Günlük hayatta
Saç kurutma makinesi ve elektrikli ısıtıcı gibi cihazlar, direnci olan tellerin ısınmasıyla çalışır.

Teknik
Direnç, bir maddenin akıma karşı gösterdiği zorluktur ve ohm (Ω) ile ölçülür. Aynı gerilimde direnç büyüdükçe akım küçülür; renk bantları direncin değerini gösterir.

Günlük hayatta
Elektrik kabloları genellikle bakırdan yapılır, çünkü bakırın direnci düşüktür; böylece elektrik yolda daha az boşa harcanır.

Teknik
Direnç R = V / I bağıntısıyla tanımlanır ve ohm (Ω) ile ölçülür. 220 Ω'luk direnç (kırmızı-kırmızı-kahverengi-altın) LED akımını yaklaşık 14 mA'de tutar; 10 kΩ'luk direnç (kahverengi-siyah-turuncu-altın) pull-down olarak çok küçük bir akım geçirir.

Günlük hayatta
Uzun ve ince teller daha büyük direnç gösterir; bu yüzden ev tesisatında kablo kalınlığı taşınacak akıma göre seçilir. Yanlış seçilen ince kablo ısınabilir ve yangın riski oluşturur.

GND (toprak)

Teknik
GND, elektriğin geri döndüğü yerdir. Devre burada tamamlanır.

Günlük hayatta
Su borusu benzetmesinde suyun geri döndüğü boru gibidir: dönüş yolu yoksa su akmaz.

Teknik
GND (toprak), devrenin ortak dönüş noktasıdır; gerilimi 0 volt kabul edilir.

Günlük hayatta
Cihazların kılavuzlarında ve kartların üstünde GND ya da eksi (-) işareti olarak karşımıza çıkar.

Teknik
GND, devredeki bütün gerilimlerin karşılaştırıldığı 0 V noktasıdır. Akım bir besleme noktasından çıkar, parçalardan geçer ve GND'ye dönerek devreyi tamamlar.

Günlük hayatta
Pille çalışan oyuncaklarda pilin eksi ucu, devrenin GND'si gibi görev yapar.

Teknik
GND, devrenin 0 V başvuru noktasıdır; bir noktanın gerilimi denince o nokta ile GND arasındaki potansiyel farkı kastedilir. Birlikte çalışan devrelerin aynı GND'yi paylaşması, sinyallerin doğru okunması için gereklidir.

Günlük hayatta
Pilli cihazlarda pilin eksi ucu, araçlarda ise genellikle aracın metal gövdesi ortak dönüş noktası olarak kullanılır.

Gerilim (volt)

Teknik
Gerilim, elektriği iten etkidir. Birimi volttur (V); Arduino 5 volt kullanır.

Günlük hayatta
Bir kalem pil yaklaşık 1,5 volttur. Prizdeki elektriğin gerilimi ise çok yüksektir ve tehlikelidir; prize asla bir şey sokmayız.

Teknik
Gerilim, elektriği devrede iten etkidir ve volt (V) ile ölçülür. Arduino'nun 5V pini 5 volt verir; bu, prizdeki elektriğe göre çok düşüktür.

Günlük hayatta
Kalem piller yaklaşık 1,5 V, telefon şarj aletleri genellikle 5 V verir; evlerdeki prizlerin gerilimi ise bunlardan kat kat yüksektir ve hayati tehlike taşır.

Teknik
Gerilim, iki nokta arasındaki elektriksel itme farkıdır ve volt ile ölçülür. Su benzetmesinde su basıncına benzer: basınç farkı yoksa su akmaz, gerilim yoksa akım oluşmaz.

Günlük hayatta
Cihazların etiketlerinde hangi gerilimle çalıştıkları yazar; yanlış gerilimli adaptör cihazı bozabilir. Bu yüzden adaptör seçerken etikete bakarız.

Teknik
Gerilim (potansiyel farkı), iki nokta arasındaki elektriksel itme farkıdır; voltmetre devre elemanına paralel bağlanarak ölçülür, birimi volttur. Ohm yasasına göre V = I × R; UNO'da HIGH çıkış yaklaşık 5 V, LOW 0 V'tur.

Günlük hayatta
Elektrik, santrallerden evlere taşınırken farklı gerilim seviyelerine dönüştürülür; adaptörler de şebeke gerilimini düşük ve güvenli bir gerilime çevirir. Arduino gibi kartlar yalnız bu düşük gerilimle çalışır.

Akım

Teknik
Akım, elektriğin kablolardan akmasıdır. Borudaki su akışı gibi düşünebiliriz.

Günlük hayatta
Prize takılı bir cihaz çalışırken içinden akım geçer. Islak elle elektrikli cihazlara dokunmayız.

Teknik
Akım, elektriğin devrede bir yerden öbür yere hareket etmesidir; yalnız kapalı bir devrede oluşur.

Günlük hayatta
Gereksiz yanan bir lamba boşuna akım çeker ve enerji harcar; kullanmadığımız cihazları kapatmak tasarruf sağlar.

Teknik
Elektrik akımı, elektrik yüklerinin bir iletken boyunca hareket etmesidir. Akım yalnız kesintisiz, kapalı bir yolda oluşur; tek yollu bir devrede her noktada aynıdır.

Günlük hayatta
İnsan vücudundan geçen küçük bir akım bile tehlikeli olabilir; bu yüzden prizlere ve açık kablolara dokunmayız. Arduino'nun 5 voltu bu tehlikeyi taşımaz ama kurallara yine uyarız.

Teknik
Akım, bir iletkenin kesitinden birim zamanda geçen yük miktarıdır; ampermetre devreye seri bağlanarak ölçülür, birimi amperdir (A). LED devremizde akım yaklaşık 14 mA, yani 0,014 A'dır.

Günlük hayatta
Elektrik enerjisini bilinçli kullanmak, gereksiz akım çeken cihazları kapatmakla başlar; LED'ler aynı ışık için eski tip ampullerden daha az enerji harcadığı için aydınlatmada yaygınlaşmıştır.

LED

Teknik
LED, elektrik geçince ışık veren küçük bir lambadır. Uzun bacağı artı, kısa bacağı eksi tarafıdır.

Günlük hayatta
Trafik ışıklarında, ekranlarda ve cihazların açık-kapalı ışıklarında LED'leri görürüz.

Teknik
LED (ışık yayan diyot), elektriği yalnız bir yönde, anottan katoda geçirir ve bu sırada ışık verir.

Günlük hayatta
LED ampuller, eski tip ampullere göre aynı ışığı daha az elektrikle verir.

Teknik
LED, akımı tek yönde geçiren bir diyottur; akım anottan katoda geçtiğinde ışık yayar. Ters bağlanırsa akım geçmez ve yanmaz; doğru yönde ise akımı mutlaka bir dirençle sınırlanmalıdır.

Günlük hayatta
Az enerji harcadıkları için sokak lambalarında, araç farlarında ve ekranlarda LED kullanımı yaygınlaşmıştır; bu da enerji tasarrufuna katkı sağlar.

Teknik
LED bir yarı iletken diyottur: doğru yönde bağlandığında üzerinde rengine göre değişen bir gerilim kalır (kırmızı için yaklaşık 1,8-2,2 V) ve ışık yayar. Akımı seri bir dirençle sınırlanır; ters yönde iletmez.

Günlük hayatta
Caddelerdeki ve stadyumlardaki büyük LED ekranlarda görüntü, binlerce küçük LED'in parlaklığı ayarlanarak oluşur. LED aydınlatma, enerji verimliliği sayesinde elektrik tüketimini azaltmaya yardım eder.

Kod (program)

Teknik
Kod, karta ne yapacağını adım adım söyleyen komutlar listesidir.

Günlük hayatta
Telefondaki oyunlar ve uygulamalar da kodla yazılır.

Teknik
Program (kod), bilgisayarın ya da kartın anlayacağı bir dille yazılmış komutlar dizisidir; Arduino kodları setup ve loop bölümlerinden oluşur.

Günlük hayatta
Birçok çamaşır makinesinin programı, trafik ışıkları ve oyunlar kodla çalışır; bu kodları insanlar yazar.

Teknik
Kod, bir algoritmanın programlama diliyle yazılmış hâlidir. Arduino kodu bilgisayarda yazılır, derlenir ve USB üzerinden kartın belleğine yüklenir; kart komutları yukarıdan aşağı sırayla çalıştırır.

Günlük hayatta
Kodu yazan kişi cihazın nasıl davranacağına karar verir; bu yüzden kod yazarken güvenliği ve kullanıcıları düşünmek bir sorumluluktur.

Teknik
Arduino programları C++ tabanlı bir dille yazılır. Kod, derleyici tarafından mikrodenetleyicinin anlayacağı makine diline çevrilir ve Flash belleğe yüklenir; setup() bir kez, loop() sürekli çalışır.

Günlük hayatta
Yazılımlar bugün ulaşımdan sağlığa kadar birçok alanda kararları etkiler ve hatalı bir kod gerçek dünyada sorun çıkarabilir. Bu yüzden kod test edilir, hataları ayıklanır.

Döngü (loop)

Teknik
Döngü, aynı adımları tekrar tekrar yapmaktır. Arduino'da loop bölümü durmadan tekrar eder.

Günlük hayatta
Her sabah aynı sırayla yaptığımız işler ve gece ile gündüzün birbirini izlemesi de birer döngüdür.

Teknik
Döngü, bir grup komutun tekrar tekrar çalışmasıdır; Arduino'nun loop bölümü bittiğinde en başa döner.

Günlük hayatta
Trafik ışıklarının sırası, saat ibresinin dönüşü ve okul zili programı tekrar eden döngülere örnektir.

Teknik
Döngü, belli komutları tekrar eden bir programlama yapısıdır. loop() bir sonsuz döngüdür: kart çalıştığı sürece içindeki komutlar sırayla ve yeniden çalışır.

Günlük hayatta
Fabrikalardaki üretim bantları, aynı işlemi her ürün için tekrar ederek çalışır.

Teknik
Döngüler, bir koşul sağlanana kadar ya da sonsuza kadar tekrar eden yapılardır (for, while, loop()). Gömülü sistemlerde ana döngü; girişleri okuma, karar verme ve çıkışları güncelleme adımlarını sürekli tekrarlar.

Günlük hayatta
Doğadaki su döngüsü ile programlardaki döngüler aynı fikre dayanır: belli adımlar sırayla tekrar eder. Bir döngünün ne zaman duracağını doğru tasarlamak, bitmeyen hataları önler.

Değişken

Teknik
Değişken, programda bir bilgiyi saklayan, adı olan bir kutudur.

Günlük hayatta
Bir oyundaki puan ya da kalan can sayısı değişkenlerde saklanır.

Teknik
Değişken, bir değeri adıyla saklayan program parçasıdır. const ile tanımlanırsa değeri değişmez; buna sabit denir.

Günlük hayatta
Termometrenin gösterdiği sıcaklık zamanla değişir; programlar bu tür değerleri değişkenlerde tutar.

Teknik
Değişken, bellekte bir değer için ayrılmış, adı olan bir yerdir. const int led = 13; satırı, değeri 13 olan ve değişmeyen led adlı bir tam sayı tanımlar.

Günlük hayatta
Fen deneylerindeki bağımlı ve bağımsız değişkenler gibi, programlardaki değişkenler de değişebilen bir bilgiyi temsil eder; hangisinden söz edildiğini bağlamdan anlarız.

Teknik
Değişkenin bir türü (int: tam sayı), bir adı ve bir değeri vardır. const değeri sabitler; pin numaralarına ad vermek kodu okunur kılar ve bir pini değiştirmek gerektiğinde tek satırı düzeltmek yeter.

Günlük hayatta
Bilimsel deneylerde değişkenleri kontrol etmek ne kadar önemliyse, programlarda da değişkenlere anlamlı adlar vermek ve değerlerini kontrol etmek hataları önler.

Koşul (if ve else)

Teknik
Koşul, bir karar vermektir: eğer butona basılıysa LED'i yak, değilse söndür.

Günlük hayatta
Otomatik kapı da karar verir: biri yaklaşırsa açıl, yoksa kapalı kal.

Teknik
Koşul yapısı, bir durumun doğru ya da yanlış olmasına göre farklı komutları çalıştırır; Arduino'da if (eğer) ve else (değilse) kullanılır.

Günlük hayatta
Akıllı bir sokak lambası hava kararınca yanar, aydınlanınca söner; bu, bir koşula göre karar vermektir.

Teknik
if bloğu, parantez içindeki koşul doğruysa çalışır; yanlışsa else bloğu çalışır. Her turda bu iki bloktan yalnız biri çalışır.

Günlük hayatta
Günlük kararlarımız da koşulludur: yağmur yağıyorsa şemsiye al, yağmıyorsa alma. Programlar bu düşünme biçimini adım adım yazar.

Teknik
Koşul, doğru ya da yanlış sonuç veren bir ifadedir (ör. digitalRead(buton) == HIGH). Karşılaştırmada ==, atamada = kullanılır; mantıksal işleçlerle (ve, veya) birden çok koşul birleştirilebilir.

Günlük hayatta
Bir sistemin hangi koşulda ne yapacağını önceden açıkça yazmak güvenli tasarımın temelidir; örneğin bir asansör, kapısı açıkken hareket etmemelidir.

Devre (açık ve kapalı)

Teknik
Devre, elektriğin dolaştığı yoldur. Yol tamamsa kapalı devredir ve ışık yanar; bir yerden kopuksa açık devredir ve ışık yanmaz.

Günlük hayatta
Odanın ışığını açtığımızda anahtar devreyi kapatır ve lamba yanar. Işığı kapattığımızda anahtar devreyi açar.

Teknik
Elektrik devresi; güç kaynağı, kablolar ve devre elemanlarından oluşan bir yoldur. Yol kesintisizse kapalı devre, bir yerinden kesikse açık devredir.

Günlük hayatta
Evlerdeki sigortalar, tehlikeli bir durumda devreyi açarak elektriği keser ve yangın riskini azaltır.

Teknik
Kapalı devrede akım kaynaktan çıkar, devre elemanlarından geçer ve GND'ye döner. Yolun herhangi bir yerinde kopukluk varsa devre açıktır ve akım oluşmaz.

Günlük hayatta
Trafik ışıkları, asansörler ve ev aletleri, devreleri doğru anda açıp kapatarak çalışır; birçoğunda bunu bir program yönetir.

Teknik
Devre, akımın kaynaktan çıkıp yüklerden geçerek GND'ye döndüğü kapalı yoldur. Tek yollu bağlamaya seri, birden çok kola ayrılan bağlamaya paralel bağlama denir; açık devrede akım sıfırdır.

Günlük hayatta
Evlerdeki lambalar ve prizler genellikle paralel bağlanır; böylece biri arızalansa da diğerleri çalışmaya devam eder.

Kaynaklar

Kaçıncı sınıfla çalışıyoruz?

Anlatımlar, tanımlar ve mini sınav seçtiğiniz sınıfa göre hazırlanır. Ders sırasında üst çubuktan değiştirebilirsiniz.