Robotik Kodlama

Robotik Kodlama
Ana Sayfa

İLGİNİZİ ÇEKEBİLECEK LİNKLER :

sensör etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
sensör etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

28 Nisan 2021 Çarşamba

RCWL0516 Arduino ile Mikrodalga Mesafe Sensörü Modülü

 

RCWL0516 Arduino ile Mikrodalga Mesafe Sensörü Modülü


Mesafe sensörleri, yüksek frekanslar göndererek hedefin mesafesini ölçmek için kullanılır. Mikrodalgalar, iletişim amacıyla kullanılan VHF / UHF bantlarına sahip elektromanyetik dalgalardır. Kısa mikrodalgalar, özellikle radarlarda, alarm sistemlerinde ve insan vücudu algılamada algılama uygulamalarında kullanılır. RCWL0516, hareket eden bir kişi tarafından yayılan kızılötesi ışığı kullanan pasif kızılötesi hareket sensörlerinin yerini almak üzere oluşturulmuş bir mikrodalga mesafe sensörüdür. RCWL0516, hareketli nesneleri algılamak için bir doppler efekti tekniği kullanır.

Bu eğitim, bileşenlerini, bağlantılarını, konfigürasyonunu, özelliklerini, teknik özelliklerini, arayüzünü, 2D modelini ve uygulamalarını tartışacaktır.

RCWL0516 Bileşenleri

Aşağıdaki şekil bir RCWL0516 modülünün bileşenlerini göstermektedir:

RCWL0516 Mikrodalga Mesafe Sensörü Modülü bileşenleri

Modül, bir Giriş / Çıkış bloğu, bir RCWL0516 IC ve RF Anteni ve bazı isteğe bağlı bağlantılara sahip bir Amplifikatör bloğundan oluşur.

RCWL0516 Pin Çıkışı

RCWL0516 Mikrodalga Mesafe Sensörü Dedektör Modülünün pin çıkışı aşağıdadır:

RCWL0516 pin çıkışı diyagramı Mikrodalga Mesafe Sensörü Modülü

PIN konfigürasyonu

Tablodaki pim yapılandırma ayrıntısı aşağıda belirtilmiştir:

NumaraPin AdıFonksiyon
13V33.3V çıkış pini
2GNDZemin pimi
3DIŞARIAnalog sensör çıkış pini
4VINGüç Kaynağı pimi
5CDSSensör devre dışı bırakma pimi

Özellikler ve Spesifikasyonlar

  • Giriş Çalışma Voltajı: 4 - 28 Volt
  • Çalışma Frekansı: 3.2 GHz
  • Çalışma Akımı: 2.8 - 3.0 mAmper
  • Güç İletimi: 20 - 30 watt
  • Çıkış pimi Voltajı: 3,3 Volt
  • Çıkış pimi Akımı: 100 Amper
  • Çalışma Sıcaklığı: -200C - 800C
  • Aralık: 3 - 7 metre
  • Bazı ayrıntılı özellikleri şunlardır:
  • Çıkış pini, bir hareket algılandığında YÜKSEK (3,3V) olur.
  • 3.3V çıkış pini, 2-3 saniyelik sonlu bir YÜKSEK süreye sahiptir.
  • CdS (Fotodirenç) pini 0,7 Volt'tan az ise, çıkış pimi DÜŞÜK durumda kalır.
  • Geniş çalışma voltaj aralığı
  • Kör açı tespitinden yoksun

Giriş / Çıkış Bloğu: Bu blok, mikro denetleyicilere ve diğer elektronik bileşenlere güç kaynağı pinleri ve I / O pin bağlantıları içerir.

RCLW0516 IC: IC, doppler efekti tekniğinin uygulanmasından sorumlu bir sistemdir ve PIR'den daha az hataya eğilimlidir.

RF Amplifikatörü ve Anten: Modülün radyo dalgalarını güçlendirmek için bir amplifikatör ile gelen dalgaları yakalamak için dahili bir anten.

Kondansatörler ve NPN Transistör: Kondansatörlerin yanında bir NPN transistörü ve bir indüktör, belirli bir yüksek frekansta salınımlar üretir. Basit bir deyişle, bir Colpitts osilatörü olarak çalışır. Kondansatörler ayrıca sinyallerin ayrıştırılmasından ve filtrelenmesinden sorumludur.

CDS: Modülün yalnızca karanlıkta çalışmasını sağlamak için modüle bir ışık direnci eklemek için bir pim. Aynı zamanda bir etkinleştirme / devre dışı bırakma kontrolü olarak da işlev görür.

Modülü ihtiyaca göre değiştirmek için C-TM, R-CDS, R-GN kullanılır. C-TM, bir kondansatör ilavesiyle pinin tetikleme süresini uzatmak için kullanılır.

Foto direncin sınır değerini değiştirmek için, R-CDS uygun bir dirence bağlanmalıdır. Son olarak, R-GN, sensörün ölçüm mesafesini ayarlamamıza yardımcı olabilir. Bir dirence takmak, sensörün menzilini azaltabilir.

RCWL0516 nasıl çalışır?

Entegre anten, mikrodalga sinyallerini yakalar ve üretir. Anten yansıyan bir sinyal aldığında, bunu miksere / amplifikatöre gönderir. İletilen ve yansıtılan sinyali karıştırır ve aralarındaki fark daha sonra işlenmek üzere IC'ye iletilir. IC, gövde ile sensör arasındaki mesafeyi gösterecek bir çıkış voltaj sinyali gönderecektir.

Arduino ile kullanımı

Bu hareket algılama sensörü modülünü mikro denetleyicilerle arayüzlemek kolaydır. Gösteri amacıyla, bu eğitimde bir Arduino kullanacağız RCWL0516 ile Arduino'nun arayüzünü kurmak bağlantılar yapmaktır. Bağlantı şeması aşağıda gösterilmiştir:

Arduino ile arayüz oluşturan RCWL0516 mikrodalga sensörü

Pin konfigürasyonu aşağıdaki gibidir:

RCWL0516 ModülüArduino UNO
GNDGND
VIN5V
DIŞARID10

CDS pini, modüle bir foto direnç eklemek ve sensörün yalnızca karanlıkta çalışmasını sağlamak için bir seçenek sunar. Kablo bağlantılarını buna göre yapın. Bağlantıları yaptıktan sonra Arduino kodunu yükleyin. Sonuçları gözlemlemek için Seri Monitörü açın. Bir hareket algılanır algılanmaz, seri monitör bir mesaj gösterecektir.

Arduino Kodu

Bu hareket dedektör sensörü bir hareket algıladığında çıkış pinini 2-3 saniye aktif yüksek duruma tetikler ve ardından tekrar aktif düşük duruma geçer.

int detectPin = 10;
bool detect = false;
int led = 13;
void setup() {
 Serial.begin(115200);
 Serial.println("Starting...\n");
 pinMode (detectPin, INPUT);
 pinMode (led, OUTPUT);
}

void loop() {

 detect = digitalRead(detectPin);
 if(detect == true) {
 digitalWrite(led, HIGH);
 Serial.println("Movement detected");
 }
 else {
 digitalWrite(led, LOW);
 }
 delay(1000);
}

Yukarıdaki kodun çıktısını görmek için kodu Arduino kartına yükleyin. Bundan sonra, 115200 baud hızı seçerek Arduino IDE seri monitörü açın. Şimdi, RCWL0516 mikrodalga sensörünün önünde bir hareket olduğunda, sensörü algılayacak ve Arduino seri monitöründe "Hareket algılandı" mesajını gösterecektir. Ayrıca Arduino'nun D13 pinine bağlı olan onboard led de yanar.

Arduino terminalinde RCWL0516 sensör çıkışı

RCWL0516 Alternatif Seçenekler

  • SEN0192
  • HC-SR04

Başvurular

  • Ev Otomasyon sistemleri
  • Radarlar
  • Hırsız alarm sistemleri

Bu modül, hırsız alarmlarında ve güvenlik ışıklarında yaygın olarak kullanılan tanınmış PIR (Pasif Kızılötesi Sensör) hareket sensörlerine bir alternatif olarak tasarlanmıştır Çip üzerinde 3,3V sağlayan dahili bir voltaj regülatörü de dahil olmak üzere tüm temel elektronik bileşenleri içerir.

PIR sensörü gibi, bu sensör de yalnızca kendi algılama menzilinde hareket eden bir şeyi algılar, ancak hareket eden bir kişiden gelen siyah cisim radyasyonunu (kızılötesi) algılamak yerine, bu sensör, herhangi bir türü algılamak için bir "Mikrodalga Doppler radarı" tekniği kullanır. hareketli nesneler.

Boyut:

Yaklaşık 7 metre hassasiyet aralığına sahiptir. Tetiklendiğinde, TTL seviyesi çıkış pini (OUT), inaktif durumuna (DÜŞÜK) dönmeden önce 2 ila 3 saniye süreyle LOW'dan (0 V) HIGH'a (3,3 V) değişir.

Özellikler:

1. Çalışma Voltajı: 4-28V
2. Çalışma Akımı: 2.8mA (tipik); 3mA (maks.)
3. Algılama Mesafesi: 5-7m
4. İletim Gücü: 20mW (tipik); 30mW (max)
5. Çıkış Voltajı: 3.2-3.4V
6. Çıkış Voltajı Akım Kapasitesi: 100mA
7. Tetikleme Modu: Tekrar Tetikleme
8. Düşük Çıkış Seviyesi: 0V
9. Çıkış Seviyesi Yüksek: 3.3V
10. Çalışma Sıcaklığı: -20º 80º Celsius'a
11. Saklama Sıcaklığı: -40º - 100º Santigrat

Özelliklerinden görüldüğü gibi, sensör geniş bir güç aralığını işleyebilir: 4 ila 28 V arası Çıkış pimi, işitsel veya görsel bir göstergeyi çalıştırma veya hatta onu girişe bağlama gibi çok sayıda görev için kullanılabilir. işlem için bir mikro denetleyicinin.

Takıldığında, modülün önünde metal parçalardan kaçının. Benzer şekilde, modülün önünde ve arkasında daima en az 1 cm boş alan bırakın.

Çıkış pimleri:

CDS - Sensör devre dışı bırakma girişi (düşük = devre dışı)
VIN - 4 ila 28V DC güç girişi
OUT - HIGH (3.3V) hareket algılandı / DÜŞÜK (0V) devre dışı
GND - Toprak / 0V
3V3 - Düzenlenmiş DC çıkışı (100mA maks.)

LDR isteğe bağlıdır. Takılıysa, gün ışığı aldığında modülün çalışmasını engeller. Sensör güvenlik ışıklarını açmak için kullanıldığında yararlı bir işlev haline geldiği açıktır, çünkü gün ışığı olduğunda açmayı durduracaktır çünkü gün ışığı ile aydınlatma gerekli değildir.

Algılama mesafesi ve bir algılama olduğunda modül çıkışının süresi, devre kartının arkasındaki bazı lehim noktalarına pasif bileşenler eklenerek ayarlanabilir.

Farklı ayarlamalar yapmak için isteğe bağlı elemanlar, C-TM , R-GN ve R-CDS olarak işaretlenmiş noktalara lehimlenmiştir (aşağıda, plakanın lehim tarafının görüntüsü).

Işığa bağlı bir direnç LDR'nin ( CDS olarak işaretlenmiş ekleneceği lehim noktaları vardır CDS giriş pini , gerekirse sensörde devre dışı bırakma (ortam ışığı algılama seçeneğini geçersiz kılma) işlevi görür.

C-TM: Tekrar etkinleştirme süresini ayarlar (varsayılan: 2 saniye). Bir kondansatör eklemek, açma süresinin daha uzun bir tekrarını verecektir.

R-GN: algılama mesafesinin ayarlanması (varsayılan olarak 7 metre). Algılamaya bir direnç eklenerek mesafe kısaltılacaktır. 1MΩ direnç ile bağlanırsa, algılama aralığı yaklaşık 5m'dir.

R-CDS: Bir direnç ekleyerek (1MΩ dahili dirence paralel olarak), kullanıcı ışık algılama eşiğini kendi ihtiyaçlarına göre değiştirebilir. Bu, yalnızca devre kartının ön tarafındaki lehim noktalarına ( CDS ) lehimlenen bir ışık sensörü olduğunda geçerlidir .

47–100K direnç, standart 5 mm LDR ile iyi çalışır.

İşleyiş

Modül elektroniklerinin eşit derecede önemli iki bölümü vardır: MMBR941M yüksek frekanslı NPN transistörüne dayalı bir mikrodalga frekans verici / alıcı / karıştırıcı ve bir RCWL-9196 entegre devresine dayalı çok daha düşük bir frekans bölümü .

Teknik olarak, mikrodalga bölümü , devre kartı izlerinden yapılmış gerekli indüktöre (ve kapasitörlere) sahip bir " Colpitt osilatörüne " benziyor İndüktör (~ 10 nH), üst yüzeydeki S eğrisinin izidir ve kondansatörler, alt yüzeydeki halka yapısı ve ayrıca S eğrisinin solundaki dikdörtgen bloktur.

Yönetim kurulu devresi

Bileşenlerin konumu

Çip devresi

İki çıkış modu

Bir test devresi

Herhangi bir şeye girmeden önce, donanıma ve ilk kurulum / çalıştırma prosedürüne aşina olmanızı ve bazı küçük deneyler yapmayı denemenizi tavsiye ederim.

RCWL-0516'yı sadece bir güç kaynağı ve çıkışında bir LED ile kullanabilmenize rağmen, hareket algılandığında harekete geçmek için daha fazla akım gerektiren harici yükleri kontrol etmek için bir röle sürücü devresi eklenebilir.


İlk testin şeması:

Modülün OUT pini ile 16 pimli yonganın ( RCWL-9196 ) gerçek çıkış pini arasında 1kΩ direnç olduğu için 1k direncin (R1) gerekli olmadığına dikkat edin .

Röle ( RL1 devresinde) standart ile tahrik edilir BC547'nin veya 2N3904 transistor T1 ) ve bir "röle" vardır göstergesi ( LED1 ) olup röle aktif halde olduğu zaman açılır. İsterseniz farklı voltajdaki diğer röleleri de kullanabilirsiniz. Bununla birlikte, bu durumda, güç kaynağı girişinin (5V olan) değiştirilmesi gerekir (elbette birkaç başka küçük değişiklikle). 2 pimli konektör ( JP1 ) gelecekteki testler için ayrılmıştır ve yalnızca modüle bir ışık sensörü bağlandığında kullanılabilir.

Doppler etkisi

Prensip olarak, Doppler etkisi , hareket eden bir nesneden yansıyan sinyalin bir alıcısı tarafından alınan frekanstaki bir değişikliktir. Doppler radarlarında, hareket eden bir nesneyi tespit etmek için modüle edilmemiş bir sinyal ( CW ) kullanılabilir Sensör alıcı, iletilen sinyali bir hedeften yansıyan sinyal ile işler.

Doppler etkisi nedeniyle, bir nesnenin antene göre hareket hızı, frekansta bir değişikliğe neden olur. Doppler frekansının (alıcıda elde edilen frekans) saniyede hedef tarafından gönderilen sinyal frekansının yarım dalga sayısı olduğunu basitçe tahmin edebilirsiniz. Daha yüksek bir hız, daha yüksek bir Doppler frekansı üretecektir. Sinyalin fazını tespit etmek için bir düzenlemeye sahip böyle bir sistem, hedefin hareketinin yönünü de gösterebilir: yaklaşan nesneler daha yüksek bir frekans üretirken, uzaklaşan nesneler sesli sinyalinkinden daha düşük bir frekans üretir.

Colpitts osilatör

Colpitts osilatör popüler bir türüdür LC osilatör tarafından icat Edwin Colpitts Aşağıdaki şekil, tipik bir Colpitts bir göre osilatör 1918 BJT bir ile tank devresinin bir indüktör eder, L kapasitörler seri kombinasyonu paralel olarak bağlı olan C1 ve C2 . Colpitts osilatörünün frekansı, tank devrenizin bileşenlerine bağlıdır ve basit bir formül kullanılarak hesaplanabilir (şekle bakın). Örneğin: L = 27 uH, C1 = 1 nF ve C2 = 15 nF ise, F = 1 MHz Colpitts osilatörünün değişen endüktans veya kapasitans ile ayarlanabileceğini unutmayın.

Bir Colpitts osilatörünün şeması

Bence RCWL-0516 mikrodalga sensörü, yaygın PIR sensörüne güçlü bir alternatif, ancak bu model çok sınırlı (seyrek) belgelere sahip ve bu da onu yeni başlayanlar için bir sorun haline getiriyor. Bulunan "Çince" materyali okumanın yanı sıra, birilerinin hızlı bir şekilde kullanabilmesi için bazı bilgiler eklemek için bazı araştırmalar da yapılmıştır. Şu anda bu sensör modülü için hareket algılama uygulaması dışında bir kullanım bulunmamakla birlikte, fonksiyon eklemek veya değiştirmek için kolayca uyarlanabilir. Bunlardan biri, uzaklaşan veya yaklaşan nesnelerin yörüngelerinin daha ayrıntılı bir şekilde ayrılması olacaktır. RF emisyon özelliklerinden dolayı sensörler birbirlerinin 1 metre yakınına yerleştirilmemelidir, ancak doğru mesafeye yerleştirilmiş iki sensör ile hareketli nesnenin sağdan sola mı yoksa tam tersi mi, soldan sağa mı hareket ettiğini bilmek de mümkün olacaktır. Her iki algılamayı, yani yaklaşma ve uzaklaşma ve sensörlere göre yatay yönde hareket birleştirilerek, tespit edilen nesnenin izlenen alanda nasıl hareket ettiğine dair ayrıntıların bilinmesi mümkün olacaktır.



ANA SAYFAYA DÖN

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.

27 Nisan 2021 Salı

MLX90614 Temassız IR Sıcaklık Sensörü ve Arduino

 

MLX90614 Temassız IR Sıcaklık Sensörü ve Arduino


MLX90614, nesneye dokunmadan sıcaklığı ölçebilen temassız bir IR Sıcaklık sensörüdür. Melexis tarafından sunulan bu olağanüstü sensör, sıcaklığı ölçmek için IR radyasyonlarını kullanan ve I2C portu üzerinden bir dijital çıkış sinyali sağlayan IR teknolojisini kullanır. Temassız sıcaklık sensörleri, sıcaklığı kontrol etmek için COVID-19 günleri boyunca büyük bir katkı yaptı. Bu eğitimde, pin çıkışı ayrıntılarını, pin konfigürasyonlarını, teknik özellikleri, Arduino ile arayüz oluşturma özelliklerini ve bir MLX90614 sıcaklık sensörünün uygulamalarını tartışacağız.
MLX90614 Temassız IR Sıcaklık Sensörü

MLX90614 Sıcaklık Sensörü Giriş

 MLX90614, belirli bir nesnenin sıcaklığını -70 ° C - 382.2 ° C ve -40 ° C - 125 ° C arasındaki ortam sıcaklığını, gözlem altındaki bir nesneyle fiziksel temas kurmadan bile ölçebilen, IR tabanlı temassız sıcaklık sensörüdür. Sıcaklık okumasını bir I2C veriyolu üzerinden mikrodenetleyicilere iletmek için bir I2C portu ile gömülüdür Üstelik, sensörün arızalanmasını önlemek için ESD koruması da sağlanmıştır.

Küçük cihaz, güçlü ADC'si sayesinde oldukça doğru ve hassastır Değerleri 0.14 ˚C çözünürlükte çıkarmak için 17 bitlik bir ADC modüle gömülüdür. Melexis, giriş voltajı gereksinimlerine, yani 3 Volt veya 5 volt ve farklı proje gereksinimleri için çözümleme gücüne dayalı olarak bu sensörün farklı versiyonlarını piyasaya sürdü. Ancak MLX90614, özellikle ev otomasyonunda uzun bir uygulama listesine sahip hassas bir sıcaklık sensörüdür.

MLX90614 Pin çıkışı

Bu sıcaklık sensörü modülü, varsayılan bir durumu tanımlamak için 3,3 voltaj regülatörü, dahili pullup dirençli I2C Bus ve gürültü filtreleme için bir kapasitör ile birlikte gelir. Temassız MLX90614 IR Sıcaklık Sensörü modülünün pin çıkışı aşağıdaki gibidir:

MLX90614 Temassız IR Sıcaklık Sensörü pin şeması

 PIN konfigürasyonu

MLX90614'ün iki sürümü vardır ve TO-39 paketinde mevcuttur. Pim yapılandırma ayrıntıları aşağıdaki tabloda listelenmiştir:

Pin AdıFonksiyon
VCCPozitif güç kaynağı pimi
GNDReferans potansiyel pimi
SCLBoşaltma Seri Saat pimini açın. Bir I2C hat saati, veri senkronizasyonu için pim atar.
SDASeri Veri pimini boşaltın. Verileri ana MCU'ya iletmek için bir I2C hattı.

Özellikler ve Spesifikasyonlar

  • Çalışma Voltajı: 3,6 Volt - 5,5 Volt
  • Ortam Sıcaklık Aralığı: -40 ° C - 125 ° C
  • Nesne Sıcaklık Aralığı: -70 ° C - 380 ° C
  • Ölçüm çözünürlüğü: 0,02 ° C
  • ESD Hassasiyeti: 2kV
  • Lavabo / Kaynak Akımı: 25mA
  • ADC Çözünürlüğü: 17 bit
  • IR sensörü, bir optik filtre, bir DSP ve ince çıkışlı dijital sinyaller için düşük gürültülü bir amplifikatör ile entegre edilmiştir.
  • 8-16 Volt uygulamaları için uyarlanabilir ve kolayca entegre edilebilir.
  • Güç tasarrufu modunu destekler ve tekli ve ikili versiyonları mevcuttur
  • Güç tasarruflu ve son derece hassas bir sensördür.

Bu IR sensörünün farklı versiyonlarının diğer teknik özelliklerini görmek için veri sayfasına bir göz atın.

IR Sensör çalışma prensibi

MLX90614, Stefan Boltzmann prensibine göre çalışan temassız bir IR sıcaklık sensörüdür. Herkesin kendi sıcaklığı ile orantılı IR radyasyonu yaydığını belirtir. Bu radyasyon daha sonra dijital sinyale dönüştürülen sensör aracılığıyla ölçülür ve I2C veriyolu aracılığıyla mikro denetleyiciye iletilir.

IR sensör modülü, bir IR termopil detektörü ve bir sinyal ASSP işleme ünitesinden oluşur. Thermopile, versiyondan versiyona değişen alan görünümünde radyasyonu toplama işlevi görür. İşlem birimleri, bu analog sinyalleri filtrelenmiş yükseltilmiş sinyallere dönüştürür.

MLX90614 pinli dahili bağlantılar

Blok Şeması

MLX90614 IR Sıcaklık Sensörünün modülün dahili bağlantılarının bilgisini kavramaya yönelik işlevsel diyagramı aşağıda verilmiştir:

MLX90614 Temassız IR Sıcaklık Sensörü blok şeması

MLX90614 ve Arduino

Bu bölüm, Arduino UNO ve MLX90614 temassız IR Sıcaklık sensörünün arayüzünü açıklamaktadır Ancak I2C bağlantı noktasına sahip herhangi bir Arduino kartını veya mikrodenetleyiciyi kullanabilirsiniz. Çünkü MLX90614 sensörü, I2C veriyolunda sıcaklık çıkışı sağlar.

Bağlantı şeması

Aşağıdaki şekil MLX90614 sıcaklık sensörü ile Arduino arasındaki bağlantı şemasını göstermektedir.

  • Sıcaklık sensörünün güç kaynağı pinini (Vin) Arduino'nun 5V pinine ve MLX90614'ün GND pinini GND pin Arduino UNO'ya bağlayın.
  • Verileri seri olarak aktarmak için belirtilen IR sensörünün SDA ve SCL pinlerini Arduino UNO'nun A4 ve A5 pinlerine bağlayın. Arduino'nun A4 ve A5 pinleri ayrıca Arduino Uno'nun I2C portunun SDA ve SCL pinlerinin alternatif işlevini paylaşır.
MLX90614 Temassız IR Sıcaklık Sensörü Arduino ile arayüz oluşturuyor
Arduino UNOMLX90614 IR Sensörü
5VVCC
GNDGND
SDAA4
SCLA5

Adafruit MLX90614 Arduino Kitaplığının Kurulumu

Programlama bölümüne gitmeden önce, İlk olarak Adafruit MLX90614 Arduino kütüphanesini indirin ve Arduino IDE yazılımı üzerine kurun. Önceden yazılmış kitaplığı özellikle modül için kullanmak ve komutları gerçekleştirmek için eskizlere eklemek çok uygundur. Adafruit MLX90614 Arduino Kitaplığını bu bağlantıdan indirin:


Arduino Kodu

MLX90614 IR Sıcaklık Sensörü için Arduino kodu aşağıda verilmiştir:

#include <Wire.h>
#include <Adafruit_MLX_Sensor90614.h>
char *Object_Type[]={"Object","Ambient"};

Adafruit_MLX_Sensor90614 MLX_Sensor = Adafruit_MLX_Sensor90614();

void setup() {
  Serial.begin(9600);
  Serial.println("MLX90614 Sensor MicroLab");  
  MLX_Sensor.begin();  
}

void loop() {

  Display_Temperature('A'); //Get Object temperature in Celsius
  Display_Temperature('B'); //Get Ambient temperature in Celsius
  
  Display_Temperature('C'); //Get Object temperature in Keliven
  Display_Temperature('D'); //Get Ambient temperature in Keliven

  
  Display_Temperature('E'); //Get Object temperature in Fahrenheit
  Display_Temperature('F'); //Get Ambient temperature in Fahrenheit
  Serial.println("########");

  delay(2000);

  
}


float Get_Temperature_Sample(char type)
{
    float temp_value;
    float Object_Temperature = MLX_Sensor.readObjectTempC();
    float Ambient_Temperature = MLX_Sensor.readAmbientTempC();
   if(type =='E')
   {
    temp_value = MLX_Sensor.readObjectTempF(); //Fah. Object
   }else if(type =='F')
   {
    temp_value = MLX_Sensor.readAmbientTempF();//Fah Ambient
   }else if(type =='C')
   {
    temp_value = Object_Temperature + 273.15;// Object Kelvin
   }else if(type =='D')
   {
    temp_value = Ambient_Temperature + 273.15;//Ambient Kelvin
   }else if(type =='A')
   {
    temp_value = Object_Temperature;
   }else if(type =='B')
   {
    temp_value = Ambient_Temperature;
   }
   return temp_value;
 
}

void Display_Temperature(char type)
{
  float temp_data =Get_Temperature_Sample(type);

  if(type =='A')
  {
    Serial.print(Object_Type[0]);
    Serial.print(" ");    
    Serial.print(temp_data);
    Serial.print("°");      
    Serial.println("C");
  }else if(type =='B')
  {
    Serial.print(Object_Type[1]);
    Serial.print(" ");     
    Serial.print(temp_data);
    Serial.print("°");      
    Serial.println("C");
  }else if(type =='C')
  {
    Serial.print(Object_Type[0]);
    Serial.print(" ");     
    Serial.print(temp_data);
    Serial.print("°");      
    Serial.println("F");
  }else if(type =='D')
  {
    Serial.print(Object_Type[1]);
    Serial.print(" ");     
    Serial.print(temp_data);
    Serial.print("°");      
    Serial.println("F");
  }

  else if(type =='E')
  {
    Serial.print(Object_Type[0]);
    Serial.print(" ");     
    Serial.print(temp_data);  
    Serial.print("°");       
    Serial.println(" K");
  }  
  else if(type =='F')
  {
    Serial.print(Object_Type[1]);
    Serial.print(" ");     
    Serial.print(temp_data);  
    Serial.print("°");       
    Serial.println(" K");
  }

}

Kod nasıl çalışır?

Kitaplıkları dahil et

İlk adım, gerekli kitaplıkları dahil etmektir, yani sıcaklık sensörü için "Adafruit_MLX90614.h", I2C protokolü için "Wire.h". Bir karakter dizisini tutmak için bir char türü (* Object_Type) örneği tanıtıldı. Ayrıca, MLX90614 kütüphane işlevlerine erişmek için bir "MLX_Sensor" nesnesi oluşturulur.

#include <Wire.h>
#include <Adafruit_MLX_Sensor90614.h>
char *Object_Type[]={"Object","Ambient"};
Adafruit_MLX_Sensor90614 MLX_Sensor = Adafruit_MLX_Sensor90614();

Kurulum Fonksiyonu İçinde

Boşluk kurulumu iki şey gerçekleştirir. Seri monitörü 9600 bps ile başlatır ve ayrıca sıcaklık örnekleri almaya başlamak için IR sensör kitaplığını başlatan MLX_Sensor nesnesini başlatır.

void setup() {
  Serial.begin(9600);
  Serial.println("MLX90614 Sensor MicroLab");  
  MLX_Sensor.begin();  
}

İç Döngü İşlevi

Boşluk döngü işlevinin içinde, Celcius, Kelvin ve Fahrenheit cinsinden sıcaklık ölçümleri almak ve bunları Arduino seri monitöründe görüntülemek için "Display_Temperature" işlevini kullanıyoruz. Bu işlevin yardımıyla ortam sıcaklığını artı nesne sıcaklığını Santigrat, Fahrenheit ve Kelvin cinsinden görüntüler. Güncellenmiş sıcaklık değerleri, seri monitörde 2000 milisaniyelik bir gecikmeden sonra görüntülenecektir.

void loop() {

  Display_Temperature('A'); //Get Object temperature in Celsius
  Display_Temperature('B'); //Get Ambient temperature in Celsius
  
  Display_Temperature('C'); //Get Object temperature in Keliven
  Display_Temperature('D'); //Get Ambient temperature in Keliven

  
  Display_Temperature('E'); //Get Object temperature in Fahrenheit
  Display_Temperature('F'); //Get Ambient temperature in Fahrenheit
  Serial.println("########");

  delay(2000);


}

Sıcaklık belirli bir değeri aşarsa veya belirli bir değerden düşükse, bir if koşulu kullanabilir ve ısıtıcının veya klimanın kapatılması gibi pratik bir uygulama için kod uygulanabilir hale getirebiliriz.

Get_Temperature_Sample İşlevi

"Get_Temperature_Sample ()" fonksiyonu, kullanıcının talimatına göre sıcaklık değerlerini almak için oluşturulur. Sıcaklık değerlerini saklamak için üç float değişkeni "temp_value, Object_Temperature ve Ambient_Temperature" oluşturulur.

float Get_Temperature_Sample(char type)
{
    float temp_value;
    float Object_Temperature = MLX_Sensor.readObjectTempC();
    float Ambient_Temperature = MLX_Sensor.readAmbientTempC();
   if(type =='E')
   {
    temp_value = MLX_Sensor.readObjectTempF(); //Fah. Object
   }else if(type =='F')
   {
    temp_value = MLX_Sensor.readAmbientTempF();//Fah Ambient
   }else if(type =='C')
   {
    temp_value = Object_Temperature + 273.15;// Object Kelvin
   }else if(type =='D')
   {
    temp_value = Ambient_Temperature + 273.15;//Ambient Kelvin
   }else if(type =='A')
   {
    temp_value = Object_Temperature;
   }else if(type =='B')
   {
    temp_value = Ambient_Temperature;
   }
   return temp_value;
 
}

Celsius cinsinden nesne sıcaklığı, Object_Temperature'de okunur ve saklanır ve Celsius cinsinden ortam sıcaklığı, Ambient_Temperature'de okunur ve saklanır. Kullanıcı bir "E" karakteri girerse, "temp_value" değişkeni, hedef nesnenin sıcaklığını "MLX_Sensor" aracılığıyla Fahrenheit cinsinden alır. "Nesnesi ve kullanıcı" F "karakterini yazarsa," temp_value "değişkeni ortam sıcaklığını" MLX_Sensor "nesnesi aracılığıyla Fahrenheit cinsinden alır. Benzer şekilde, "C" değer değişkeninin yazılması, içinde bulunan Fahrenheit değerine 273,15 ekler ve hedef nesnenin Kelvin sıcaklığı olan kendini yükseltir. Ve “D” de aynısını yapacak ama bu zaman değeri, ona 273.15 eklenerek yükseltilen ortam sıcaklığına sahip.

"A" veya B "yazıldığında," temp_value "değişkeni okumayı sırasıyla Object_Temperature veya Ambient_Temperature'den alır ve döndürür.

A is object temperature in Celsius
B is the ambient temperature in Celsius
C is object temperature in Fahrenheit
D is the ambient temperature in Fahrenheit
E is object temperature in Kelvin
F is the ambient temperature in Kelvin

Display_Temperature () Fonksiyonu

Get_Temperature_Sample () işlevini çağıran ve kullanıcı talimatına göre sıcaklık okumalarını yazdıran başka bir işlevdir. Örneğin, kullanıcı "A" yazarsa, yazdırma işlevleri getTemp işlevini çağırır, okumayı alır ve okumaları Arduino seri monitöründe gösterir. Aynı şey tanımlanan tüm karakterler için de geçerlidir. 

void Display_Temperature(char type)
{
  float temp_data =Get_Temperature_Sample(type);

  if(type =='A')
  {
    Serial.print(Object_Type[0]);
    Serial.print(" ");    
    Serial.print(temp_data);
    Serial.print("°");      
    Serial.println("C");
  }else if(type =='B')
  {
    Serial.print(Object_Type[1]);
    Serial.print(" ");     
    Serial.print(temp_data);
    Serial.print("°");      
    Serial.println("C");
  }else if(type =='C')
  {
    Serial.print(Object_Type[0]);
    Serial.print(" ");     
    Serial.print(temp_data);
    Serial.print("°");      
    Serial.println("F");
  }else if(type =='D')
  {
    Serial.print(Object_Type[1]);
    Serial.print(" ");     
    Serial.print(temp_data);
    Serial.print("°");      
    Serial.println("F");
  }

  else if(type =='E')
  {
    Serial.print(Object_Type[0]);
    Serial.print(" ");     
    Serial.print(temp_data);  
    Serial.print("°");       
    Serial.println(" K");
  }  
  else if(type =='F')
  {
    Serial.print(Object_Type[1]);
    Serial.print(" ");     
    Serial.print(temp_data);  
    Serial.print("°");       
    Serial.println(" K");
  }

}

Kodu yükleyin ve okumaları izleyin. Seri monitör, belirli karakterler girildiğinde ilgili okumaları görüntüler. MLX90614 IR sensörünün çok hassas bir cihaz olduğunu ve çok kolay dalgalandığını unutmayın.

Alternatif Seçenekler

  • MLX90615
  • ZTP115
  • TPIS 1S

Kullanım Alanları Fikirleri

  • Tıbbi bakım sistemleri
  • Ev sıcaklığı izleme
  • Çevre Kontrolü
  • Sıcaklık Tabancası
  • DIY Projeleri
  • Ticari uygulamalar
  • Hareketli nesne sıcaklık tespiti

ANA SAYFAYA DÖN

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.