Herkese merhabalar ! Arduino dersleri serimizden keyif alıyor musunuz? Yorumlarınızı blogumuzda ve YouTube kanalımızda bizimle paylaşabilirsiniz ! Bu yazımızda sizlerle NTC kullanarak Arduino ile sıcaklık ölçümü uygulaması yapacağız.
Bir önceki yazımızda RGB LED uygulaması yapmıştık >>> Potansiyometre ile Renk Değişimi Uygulaması Yapalım !
NTC Sensörü Nedir?
NTC, negative thermocouple kelimelerinin kısaltmasından oluşur. NTC, aslında sıcaklığa bağlı olarak değeri değişen bir dirençtir. Sıcaklık yükseldikçe direnci azalır; bu sayede sensör görevi görmüş olur.
NTC sensörü, daha önce LDR uygulamamızda da söylediğimiz gibi pasif bir sensördür. Yapısı itibari ile bir direnç olmasına rağmen ortamdaki fiziksel değişime göre tepki verdiği için bu devre elemanını sensör olarak nitelendirebiliyoruz.
Diğer bütün sensörler hakkında bilgi almak için yazımızı inceleyin >>> Sensör Nedir? Sensör Çeşitleri Nelerdir?
Arduino ve NTC ile Sıcaklık Ölçümü Yapalım
Gerekli malzemeler: ( Not: NTC ile Sıcaklık Ölçümü ve 10. Derse Kadar Olan Dersleri “Arduino Başlangıç Seti” İle Yapabilirsiniz. Malzemeler Bu Sette! >)
LED’i Yakarak Uyarı Veren NTC Devresi
Devre şemamız bu şekilde:
Arduino NTC Kodu
Devreyle beraber kullanacağımız kodumuz:
#include <math.h> #define led 2 void setup() { Serial.begin(9600); pinMode(led, OUTPUT); } double Termistor(int analogOkuma) { double sicaklik; sicaklik = log(((10240000 / analogOkuma) - 10000)); sicaklik = 1 / (0.001129148 + (0.000234125 + (0.0000000876741 * sicaklik * sicaklik)) * sicaklik); sicaklik = sicaklik - 273.15; return sicaklik; } void loop() { int deger = analogRead(A0); double sicaklik = Termistor(deger); Serial.println(sicaklik); if (sicaklik > 30) { digitalWrite(led, HIGH); } else { digitalWrite(led, LOW); } delay(250); }
ntc nin a,b,c katsayılarını nasıl buldunuz?
Birçok kaynakta –>>
double Termistor(int analogOkuma)
{
double sicaklik;
sicaklik = log(((10240000 / analogOkuma) – 10000));
sicaklik = 1 / (0.001129148 + (0.000234125 + (0.0000000876741 * sicaklik * sicaklik )) * sicaklik );
sicaklik = sicaklik – 273.15;
return sicaklik;
}
–>> şeklinde hesaplamalar mevcut bu hesaplamaların kaynağı nedir. Ve nereden gelmektedir. Teknik olarak…
ntc direnç değerini sıcaklığa çeviriyor bu hesaplama
Ntc; sıcaklık artığında direnci azalan, Sıcaklık azalttığında direnci artan bir devre elemanıdır. Sıcaklık artışıyla direnç düşüşü arasındaki ilişki lineer değil paraboliktir yani 20 derecede 27k 30 derecede 8k 40 derecede 1k olabilir bu artışın sıcaklığa düzgün çevrilebilmesi için lineer olması gerekir yoksa termometre stabil çalışmayacaktır. İste bu parabolik artışı daha lineer hale getirmek için logaritma fonksiyonu kullanılır.
100 k ntc için ne yapmamız gerekli ?
tüm değerlere bir sıfır daha eklemek
math.h kütüphanesini indireceğim bi adres verirmisiniz
Arduino içinde dahili olarak mevcuttur, haricen indirmenize gerek yoktur.
Benim bilgisayarımda math kütüphanesi yok indirebileceğim yerde bulamıyorum ne yapmalıyım??
github tan indirebilirsiniz.
sıcaklık nerde gösteriliyor
araçlardan seri port ekranına tıkla
Çok Güzel Olmuş Ellerinize Sağlık
bunu lcd ekrana nasıl aktarabiliriz yardımcı olur musunuz
Öncelikle herkese merhaba. Kutunun içine 220V lamba yerleştirdim ve dht11 sensörü ile sıcaklık ölçtüm ve sıcaklığı 33 dereceye sabitledim yani lamba bir süre çalışıyor istenilen sıcaklığa gelince röle lambayı kapatıyor bu şekilde 15 gün çalıştı sonra lamba sürekli çalışıyor. Kısaca bu rölelerin çalışma süresi nedir nereden öğrenebiliriz? Rölenin açıp kapatma sayısı kaçtır nasıl öğrenebiliriz.
Şimdiden teşekkürler.
Google’da aratarak ilk bulduğum röleye ait datasheet’te (https://www.hobbytronics.co.uk/datasheets/songle-12v-relay.pdf) “Life Expectancy” başlığı altında yüksüz durumdayken rölenin 10^7, yani 10 milyon açma-kapamaya, yükteyken ise 10^5 yani 100 bin açıp-kapama ömrüne sahip olduğu belirtilmiş. Siz de kullandığınız rölenin datasheet’ine başvurarak bu bilgiyi edinebilirsiniz.
Muhtemelen röle kontaklarının anma akım değerinin üzerinde bir akım çekildiği için fiziksel olarak röle kontakları yapışmıştır.
İyi günler. Sakıncası yoksa bir şey sormak istiyorum. Ampulü nereye başladınız devrede. Role ye mi?
Bağladınız *
Röleyi tıpkı bir anahtar olarak düşünmeniz gerekir. Bu durumda güç kaynağından (priz v.b.) gelen kablolardan bir tanesini rölenin NO, yani normal durumda açık devre veya NC yani normal durumda kısa devre olan bağlantılarından birisine, kablonun devamını ise rölenin COM yani ortak ucuna bağlayarak bağlantınızı gerçekleştirebilirsiniz.
Merhaba vücut sıcaklığı için koltuk altından ölçüm yapmak istiyorum bunun için ek olarak neyi nasıl kullanmalıyım ?
Merhabalar. Su geçirmez yapıda olan DS18B20 sensörünü kullanabilirsiniz. Örnek koda buradan ulaşabilirsiniz.
Merhabalar,
Aşağıdaki Problemi Nasıl çözebilirim.
Arduino:1.8.2 (Windows 10), Kart:”Arduino/Genuino Uno”
C:\Users\irfan\OneDrive\Belgeler\Arduino\ardntckulsicolc\ardntckulsicolc.ino:1:17: fatal error: mat.h: No such file or directory
#include
^
compilation terminated.
exit status 1
Error compiling for board Arduino/Genuino Uno.
This report would have more information with
“Show verbose output during compilation”
option enabled in File -> Preferences.
Problemim çözüldü kütüphane ismini yanlış görmemden dolayı oluşmuş problem.
Kodun en başında yer alan #include satırınında karakter ile ilgili bir hata olmuş sanırım. Kodu doğrudan kopyaladıysanız en azından en baştaki satırı silip tekrar eliniz ile yazmayı deneyebilirsiniz.
hava 16 dereceyken 23.76 ve benzeri şeyler çıkıyo (artıyo ve azalıiyor)
Hakan ile benzer sıkıntıyı yaşıyorum, sıcaklığı saniyede bir ölçüyorum , gerçek sıcaklık ise 19.7 iken mesela
1. ölçüm 20.10
2. ölçüm 21.40
3. ölçüm 19.05
gibi değerler alıyorum,
lütfen yardımcı olurmusunuz
teşekürler
Selamlar,
http://www.robotistan.com/ntc-termistor-sensoru-karti
elimde linkte yer alan sensör setinden var, bu kodları analog girişten uyguladığımda saçma sapan değerler çıkıyor, çözemedim bir türlü ne yapmak lazım yardımcı olurmusunuz?
İyi günler. Kullandığım NTC 10 Ohm. Kodda nasıl bir değişiklik yapmam gerekiyor?
Merhaba. Devreye LCD ekran eklemek için kodda ne gibi değişiklikler yapmak gerekiyor?
Merhabalar, buradaki yazımızı inceleyebilirsiniz: Arduino Dersleri 11: Sıcaklık Ölçümü
NTC mblock ile kullanabilir mi?
Merhabalar, mBlock ile sıcaklık ölçümü için NTC yerine bu sensörü kullanmanız gereklidir: https://www.robotistan.com/sicaklik-ve-nem-sensoru-temperature-and-humidity-sensor
sizden öğrendiklerimle bunu da ben yaptım NTC nin direnç değişimini de göstermeye çalıştım
sıcaklık ile direnç arasındaki ters orantıyı görebilirsiniz
https://youtu.be/qDGw4RbTJNs TEŞEKKÜRLER
Çok güzel olmuş, tebrikler!
tebrikler hocam noktasına virgülüne kadar düzgün yazılmış .
Güzel sözleriniz için teşekkürler 🙂
Bu kodları Devc++ da nasıl çalıştırabilirim? Yardımcı olursanız sevinirim
Bu kodları Dev-C++ ile kullanamazsınız. Arduino IDE ile kodları derleyip kartınıza yüklemeniz gerekir. Kurulum adımları için buradaki yazımızdan faydalanabilirsiniz: Detaylı Arduino Kurulumu – Ders 0
Merhaba,
Öncelikle bilgiler için teşekkürler. Ben bu sensörü kullanarak bir fanı çalıştırmak istiyorum yani sıcaklığa bağlı olarak fanın hızı artıp azalacak. Bu konuda yardımcı olabilir misiniz? Okunan değere bağlı olarak motorun hızını nasıl kontrol edebilirim?
Okunan değere göre bir hesaplama yaparak bir fanı motor sürücü ile kontrol edebilirsiniz. Belirli bir sıcaklık üzerine çıkılması durumunda motoru çalıştıracak yapı için if/else yapısı gibi bir yöntem kullanabilirsiniz. Motor sürme ile ilgili bu derslerimizi de inceleyebilirsiniz:
Arduino Dersleri 12: DC Motor Hız Kontrolü
Arduino Dersleri 14: DC Motor Hız ve Yön Kontrolü
bu devreye bluetooth modülü ekleyip sıcaklığı koşullu olarak kontrol etmek için nasıl bir bağlantı yapmak gerekli ? mesela sıcaklık 5 derecenin üzerine çıktığında fan çalışsın. 2 dereceye indiğinde dursun.
Bluetooth modülünün koşullu kontrol için nerede kullanılacağını anlayamadım ama sıcaklık kontrolü için bir if ile
if (sicaklik > 5)
digitalWrite(role_pin, HIGH);
if(sicaklik < 2) digitalWrite(role_pin, LOW); gibi bir yapı oluşturabilirsiniz.
slm ben 2 adet lm 35 i aynı anda kullanmak istiyorum nasıl yapabilirim
değer yazan sayfa çıkmıyor
4.7K R NTC için neler yapmalıyım
4.7K R NTC için ne yapmam lazım
Suyun sıcaklık derecesini hangi sensör ile ölçebilirim?
==>BUZZER VE YEŞİL LED EKLEMEK İSTERSENİZ
#include
#define led 2
#define yesilled 3
#define buzzer 4
void setup() {
Serial.begin(9600);
pinMode(led,OUTPUT);
pinMode(yesilled,OUTPUT);
pinMode(buzzer,OUTPUT);
}
double Termistor(int analogOkuma){
double sicaklik;
sicaklik = log(((10240000 / analogOkuma) – 10000));
sicaklik = 1 / (0.001129148 + (0.000234125 + (0.0000000876741 * sicaklik * sicaklik)) * sicaklik);
sicaklik = sicaklik – 273.15;
return sicaklik;
}
void loop() {
int deger = analogRead(A0);
double sicaklik = Termistor(deger);
Serial.println(sicaklik);
if(sicaklik > 30){
digitalWrite(led,HIGH);
digitalWrite(yesilled,LOW);
digitalWrite(buzzer,HIGH);
}
else{
digitalWrite(led,LOW);
digitalWrite(yesilled,HIGH);
digitalWrite(buzzer,LOW);
}
delay(250);
}
BU KODLARI YAZIN VE BUZZERI 4. PİNE YEŞİL LEDİ 3. PİNE TAKIN<==
5 K LIK NTC İÇİN DEĞERLERDE NELERİ DEĞİŞTİRMELİYİM ?
TAM tersi olarak algılıyor. hava 10 derece ama 80 derece olarak algılıyor ayrıca hava ısınınca dereceyi eksilerde gösteriyor.
#include den sonra hangi kütüphaneyi ekleyeceğiz
sıcaklığa göre rgb led yanmasını isterseniz
2. pine kırmızı
3. pine mavi
4. pine yeşil
ekleyerek yapabilirsiniz.
SORU 1: Bunu nodemcu ile çalıştırmak istediğimde nodemcu üzerinde 5 volt yok. nasıl bir düzenek olmalı ntc ye bağlı direnci azaltarak yapılabilir mi?
#include
#define ledk 2
#define ledm 3
#define ledy 4
void setup() {
Serial.begin(9600);
pinMode(ledk,OUTPUT);
pinMode(ledm,OUTPUT);
pinMode(ledy,OUTPUT);
}
double Termistor(int analogOkuma){
double sicaklik;
sicaklik = log(((10240000 / analogOkuma) – 10000));
sicaklik = 1 / (0.001129148 + (0.000234125 + (0.0000000876741 * sicaklik * sicaklik)) * sicaklik);
sicaklik = sicaklik – 273.15;
return sicaklik;
}
void loop() {
int deger = analogRead(A0);
double sicaklik = Termistor(deger);
Serial.println(sicaklik);
if(sicaklik > 27){
digitalWrite(ledk,HIGH);
digitalWrite(ledm,LOW);
digitalWrite(ledy,LOW);
}
else if(sicaklik < 24){
digitalWrite(ledk,LOW);
digitalWrite(ledm,HIGH);
digitalWrite(ledy,LOW);
}
else{
digitalWrite(ledk,LOW);
digitalWrite(ledm,LOW);
digitalWrite(ledy,HIGH);
}
delay(2000);
}
Merhaba,
Sitenizden aldığımız proje Setinde NTC sensörü çıkmadı ama LM35 var. LM35 üç bacaklı olduğu için nasıl ikame edeceğimizi bilmiyoruz. Yardımcı olur musunuz
Merhaba,
videodaki projeyi yaptim. aldığım değerler – olarak çıkıyor(-22.5) gibi sicaklik verdiğimde ise bu deger alta iniyor (-18.5) gibi bu neden oldu yardım edermisiniz anlayamadım.
Bir şey sormak istiyorum. koddaki en başta “#include” kelimesinden sonra hangi kütüphaneyi yazacağız?
Çünkü hata veriyor “#include”den sonra bir kütüphane adı girin diye hata veriyor. Yardımcı olursanız sevinirim.
#include
Ben bu uygulamada 10K NTC termistör kullandım ve seri port ekranında -44.20 gibi anlamsız değerler var. Bunu nasıl değiştirebilirim benim elimdeki 10K NTC termistör. Yardımcı olursanız sevinirim
Bir şey sormak istiyorum. koddaki en başta “#include” kelimesinden sonra hangi kütüphaneyi yazacağız?
Çünkü hata veriyor “#include”den sonra bir kütüphane adı girin diye hata veriyor. Yardımcı olursanız sevinirim.
Yanıtla
O satırı direkt olarak silebilirsiniz.