Konu Anlatımı
Dijital ve Analog Giriş/Çıkış
Dijital ve Analog Giriş/Çıkış, Robotik ve Kodlama dersi kapsamındaki Mikrodenetleyici Programlama ünitesinin temel konularından biridir. Bu konu alanın gerektirdiği bilgi ve becerilerin kazandırılmasına temel oluşturur.
Temel Bilgiler
- pinMode() pin yönünü belirler, digitalWrite() lojik seviye yazar.
- analogRead() 0-1023, analogWrite() 0-255 aralığındadır.
- Seri haberleşme ile bilgisayara veri aktarılır.
Uygulama ve Dikkat Edilmesi Gerekenler
Bu konunun uygulamasında iş güvenliği kurallarına uyulmalı, kullanılan araç ve malzemeler amacına uygun seçilmeli ve yapılan işlemler standartlara göre kontrol edilmelidir. Öğrenilen bilgiler atölye ve iş yeri uygulamalarıyla pekiştirildiğinde kalıcılık artar.
Dijital Giriş ve Çıkışın Mantığı
Dijital pin iki seviye taşır: HIGH ve LOW. Çıkış kipinde digitalWrite ile seviye üretilir, giriş kipinde digitalRead ile seviye okunur. Girişte açıkta kalan kablo ortam gürültüsünü toplar ve okumalar rastgele değişir; bunun önüne iç pull-up direnciyle geçilir: pinMode(pin, INPUT_PULLUP) ayarında pin, beslemeye bir dirençle bağlanır ve butona basıldığında pin yere bağlanarak LOW okunur. Yani bu kipte basılı hâl LOW, boşta hâl HIGH'tır; tersini düşünmek devrenin ters çalışmasına yol açar.
Analog Giriş ve Dönüştürme
Analog pin, gerilimi sayısala çeviren analog-dijital dönüştürücüye bağlıdır. 10 bitlik bir dönüştürücü besleme aralığını 1024 adıma böler; 5 V beslemede 0 V karşılığı 0, 5 V karşılığı 1023 okunur. Okunan değerin gerilime çevrilmesi için gerilim = okunan değer × besleme / 1023 yaklaşımı kullanılır. Tek ölçüm gürültüden etkilendiği için hassas işlerde art arda birkaç okuma alınır ve ortalaması kullanılır. Ölçüm kablosu uzadıkça gürültü artar; bu yüzden analog hatlar kısa ve motor kablolarından uzak çekilir.
Adım Adım Güvenli Giriş Okuma
- Pini pinMode ile doğru kipe alın (INPUT, INPUT_PULLUP veya OUTPUT).
- Dijital okuma için digitalRead, analog okuma için analogRead çağrılır.
- Mekanik butonda 10-20 milisaniyelik bekleme ile sıçrama (debounce) giderilir.
- Gelen değer aralık kontrolünden geçirilir, geçersizse yeniden okunur.
- Sonuç karar veren koda, gerekirse seri porttan gözleme gönderilir.
Örnek Uygulama: Sayıcı Butonu
Bir üretim hattında her basışta sayacı artıran buton, INPUT_PULLUP kipinde okunuyor. Butona basıldığında pin LOW olur; program, LOW'u yalnızca bir kez saymak için durum değişimini (HIGH'tan LOW'a geçişi) bekler ve 20 milisaniyelik debounce ile kontak sıçramasını yok sayar. Aksi hâlde tek basışta birkaç artış sayılır. Bu yöntem, hem dijital buton hem de endüstriyel sınır anahtarı için geçerlidir.
Sınav ve Atölye Odaklı Notlar
Sınavda INPUT_PULLUP ile normal INPUT farkı, analog okumanın değer aralığı ve gerilim çevrimi sorulur. Atölyede okumalar sürekli değişiyorsa ilk akla gelen neden açıkta kalan giriş ucudur; pin ya pull-up kipinde okunmalı ya da harici bir dirençle sabitlenmelidir.
Ne Öğreneceğiz
Robotik ve Kodlama dersi kapsamında Dijital ve Analog Giriş/Çıkış konusu. Bu konuda ögrenme çıktıları:
- Dijital ve Analog Giriş/Çıkış ile ilgili temel kavramları açıklar.
- Dijital ve Analog Giriş/Çıkış konusunun Robotik ve Kodlama dersi içindeki yerini ve önemini belirtir.
- Konuyla ilgili araç, gereç ve malzemeleri amacına uygun seçer.
- İş sağlığı ve güvenliği kurallarına uygun çalışır.
- Öğrendiği bilgi ve becerileri atölye/iş yeri uygulamalarında kullanır.
Ön Bilgi
Bu konuya başlamadan önce temel kavram ve ön koşulları kavramanız yardımcı olacaktır. Konunun çerçevesinde şu kavramlar dikkat ister:
- pinMode() pin yönünü belirler, digitalWrite() lojik seviye yazar.
- analogRead() 0-1023, analogWrite() 0-255 aralığındadır.
- Seri haberleşme ile bilgisayara veri aktarılır.
- Açıkta bırakılan giriş ucu gürültüden rastgele değer okur; pull-up direnci okumayı sabitler.
- Mekanik butonlarda kontak sıçraması vardır; debounce yapılmazsa tek basış birden çok sayılır.
Basit Örnek ve Günlük Yaşam
Günlük yaşamda ve mesleki bağlamda bir uygulama:
Soru: pinMode() pin yönünü belirler, digitalWrite() lojik seviye yazar.
- Konuyu tanımla ve ilgili kavramları belirle.
- Doğru yöntem veya hesaplamayı uygula.
- Sonucu standartlara göre kontrol et.
Sonuç/cevap: Doğru uygulama sonucunda konuyla ilgili kazanım elde edilir.
İleri Örnek
Daha ileri bir uygulama:
Soru: Bir sayıcı butonu, kontak sıçraması nedeniyle tek basışta üç kez artıyor. 20 milisaniyelik debounce uygulanırsa 500 milisaniye süren bir basışta sayım kaç olur?
- Adım 1: Kontak sıçraması basışın ilk milisaniyelerinde oluşur.
- Adım 2: 20 ms bekleme ile geçici değişimler yok sayılır ve durum bir kez kaydedilir.
- Adım 3: Basış 500 ms sürse de yalnızca ilk geçerli değişim sayılır.
Sonuç/cevap: Cevap: Sayım 1 olur; debounce tekrar saymayı engeller.
Karşılaştırma Tablosu
| Kavram | Açıklama |
|---|
| pinMode() pin yönünü belirler, digitalWr | pinMode() pin yönünü belirler, digitalWrite() lojik seviye yazar. |
| analogRead() 0-1023, analogWrite() 0-255 | analogRead() 0-1023, analogWrite() 0-255 aralığındadır. |
| Seri haberleşme ile bilgisayara veri akt | Seri haberleşme ile bilgisayara veri aktarılır. |
| Açıkta bırakılan giriş ucu gürültüden ra | Açıkta bırakılan giriş ucu gürültüden rastgele değer okur; pull-up direnci okumayı sabitler. |
| Mekanik butonlarda kontak sıçraması vard | Mekanik butonlarda kontak sıçraması vardır; debounce yapılmazsa tek basış birden çok sayılır. |
Sık Yapılan Hatalar
Dijital ve Analog Giriş/Çıkış ile ilgili kavramları birbirine karıştırmak: Temel kavramları tablo veya zihin haritasıyla ayırt et.
Uygulamada standartlara ve iş güvenliği kurallarına uymamak: Her adımda güvenlik ve kalite kurallarını uygula.
Kullanılan araç-gereci amacına uygun seçmemek ve bakımını ihmal etmek: Doğru ekipmanı seç, kullanım öncesi ve sonrası kontrol et.
Pini giriş kipine almadan okumak: pinMode ile INPUT tanımlanmadan yapılan digitalRead çağrıları güvenilmez sonuç verir; önce kip ayarlanmalıdır.
Özet
Dijital ve Analog Giriş/Çıkış, Robotik ve Kodlama dersi kapsamında ele alınan temel konulardan biridir. pinMode() pin yönünü belirler, digitalWrite() lojik seviye yazar. analogRead() 0-1023, analogWrite() 0-255 aralığındadır. Seri haberleşme ile bilgisayara veri aktarılır. Bu bilgiler uygulama ve iş güvenliği kurallarıyla birlikte pekiştirilmelidir.
Kendini Dene
Soru: 5 V beslemeli 10 bitlik bir kartta okunan değerler 512 ve 768 için ölçülen gerilimleri adım adım hesapla, birim dönüşümlerini göster ve dönüştürücünün neden sürekli değil adımlı değer ürettiğini açıkla.
Örnek cevap: Puanlama anahtarı: 512 için 2,50 V ve 768 için 3,75 V sonuçları doğru bulunur (6 puan); Her hesapta okunan değer × besleme / 1024 bağıntısı ve volt birimi yazılır (4 puan); Adım geriliminin 5 / 1024 ≈ 4,88 mV olduğu belirtilir (3 puan); 10 bitlik dönüştürücünün aralığı 1024 ayrı adıma böldüğü için değerlerin sürekli olmadığı açıklanır (2 puan).