Robotik Kodlama

Robotik Kodlama
Ana Sayfa

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

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

30 Nisan 2021 Cuma

Arduino kullanarak IR uzaktan kumandalı ev otomasyon sistemi

 

Arduino kullanarak IR uzaktan kumandalı ev otomasyon sistemi


Arduino kullanan IR uzaktan kumandalı ev otomasyon sistemi : Herkese merhaba, umarım iyisindir ve iyisinizdir. Son zamanlarda, Arduino kullanarak PC tabanlı Ev Otomasyonu üzerine Arduino tabanlı bir proje yayınladım PC ile Arduino arasında seri iletişimi kullanır Daha iyisini yapabileceğimi düşündüm, bu yüzden IR alıcısı ve uzaktan kumanda ile yapmayı denedim Bir cazibe gibi çalıştığını tahmin edin. Artık cihazları uzaktan kontrol edebiliyorum. Artık cihazları TV uzaktan kumandası veya IR uzaktan kumanda yardımıyla kontrol edebiliyorum. Bu yüzden ona IR uzaktan kumandalı ev otomasyonu adını verdim. Ayrıca pic mikrodenetleyiciyi kullanarak TV uzaktan kumandalı ev otomasyon sistemini kontrol etmek isteyebilirsiniz 

Arduino kullanarak IR uzaktan kumandalı ev otomasyon sistemi

IR uzaktan kumandalı ev otomasyon sisteminin Blok Şeması

Bu IR uzaktan kumandalı ev otomasyon sisteminde; Arduino Uno, devre beyni olarak kullanılır. Öncelikle IR alıcı, uzaktan kumandadan sinyal alır. Bu sinyaller Arduino tarafından okunur ve kodda tanımlanan değerlerle karşılaştırılır. Değerler aynıysa röleyi açıp kapamak veya mesajları LCD'de görüntülemek gibi karşılık gelen işlemi gerçekleştirir .Arduino kullanarak IR uzaktan kumandalı ev otomasyon sisteminin blok diyagramı

IR uzaktan kumandalı ev otomasyon sistemi için gerekli bileşenler

  • Arduino Uno: Kullanımı kolay olduğu için Arduino kullanıyoruz ve aynı zamanda LCD, IR ve röle modülü ile arayüze çok fazla dijital pin sağlıyor. Herhangi bir projenin prototipini oluştururken çok kolay.
  • 4 Kanal Röle Modülleri : Bu projede kullandığımız modül HL-54S'dir. Arduino'dan gelen 5v mantıksal sinyali kullanarak açılır ve kapanır. 250VAC ve 10A'ya kadar işleyebilir. Bu modüllerin 4 rölesi vardır, böylece 4 AC cihazı veya cihazı kontrol edebiliriz.
  • IR uzaktan kumanda ve alıcı: IR uzaktan kumanda, IR alıcı tarafından alınan kızılötesi sinyali gönderir. Uzaktan kumandadaki her düğmenin kendine özgü bir değeri vardır. Bu projede VS1838 kullanıyorum.
  • 16 × 2 LCD : LCD, proje adını, girilebilecek komutların listesini görüntülemek için kullanılır, daha sonra herhangi bir komut vermek ve girilen komutun durumunu göstermek için kullanılır. 16 × 2 LCD kullanıyoruz çünkü Arduino ile arayüz kolay ve fiyatı çok ucuz. Ekranın kontrastını kontrol etmek için 10k potansiyometre kullanılır
  • Tutuculu AC ampuller: AC ampuller, cihazları ve cihazları temsil etmek için kullanılır. Çünkü herhangi bir AC projesinin prototipini oluştururken kullanımı kolaydır ve çok kullanışlıdır. Nihai üründe, kontrol etmek için sadece AC soketiyle değiştirin.
  • Fişli AC kablosu: Daha yüksek voltajlarla çalışırken kaliteli kablo kullanmanızı tavsiye ederim. Bağlantıları kapatmak için elektrik bandı kullanmak her zaman iyidir.
  • Harici 5 volt besleme: Röleyi açmak ve kapatmak için 5 voltluk dc besleme gereklidir. Aksi takdirde işe yaramadı. Ayrıca Arduino'dan 5v vermeyin.

Devre IR uzaktan kumandalı ev otomasyon sistemiIR uzaktan kumandalı ev otomasyon sistemi devre şeması

Bağlantılar IR uzaktan kumandalı ev otomasyon sistemi

IR alıcısı:

Pin 1'den dijital pin 2'ye.

2'yi toprağa sabitleyin.

3'ü Vcc'ye sabitleyin.

16 × 2 LCD:

  • SS toprağa.
  • DD , besleme gerilimi için.
  • O , 10k potansiyometrenin pimini ayarlamak için.
  • RS'den Pin 8'e.
  • RW toprağa.
  • Pin 9'u etkinleştirin.
  • LCD D4 ile Pin 10 arası.
  • LCD D5 - Pin 11.
  • LCD D6'dan Pin 12'ye.
  • LCD D7'den Pin 13'e.
  • Potansiyometre ve katotun bir ucunu topraklayın
  • Potansiyometre ve anotun diğer ucuna 5v

 4 Kanal Röle modülleri:

  • Harici 5 volt'tan JD V CC'ye .
  • Yerden yere.
  • Ini1'den Pin 3'e.
  • Ini2'den Pin 4'e.
  • Ini3'ten Pin5'e.
  • Vcc'den Arduino 5v'ye.
  • Tüm ampullerin bir ucunu normalde açık olan röle terminaline bağlayın.
  • 220VAC'nin bir ucu, rölenin tüm ortak terminallerine ve diğer ucu ampullerin diğer terminallerine.

IR uzaktan kumandalı ev otomasyon sisteminin çalışması

IR uzaktan kumandadaki her düğmenin kendine özgü bir değeri vardır. Böylece her düğmeyi ayrı ayrı kullanabiliriz. 3 düğme etiketini “1. 2. 3. ” Her düğmenin kodda kendi performansı vardır. Düğmeye uzaktan kumandadan bastığımda, kızılötesi sinyal gönderiyor ve bu daha sonra IR alıcısı tarafından alınıyor. Arduino sinyali okur ve cihazları açma ve kapama ve LCD'de durumu görüntüleme gibi ilgili işlemleri gerçekleştirir. Uzaktan Arduino'dan "1" butonuna bastığımda değeri okur ve kodda tanımlanan değer ile karşılaştırır: "16724175", eğer birinci röle üzerindeki Arduino anahtarına eşit ise ve ampul yanar ve tekrar basarsa ampul ışığı söner. Diğer iki düğme benzer şekilde çalışır.

IR tabanlı ev otomasyon sistemi kodu

#include <LiquidCrystal.h>
#include<string.h>
#include <boarddefs.h>
#include <IRremote.h>
#include <IRremoteInt.h>
#include <ir_Lego_PF_BitStreamEncoder.h>
LiquidCrystal lcd(8, 9, 10, 11, 12, 13);
#define bulb1 3
#define bulb2 4
#define bulb3 5

int RECV_PIN = 2;


int itsON[] = {1,1,1,1};

#define code1 16724175 
#define code2 16718055 
#define code3 16743045 

IRrecv irrecv(RECV_PIN); 
decode_results results;
char temp;
char str[10];
char i=0;
void setup() 
{
irrecv.enableIRIn();
lcd.begin(16, 2);
Serial.begin(9600);
pinMode(bulb1, OUTPUT);
pinMode(bulb2, OUTPUT);
pinMode(bulb3, OUTPUT);
digitalWrite(bulb1, HIGH);
digitalWrite(bulb2, HIGH);
digitalWrite(bulb3, HIGH);
lcd.print("MICROCONTROLLERS ");
lcd.setCursor(0,1); 
lcd.print(" LAB ");
delay(2000);
lcd.clear();
lcd.print("HOME AUTOMATION ");
lcd.setCursor(0,1);
lcd.print(" USING IR ");
delay(2000);
lcd.clear();
lcd.print("1. Bulb 1");
lcd.setCursor(0,1);
lcd.print("2. Bulb 2");
delay(2000);
lcd.clear();
lcd.print("3. Bulb 3");
delay(2000);
lcd.clear();
lcd.print("Bulb 1 2 3 ");
lcd.setCursor(0,1);
lcd.print(" OFF OFF OFF");
}
void loop() {
lcd.setCursor(0,0);
lcd.print("Bulb 1 2 3 ");
if (irrecv.decode(&results)) {
unsigned int value = results.value;
switch(value) {
case code1:
if(itsON[1] == 1) { 
digitalWrite(bulb1, LOW); 
itsON[1] = 0;
lcd.setCursor(4,1); 
lcd.print("ON ");
}
else { 
digitalWrite(bulb1, HIGH);
itsON[1] = 1;
lcd.setCursor(4,1); 
lcd.print("OFF"); 
}
break; 
case code2:
if(itsON[2] == 1) {
digitalWrite(bulb2, LOW);
itsON[2] = 0;
lcd.setCursor(8,1); 
lcd.print("ON "); 
} else {
digitalWrite(bulb2, HIGH);
itsON[2] = 1;
lcd.setCursor(8,1); 
lcd.print("OFF"); 
}
break;
case code3:
if(itsON[3] == 1) {
digitalWrite(bulb3, LOW);
itsON[3] = 0;
lcd.setCursor(12,1); 
lcd.print("ON ");
} else {
digitalWrite(bulb3, HIGH);
itsON[3] = 1;
lcd.setCursor(12,1); 
lcd.print("OFF "); 
}
break; 
}
Serial.println(value); // you can comment this line
irrecv.resume(); // Receive the next value
}
}

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.