Raspberry Pi Pico Ultrasonik Mesafe Sensörü Kullanımı

Raspberry Pi Pico Ultrasonik Mesafe Sensörü Kullanımı Raspberry Pi Pico Ultrasonik Mesafe,Raspberry Pi Pico Ultrasonik Mesafe Sensörü Kullanımı,pico ultrasonik,pico mesafe sensörü

Bu içeriğimizde, Raspberry Pi Pico Ultrasonik Mesafe sensörü kullanımını anlatıyoruz.

Nesnelerin mesafesini temassız bir şekilde ölçmek; robotik projelerinden akıllı engelden kaçan araçlara, sıvı seviye kontrol sistemlerinden endüstriyel konumlandırma ünitelerine kadar gömülü sistemlerin en temel işlevlerinden biridir. Bu rehberimizde, **MicroPython** programlama dilini kullanarak bir Raspberry Pi Pico geliştirme kartı ile popüler **HC-SR04 ultrasonik mesafe sensörünü** nasıl bağlayacağımızı, okunan verileri hassas matematiksel formüllerle santimetreye nasıl dönüştüreceğimizi ve bu değerleri **SSD1306 I2C OLED ekran** üzerinde anlık olarak nasıl göstereceğimizi inceleyeceğiz.

Temel OLED ekran kütüphanelerinin kurulumunu öğrenmek için Raspberry Pi Pico I2C OLED Ekran Kullanımı yazımıza göz atabilirsiniz.

Gerekli Malzemeler

  • **1kΩ ve 2kΩ Dirençler** (Kritik lojik seviye dönüştürme için)

HC-SR04 Ultrasonik Sensör Çalışma Fiziği

HC-SR04 ultrasonik mesafe sensörü, yarasaların yön bulma (ekolokasyon) yöntemine benzer bir fiziksel prensiple çalışır. Sensörün ön yüzeyinde iki adet silindirik transdüser bulunur: biri yüksek frekanslı ses dalgası yayan **verici (transmitter)**, diğeri ise engelden yansıyan ses dalgalarını yakalayan **alıcıdır (receiver)**.

HC-SR04 Ultrasonik Mesafe Sensörü Ön ve Arka Görünüm
Ultrasonik verici (T) ve alıcı (R) transdüserlerinin yerleşimi

Sensörü çalıştırmak için 4 adet fiziksel pin kullanılır: **VCC (5\text{V})**, **GND**, **Trigger (Tetikleme)** ve **Echo (Yankı)**.

Raspberry Pi Pico Ultrasonik Mesafe Sensörü Kullanımı
Raspberry Pi Pico Ultrasonik Mesafe Sensörü Kullanımı

Sensörün çalışmasını anlamak için aşağıdaki zamanlama diyagramını (timing diagram) inceleyelim. İlk olarak, Pico’nun bağlı olduğu **Trigger** pinine en az **10\mu\text{s} (mikrosaniye)** süresince lojik yüksek (5\text{V}) darbesi gönderilir. Bu tetikleme sinyalini alan sensör, havaya insan kulağının duyamayacağı **40 kHz frekansında 8 periyotluk bir ultrasonik ses patlaması** yayar ve hemen ardından alıcı transdüseri aktif hale getirir.

Ses dalgaları bir engele çarpıp geri yansıdığında, alıcı bu yankıyı algılar ve **Echo** pinini anında lojik yüksek (5\text{V}) seviyesine çeker. Dalganın yayılması ile geri dönmesi arasında geçen süreyle orantılı olarak Echo pini yüksek seviyede kalır. Bizim yazılımsal olarak yapmamız gereken tek şey, Echo pininin **lojik yüksek kaldığı süreyi (\Delta t) mikrosaniye cinsinden ölçmektir**.

Sesin havadaki yayılma hızı yaklaşık **340\text{ m/s}** (0.0343\text{ cm/\mu s}) olarak kabul edilir. Dalga engele gidip geri döndüğü için toplam yol iki katına çıkar. Bu nedenle mesafeyi santimetre cinsinden hesaplamak için şu fiziksel formülü kullanırız:

Mesafe (cm) = (Ölçülen Süre (\mu s) * 0.0343) / 2
HC-SR04 Zamanlama Diyagramı
Trigger tetikleme darbesi ve Echo yankı süresi ilişkisi

⚡ Donanım Koruma Uyarısı: Kritik Lojik Seviye Uyumsuzluğu

⚠️ DİKKAT: PİCO PİNLERİNİ YAKMAYIN!
HC-SR04 sensörü kararlı ölçüm yapabilmek için **5\text{V} besleme voltajına** ihtiyaç duyar. Bu nedenle sensörün VCC pinini Pico’nun 5\text{V} doğrudan USB çıkışı olan **VBUS** pinine bağlarız. Ancak sensör 5\text{V} ile çalıştığından, mesafe ölçüm anında ürettiği **Echo sinyali çıkışı da lojik yüksek olarak tam 5\text{V} seviyesindedir!**

Raspberry Pi Pico’nun (RP2040) GPIO giriş pinleri ise **kesinlikle 5\text{V} uyumlu değildir** ve maksimum 3.3\text{V} seviyesinde sinyal kabul eder. Eğer 5\text{V} seviyesindeki Echo pinini doğrudan Pico’nun GPIO2 giriş pinine bağlarsanız, yüksek voltaj pinden içeri sızarak ilgili GPIO donanım kapısını kalıcı olarak yakacak veya zamanla mikrodenetleyicinin tamamen bozulmasına sebep olacaktır.

Bu tehlikeyi engellemek amacıyla, Echo pini ile Pico GPIO2 pini arasına basit bir **Voltaj Bölücü (Voltage Divider)** direnç ağı kurmalıyız. Echo pininden gelen sinyali **1\text{k}\Omega** direnç üzerinden geçirin, Pico giriş pinine bağlayın ve o noktadan GND hattına bir **2\text{k}\Omega** direnç yerleştirin. Bu sayede 5\text{V} sinyal Pico için güvenli olan 3.33\text{V} seviyesine indirgenir:
V_out = 5V * (2kΩ / (1kΩ + 2kΩ)) = 3.33V

Donanım Bağlantı Tablosu

HC-SR04 SensörRaspberry Pi PicoSSD1306 OLED EkranAçıklama / Önlem
VCCVBUS (Pin 40)5V Doğrudan USB Beslemesi
EchoGPIO2 (Pin 4)**Voltaj Bölücü Üzerinden Bağlanmalıdır!**
TriggerGPIO3 (Pin 5)Doğrudan Bağlanabilir (Pico 3.3V Çıkış tetikler)
GNDGND (Pin 38)GNDSistem şaseleri ortaklanmalıdır
3.3V (Pin 36)VCCOLED 3.3V Besleme pini
GPIO16 (Pin 21)SDAI2C Data Hattı
GPIO17 (Pin 22)SCLI2C Clock Hattı
Raspberry Pi Pico Donanım Bağlantı Şeması
Voltaj bölücü direnç bağlantısı ile Pico koruma mimarisi

MicroPython ile Gelişmiş Bloke Etmeyen Yazılım

Projeye ait orijinal kod dosyalarına ve arşiv kütüphanelerine Circuit Digest Mesafe Sensörü Kod Deposu üzerinden ulaşabilirsiniz. OLED ekranı kontrol eden `ssd1306.py` dosyasını Pico’nun içine kaydettiğinizden emin olun.

Orijinal koddaki en büyük yazılımsal zayıflık, Echo pininin durumunu bekleyen bloke edici `while` döngüleridir. Eğer sensör bozulursa, kablosu çıkarsa veya ultrasonik yankı geri dönmezse, Pico bu sonsuz döngülerde asılı kalır ve tüm sistem donar. Bunu engellemek amacıyla, kodumuzda **30ms’lik bir güvenlik zaman aşımı (Timeout)** ekleyerek sistemin kilitlenmesini engelleyeceğiz (30ms süre, ses dalgalarının sensörün maksimum ölçüm limiti olan 5 metreye ulaşıp dönmesi için fazlasıyla yeterlidir):

Thonny IDE üzerinde yazdığınız bu kodu **`main.py`** adıyla “Raspberry Pi Pico” içerisine kaydettiğinizde, bilgisayardan bağımsız olarak güç verildiği anda sistem çalışmaya başlayacaktır.

Raspberry Pi Pico Ultrasonik Mesafe Sensörü Kullanımı Raspberry Pi Pico Ultrasonik Mesafe,Raspberry Pi Pico Ultrasonik Mesafe Sensörü Kullanımı,pico ultrasonik,pico mesafe sensörü

Gelişmiş radar haritalama uygulamaları, engelden kaçan robot algoritmaları ve diğer gömülü sistem kütüphaneleri hakkında detaylı bilgi edinmek için hazırladığımız diğer içeriklere Raspberry Pi Pico Kılavuzlarımız üzerinden erişerek kendi IoT projelerinizi geliştirebilirsiniz.

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.