İçindekiler:

Arduino İle Kızılötesi Sensör Kullanımı: 8 Adım (Resimli)
Arduino İle Kızılötesi Sensör Kullanımı: 8 Adım (Resimli)

Video: Arduino İle Kızılötesi Sensör Kullanımı: 8 Adım (Resimli)

Video: Arduino İle Kızılötesi Sensör Kullanımı: 8 Adım (Resimli)
Video: DIY Radar With Ultrasonic Sensor And Chat-GPT Generated Arduino Code | Coders Cafe 2024, Kasım
Anonim
Arduino ile Kızılötesi Sensör Kullanımı
Arduino ile Kızılötesi Sensör Kullanımı

Kızılötesi (diğer adıyla IR) sensör nedir?

Bir IR sensörü, standartlar tarafından tanımlanan belirli frekans aralıklarında IR sinyallerini tarayan ve bunları çıkış pininde (tipik olarak sinyal pini olarak adlandırılır) elektrik sinyallerine dönüştüren elektronik bir araçtır. IR sinyalleri temel olarak, TV uzaktan kumandalarında veya diğer benzer elektronik cihazlarda daha önce çalışmış olduğunuz gibi kısa mesafelerde (genellikle birkaç metre) hava üzerinden komutları iletmek için kullanılır.

IR iletişim protokolü

Her sinyal belirli bir kodu temsil eder. Elektrik sinyalleri, göndericinin gönderdiği gerçek veriye/koda geri dönüştürülebilir. TV uzaktan kumandanızdaki bir düğmeye bastığınızda, düğme koduna (örn. Açma/Kapama, Sesi Açma vb.) karşılık gelen bir sinyal üretir ve bunu bir alıcıya (bu durumda TV'niz) gönderir. Hem gönderici hem de alıcı bir dizi kod üzerinde anlaştılar, böylece alıcı her bir koda göre ne yapacağını bilir. Bir kodun sinyal olarak modüle edilme (modellenme) şekli farklı standartlarda tanımlanır ve her sensör üreticisi normalde farklı cihazlarda kullanılabilecek şekilde kendileriyle uyumlu bir ürün üretmeye çalışır. En bilinen standart protokollerden biri NEC'dendir. IR protokollerinin kısa bir geçmişini Wikipedia'da Tüketici IR başlığı altında bulabilirsiniz.

Adım 1: Bir IR Sensörü Nasıl Görünür?

Bir IR Sensörü Nasıl Görünür?
Bir IR Sensörü Nasıl Görünür?
Bir IR Sensörü Nasıl Görünür?
Bir IR Sensörü Nasıl Görünür?
Bir IR Sensörü Nasıl Görünür?
Bir IR Sensörü Nasıl Görünür?

IR sensörleri farklı paketlerde mevcuttur. Burada bir IR alıcısı için bazı tipik ambalajları görebilirsiniz.

2. Adım: IR Sensörü Koparma Kartı/modülü

IR Sensörü Koparma Kartı/modülü
IR Sensörü Koparma Kartı/modülü
IR Sensörü Koparma Kartı/modülü
IR Sensörü Koparma Kartı/modülü
IR Sensörü Koparma Kartı/modülü
IR Sensörü Koparma Kartı/modülü
IR Sensörü Koparma Kartı/modülü
IR Sensörü Koparma Kartı/modülü

Bunları ayrıca eBay, Aliexpress veya Amazon'da bir IR modülü/breakout board olarak da satın alabilirsiniz. Bu tür modüller normalde yukarıda bahsedilen sensörlerden birini, sensör bir sinyal algıladığında yanıp sönen bir LED ile birlikte güzel bir devre tahtası dostu paket ile birleştirir. Bunu yaparak, herhangi bir verinin aktarılıp aktarılmadığını fark edeceksiniz. Bu modüllerden biriyle başlamanızı şiddetle tavsiye ederim.

Not: Ham bir IR sensörünüz varsa, kablolamayı doğru yaptığınızdan emin olmak için sensörün veri sayfasını kontrol etmeniz dışında hiçbir şey değişmez çünkü aksi halde bir süre sürecek güzel bir mavi dumana sahip olabilirsiniz. saat. Ne demek istediğimi biliyorsun;)

Adım 3: Gerekli Parçalar ve Bileşenler

Gerekli Parçalar ve Bileşenler
Gerekli Parçalar ve Bileşenler

Bu öğreticiyi tamamlamak için ihtiyaç duyacağınız bileşenlerin listesini burada bulabilirsiniz:

eBay bağlantıları:

  • 1 x Arduino Uno:
  • Uzaktan kumandalı 1 x IR sensör modülü:
  • 4 x 220 ohm direnç:
  • 4 x LED:
  • 8 x Dupont kablosu:
  • 1 x Lehimsiz devre tahtası:
  • 1 x Mini devre tahtası (isteğe bağlı):

Amazon.com bağlantıları:

  • 1 x Arduino Uno:
  • Uzaktan kumandalı 1 x IR sensör modülü:
  • 1 x Lehimsiz devre tahtası:
  • 4 x 220 ohm direnç:
  • 4 x LED:
  • 8 x Dupont kablosu:
  • 1 x Mini devre tahtası (isteğe bağlı):

Adım 4: IR Sensörünü Arduino'ya Bağlama

IR Sensörünü Arduino'ya Bağlama
IR Sensörünü Arduino'ya Bağlama
IR Sensörünü Arduino'ya Bağlama
IR Sensörünü Arduino'ya Bağlama
IR Sensörünü Arduino'ya Bağlama
IR Sensörünü Arduino'ya Bağlama

Arduino'ya IR sensör bağlantısı kurmak çok basittir. Sensör, VCC ve GND pininin yanında Arduino'nun dijital pinlerinden birine bağlanması gereken tek bir çıkış pinine sahiptir. Bu durumda pin 13'e bağlanır.

Hem IR sensör modülünü hem de ham IR sensör kurulumunu göstermeye çalıştım. Resimlerde görüldüğü gibi sensör modülü üzerindeki VCC ve GND pinlerinin konumu ham sensörün tam tersidir. Ancak sensörünüz için durum böyle olmayabilir, önceki adımda belirtildiği gibi, ham sensör kullanılması durumunda önce veri sayfasını kontrol edin.

Adım 5: Uzaktan Kumandadaki Her Tuşa Karşılık Gelen Kodu Bulun

Uzaktan Kumandadaki Her Tuşa Karşılık Gelen Kodu Bulun
Uzaktan Kumandadaki Her Tuşa Karşılık Gelen Kodu Bulun
Uzaktan Kumandadaki Her Tuşa Karşılık Gelen Kodu Bulun
Uzaktan Kumandadaki Her Tuşa Karşılık Gelen Kodu Bulun
Uzaktan Kumandadaki Her Tuşa Karşılık Gelen Kodu Bulun
Uzaktan Kumandadaki Her Tuşa Karşılık Gelen Kodu Bulun

Arduino'yu uzaktan kumandadaki bir tuşa bastığınızda bir şey yapacak şekilde programlamak için önce o tuşa karşılık gelen koda sahip olmanız gerekir. Anahtar kodu, normalde onaltılık olarak sunulan bir sayıdır. Her uzaktan kumandanın kendi anahtar kodu seti vardır, ancak iki kumandanın aynı kodu farklı amaçlarla paylaşması mümkündür. Farklı frekans aralıklarının kullanılmasının yanı sıra farklı anahtar kodlarına sahip olmak, farklı cihazların iki uzaktan kumandasının parazit olmamasını sağlar. Bu yüzden TV kanalınızı değiştirdiğinizde DVD oynatıcınız hiç tepki vermiyor.

IR uzaktan kumandanızın kodlarını algılamak için, önce bir tuşa bastığınızda sensörden kodu okumaya çalışan ve bunu seri bağlantı noktası üzerinden bilgisayarınıza, Seri İzleme araçlarını kullanarak erişebileceğiniz yere gönderen basit bir çizim çalıştırmanız gerekir. Arduino IDE'si. Bu bölüme ekli taslağın yaptığı şey budur. Kodu görmek için her tuşa basmanız ve ileride bu kodu tekrar çalıştırmanıza gerek kalmaması için kodların listesini bir yere yazmanız daha iyi olacaktır. Resimde tablo olarak gördüğünüz anahtar kodların listesi aslında ucuz IR uzaktan kumandamdaki düğmelere basarken aldığım kodlardır.

Arduino web düzenleyicimde paylaşılan asıl kaynak koduna ir-key-code-logger'dan da erişebilirsiniz.

Not: Arada bir yerde FFFFFF gibi bir kod görürseniz korkmayın. Bu, bir süre bir düğmeye basıp basılı tuttuğunuz anlamına gelir. Konuya daha sonra döneceğiz. Şimdilik onları görmezden gelin ve diğer kodlara odaklanın.

6. Adım: IR Uzaktan Kumandayı Kullanarak Bir LED Setini Kontrol Edin

IR Uzaktan Kumandayı Kullanarak Bir LED Setini Kontrol Edin
IR Uzaktan Kumandayı Kullanarak Bir LED Setini Kontrol Edin
IR Uzaktan Kumandayı Kullanarak Bir LED Setini Kontrol Edin
IR Uzaktan Kumandayı Kullanarak Bir LED Setini Kontrol Edin
IR Uzaktan Kumandayı Kullanarak Bir LED Setini Kontrol Edin
IR Uzaktan Kumandayı Kullanarak Bir LED Setini Kontrol Edin

Artık her düğme için bir kodumuz olduğuna göre, onları nasıl kullanabileceğimize odaklanmanın zamanı geldi. Normalde, bir lambayı açmak veya kapatmak, bir robotu belirli bir yönde hareket ettirmek, bir LCD/OLED ekranda bir şey görüntülemek, vb. gibi bir şey yapmak için Arduino'ya komutlar göndermek için IR uzaktan kumandayı kullanırsınız. Burada basit bir kullanarak işlemi göstermeye çalışıyoruz. farklı renklerde 4 ledden oluşan devre. Her birini IR uzaktan kumandanın özel bir düğmesiyle açıp kapatmak istiyoruz. Şematikte de göreceğiniz gibi Arduino'yu LED'lere ve sensöre şu şekilde bağlamanız gerekiyor:

Arduino GND -> IR sensörü GND.

Arduino VCC -> IR sensörü VCC.

Arduino 13 -> IR sensör sinyal çıkışı.

Arduino 2 -> Mavi LED'in anodu (mavi LED'in daha kısa pimi)

Arduino 3 -> Yeşil LED'in anodu (yeşil LED'in daha kısa pimi)

Arduino 4 -> Sarı LED'in anodu (sarı LED'in daha kısa pimi)

Arduino 5 -> Kırmızı LED'in anodu (kırmızı LED'in daha kısa pimi)

Arduino GND -> 220 ohm direnç üzerinden tüm LED'lerin katodu (LED'lerin daha uzun pimi)

Bu devreye karşılık gelen kodu ekteki dosyada veya ir-led-control'deki Arduino web editörümde bulabilirsiniz.

7. Adım: Sorun Giderme

Projenizi kurarken ve adımları takip ederken birçok garip durumla karşılaşabilirsiniz. Kızılötesi sensörle çalışırken alabileceğiniz bazı yaygın hataların listesi.

Bir tuşa basıldığında FFFFFF alınıyor

Bir düğmeye bastığınızda, çoğu zaman FFFFFF gibi bir kod bildirdiğini fark edebilirsiniz. Bu, bir düğmeye bastığınızda ve kısa bir süre için bile olsa bir süre basılı tuttuğunuzda olur. Senaryo, başlangıçta düğmeye bastığınızda, IR uzaktan kumandanın düğme kodunu göndermesi ve düğmeyi basılı tuttuğunuz sürece FFFFFF göndermeyi tekrarlaması, bu da kullanıcının son zamanlarda bildirilen düğmeye basmaya devam ettiği anlamına gelir. Bu iyi olurdu. Onları atlayabilirsiniz. Gerçek kod, Seri Monitörde FFFFFF'den hemen önce aldığınız koddur.

IR Sensör hiç tepki vermiyor ve ısınıyor gibi görünüyor

Gücü kesin!!! Anahtar kod kaydedici taslağının doğru olduğundan eminseniz, sorun kablolarınızın yanlış kurulumundan kaynaklanıyor olabilir. Başıma gelen senaryo, IR modülüm için (karta bağlı olan) VCC ve GND'yi ters şekilde bağlamış olmamdı (bağlantı kablolarım için uygun bir renk kullanmadığım için). Bunu yaparak sensör bileşeni yandı ve hoş bir mavi duman yükseldi. Bir paket ham IR sensörü aldım ve değiştirmeye çalıştım ve şimdi bir cazibe gibi çalışıyor:). Maalesef aynı hatayı ham IR sensörüyle test ederken yaptım ve bu sefer sensörün ısınması dışında hiçbir şey olmadı. Bu yüzden gücü açmadan önce daima devreyi kontrol edin!

Bazen sensör daha önce hiç görmediğim bir kod algılıyor

Bu en yaygın sorunlardan biridir. Büyük olasılıkla aşağıdaki nedenlerden biridir:

IR uzaktan kumandanızı doğrudan sensöre doğru tutmuyorsunuz

Bu, daha önce hiç almadığınız ve normalde zaten sahip olduğunuz kodların uzunluğuyla eşleşmeyen bazı yeni kodlara (çoğunlukla daha uzun kodlar) sahip olmanıza yol açacaktır. Bu nedenle, uzaktan kumandayı her zaman sensörünüze doğru tutmayı unutmayın.

Ucuz bir IR uzaktan kumanda kullanıyorsunuz (bu eğitimde kullandığım gibi)

Ucuz, öngörülemeyen uzaktan kumandalar kullanmak yerine, TV veya DVD Oynatıcınızın uzaktan kumandasını veya sahip olduğunuz herhangi bir cihazın IR uzaktan kumandasını kullanarak aynı senaryoyu deneyebilirsiniz. Normalde iyi bir sinyal/donanım kalitesine sahiptirler (ve elbette daha pahalıdırlar) ve deneyimlerime dayanarak, uzaktan kumandanızı doğrudan sensöre doğru tutmasanız bile normalde iyi çalışırlar.

Günlüğe kaydedilen bir kodun çöp olmadığını nasıl anlarım

Kodlar normalde onaltılık biçimde sunulur. Bunları karşılık gelen ikili değere dönüştürürseniz, son baytın ikili gösteriminin baytın olumsuzlamasının bundan önce geldiğini fark edeceksiniz. Bunu biliyorsanız, aldığınız kodun gerçekten geçerli olup olmadığından emin olmak için kodunuzda bu kontrolü yapabilirsiniz. Örnek olarak, FF7A85'e sahipseniz, ikili gösterimi aşağıdaki gibi olacaktır:

1111 1111 0111 1010 1000 0101

Soldan sağa, her 4 basamaklı grup, orijinal onaltılık sayıdaki bir karakterin temsilidir. Gördüğünüz gibi 7'ye tekabül eden parti 0111 ve 8'e karşılık gelen parti 1000'dir ki bu da bunun tam tersidir. Olumsuzlama ile, tüm 0'ların 1'ler olacağını ve tüm 1'lerin 0'larla değiştirileceğini kastediyorum. Aynısı A (1010) ve 5 (0101) olan bir sonraki için de geçerlidir.

Adım 8: Daha Sonra Ne Yapmalı?

Şimdi senin sıran. Elinizdeki bu küçük basit sensörle neler yapabileceğinizi görmek tamamen hayal gücünüze kalmış. İşte başlamak için bazı fikirler:

  • Evinizdeki cihazlardan birinin (TV, Stereo vb.) IR uzaktan kumandasını kullanın ve Arduino projenizde kullanmayı deneyin.
  • Bir tuşa basarak tüm LED'leri aynı anda açmayı ve ardından başka bir tuşla kapatmayı deneyin.
  • LED'leri hepsi açılıp kapanana kadar tek tek açmak/kapatmak için uzaktan kumandanın Yukarı/Aşağı düğmesini kullanın.
  • LED'leri kullanarak bir trafik ışığı oluşturun ve uzaktan kumandanızı kullanarak kontrol edin
  • Elinizde küçük bir DC motor varsa, IR uzaktan kumanda ile başlatmayı/durdurmayı veya dönüş yönünü değiştirmeyi deneyin.
  • Robotunuzu kontrol etmek veya robot üzerindeki bazı sensörleri/aktüatörleri etkinleştirmek/devre dışı bırakmak için TV uzaktan kumandanızı kullanabilirsiniz.

IR uzaktan kumandayı kullanarak ne yapardınız (veya zaten yaptınız) hakkında yorumlarda bana bildirin.

Önerilen: