Kızılötesi Algılama ve Arduino
Anlayabileceğiniz gibi, bir IR sisteminin temel gereksinimleri, bir sinyali iletmek ve sinyali almak için verici ve alıcı modüllerdir. Gördüğümüz IR sensörleri genellikle EM spektrumunun (nanometre, nm cinsinden verilir) aynı bant genişliğinde çalışan (gönderen ve alan) bir çift olarak gelir. Bunları ardışık olarak satmak harikadır, ancak parçaları kesip değiştiriyorsanız, bant genişliği iki bileşene uyması için kullanılan özelliktir.
Kızılötesini nasıl kullanacağız ?
Bu tür bir teknolojinin bariz kullanımı uzaktan kumandadır, ancak kızılötesi bir ton harika uygulamanın bir parçasıdır. Engellerden kaçınmak ve bir duvara yakın olduğunda bilmek için robotunuza 'gözler' vermek mi istiyorsunuz? Kızılötesi, uygun bir seçenektir. Hareket algılandığında bir eylemi tetikleyebilecek bir hareket sensörü oluşturmak istiyorsanız, kesinlikle IR'yi kullanabilirsiniz. Gece görüş kameraları ve termal görüntüleme bile kızılötesi teknolojiyi kullanır. Kızılötesi teknolojisi için çok sayıda uygulama vardır ve onu kullanan üretici dostu ürünler de yaygın ve iyi belgelenmiştir!
Basit bir kırılma ışını devresi yapacağız. Adafruit'teki arkadaşlarımız , bu kullanım için yapılmış harika bir modül çifti yaptılar. Aksiyon filmlerindeki hırsızlık sahnelerini düşünün, kahraman yeşil lazer alarmları labirentinde dikkatlice hareket ediyor. Yeşil lazer kısmı olmadan bunlardan birini yapacağız. Bir dakika bekle; sen bir yapıcısın! Birine çok meraklıysanız, eklemekten çekinmeyin!
Bugün bizimle birlikte takip etmek için şunlara ihtiyacınız olacak:
- Arduino Uno
- Piezo Hoparlör
- Bağlantı telleri
- Adafruit 3mm IR Break Beam modülü
Donanım Kesintileri ve Pullup Dirençleri
Devremizin taslağını yazarken bakacağımız birkaç ekstra şey var. Programımızın ışın frenlemesine tepki vermesi ve bu olduğunda bir ses çalması gerekecek.
Bu olayı kontrol etmek için donanım kesintilerini kullanacağız. Donanım kesintileri için mükemmel bir uygulama olmayabilir, ancak konsepti tanıtmak için harika bir yer! Kesintileri kullanırken veya hatta sadece donanım kullanırken, kontrol pimini bilinen bir duruma getirmek iyi bir uygulamadır. Bu şekilde, onunla arayüz oluşturduğumuzda nasıl tepki vereceğini doğru bir şekilde tahmin edebiliriz.
Pim bilinen bir durumda değilse, ona kayan diyoruz. Kayma, esas olarak, pimin mantığının açık veya kapalı olmadığı ve muhtemelen iki değer arasında salınım yaptığı anlamına gelir. Bu nedenle, pimi bilinen bir duruma getirmek için, pimi yüksek mantığa bağlamak için bir çekme direnci kullanabiliriz. ATMega328 için dahili olarak çekme dirençleri mevcuttur; biz de Uno'yu kullanıyoruz ve bunlara işlev kullanılarak erişilebilir
pinMode ([PinNumber], INPUT_PULLUP);
Kesinti pimleri yaptıkları işte harikadır. Sadece boşta durmak, bir pin mantığının yüksekten alçağa veya tam tersi şekilde gitmesini beklemek için yapılmıştır. Bu olduğunda, o olaya hizmet etmek için kodunuza rutinler / işlevler girebilirler.
İyi çalışıyor, devrenin arkasındaki koda bakalım.
Kod
# tanım PIEZOPIN 3 # tanım BEAMPIN 2Uçucu int sensorState = 0 , lastState = 0 ; // Değişkenler uçucu olmalıdır veya bunlarıvoid kurulumu () {pinMode ( PIEZOPIN , ÇIKIŞ ); Çıkış için // initialism Piezo pinMode ([ BEAMPIN ] INPUT_PULLUP );attachInterrupt ( digitalPinToInterrupt ( 2 ), buzz_ISR , ALÇALMA ); Seri . başlangıç ( 9600 ); }geçersiz döngü () {sensorState = digitalRead ( BEAMPIN ); // ışının mevcut durumunu oku if ( sensorState == HIGH ) { // Işın kırık değilse bana her şeyin yolunda olduğunu söyle.analogWrite ( PIEZOPIN , 0 ); Seri . println ( "Herşey Tamam" ); } else { Serial . println ( "Her Şey Tamam Değil" );} }void buzz_ISR () {analogWrite ( PIEZOPIN , 20 ); // Buzzer'ı Tetikle! }
Pekala, devrenizi ve taslağınızı bir araya getirin ve çalıştırın. Siz ışınlarını kırana kadar sisteminiz kesinlikle hiçbir şey yapmamalıdır; bunu yaptığınızda piezonun tetiklendiğini duymalı ve bir uğultu sesi çıkarmalısınız!
Bahadır ÖZGEN
Electronic Robotic Coding Research and Development 1975 - ∞
Learn Forever
If you want, let's learn together...
https://roboticcode2020.blogspot.com/
bahadirozgen1975@gmail.com
facebook robotic.code
instagram @roboticcode
Sayfalarımı ziyaret ettiğiniz için teşekkür ederim.Bu sitede mevcut olan içerikler kendi oluşturduğum projeler yazı,resim ve videolardan oluşmaktadır.İçerik oluşturmak çok uzun sürdüğü için bazı projelerde yurtdışı kaynaklardan faydalandım.Buradaki amacım ticari değildir.Kaynağı belli olan ve bizim kaynağına ulaşabildiğimiz materyal (yazı, fotoğraf, resim, video v.b.) için ilgili konularda fotoğraflarda logo varsa v.b. not olarak gösterilecektir.Sitemizde yayınlanan tüm içerik, bizim tarafımızdan ve internet üzerinden youtube, facebook ve blog gibi paylaşıma sunulmuş kaynak sitelerden alındığı için, sitemiz yasal yükümlülüğe tabi tutulamaz. Sitemizde telif haklarının size ait olduğu bir içerik varsa ve bunu kaldırmamızı isterseniz, iletişim sayfamızdan bizimle iletişime geçtiğiniz takdirde içerik yayından kaldırılacaktır.Bu konu ve modüller ile uğraşarak, ileride çok güzel makine ve elektronik aletler yapabilirsiniz.