Ana Sayfa Arduino Arduino ile Max6675 K Tipi Termokupl Kullanımı

Arduino ile Max6675 K Tipi Termokupl Kullanımı

9 min read
1
0
9,915

 

Arduino Uno

Arduino Uno ‘nun 14 tane dijital giriş / çıkış pini vardır. Bunlardan 6 tanesi PWM çıkışı olarak kullanılabilir. Ayrıca 6 adet analog girişi, bir adet 16 MHz kristal osilatörü, USB bağlantısı, power jakı (2.1mm), ICSP başlığı ve reset butonu bulunmaktadır. Arduino Uno bir mikrodenetleyiciyi desteklemek için gerekli bileşenlerin hepsini içerir. Arduino Uno ‘yu bir bilgisayara bağlayarak, bir adaptör ile ya da pil ile çalıştırabilirsiniz.

Şekil 1. Arduino Uno SMD

K-tipi Termokupl Sıcaklık Sensörü – Arduino MAX6675 Thermocouple Modülü

Termokupl veya ısıl çift, bir tür sıcaklık sensörüdür. Farklı iki iletken malzemeden oluşur. Bu malzemelerin iki ucu birleştirilir (sıcak nokta) ve ısıtılırsa, diğer uçlarda (soğuk nokta) gerilim elde edilir. Bu gerilimin değeri kullanılan malzemenin cinsine ve birleşim noktasının ısınma miktarına bağlıdır. Sıcak nokta ile soğuk nokta sıcaklık dağılımı nasıl olursa olsun üretilen gerilim sıcak ile soğuk nokta arasındaki sıcaklık farkıyla orantılıdır.

Bu ürün, mikrokontrolcü kartlarınızla oldukça hassas sıcaklık ölçümü yapmanıza olanak tanır. MAX6675 termokupl güçlendirici modülü ve K-tipi termokupldan oluşmaktadır. Soğuk nokta kompanzasyonuna sahiptir (-20 ~ +80 °C) ve 0.25 °C hassasiyete sahiptir.

Şekil 2. K-tipi Termokupl ,Arduino MAX6675  Modülü

16*2 Display

LCD, Liquid Crystal Display yani Sıvı Kristal Ekran elektrikle kutuplanan sıvının ışığı tek fazlı geçirmesi ve önüne eklenen bir kutuplanma filtresi ile gözle görülebilmesi ilkesine dayanan bir görüntü teknolojisidir.

LCD lerde bulunan sıvı kristaller sıcaklığa ve madde yapısına göre termotropik ve liyotropik fazlarda bulunabilirler. Termotropik fazlı sıvı kristallerin bir alt grubu olan nematik likit kristallerin, kıvrık nematikler (twisted nematics – TN) adı verilen çeşidi uygulanan akımın gerilimine bağlı olarak düz konuma yani kıvrık olmayan nematikler haline gelir. Nematik sıvı kristaller, LCD lerin yapılmasını mümkün kılan sıvı kristal fazıdır. LCD lerin yapılabilmesi için ışık polarize edilebilmeli, sıvı kristaller polarize edilmiş ışığı geçirebilmeli, sıvı kristallerin molekül dizilimi elektrik akımı ile değiştirilebilmeli ve elektriği ileten bir yapıya sahip olunmalıdır.

Şekil 3. Lcd Pin Fonksiyonları

VEE : Kontrast girişine bağlanan direnç ile LCD panelin kontrastı ayarlanabilir. Direnç değeri yükseldikçe kontrast düşer, azaldıkça ise kontrast yükselir.

RS : Lcd ye komut mu yoksa data mı gönderileceğini belirler. RS girişi “0” (ground) durumundayken komut saklayıcısı, +5V oldugundaysa veri saklayıcısı seçilmiş olur.

RW : Lcd den okuma mı yoksa lcd ye yazma yapılacağını belirler. RW girişi toprağa bağlandığında yani “0” durumundayken LCD yazma modundadır.

E : Enable ucu LCD ve pinler arasındaki gerçek veri alışverişini sağlayan bacaktır. Bu girişi mikrodenetleyiciye program aracılığıyla tanıttıktan sonra PIC kendisi veri gönderileceği zaman bu bacaga enable pulsu gönderir.

D0 – D7 : Data hattı olan bu pinler doğrudan mikrodenetleyicinin bir portuna bağlanır. Veri 4 ya da 8 bitlik veri yolu ile gönderilebilir.

Programımız

#include <max6675.h>

#include <LiquidCrystal.h>

#include <Wire.h>

int thermoDO = 6;

int thermoCS = 7;

int thermoCLK = 8;

int led1=9;

int led2=10;

MAX6675 thermocouple(thermoCLK, thermoCS, thermoDO);

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

uint8_t degree[8]  = {140,146,146,140,128,128,128,128};

void setup() {

Serial.begin(9600);

pinMode(led1, OUTPUT);

pinMode(led2, OUTPUT);

lcd.begin(16, 2);

lcd.createChar(0, degree);

delay(500);

}

void loop() {

// basic readout test, just print the current temp

lcd.clear();

lcd.setCursor(0, 0);

lcd.print(“_MAX6675 test_”);

lcd.setCursor(0,1);

lcd.print(thermocouple.readCelsius());

#if ARDUINO >= 100

lcd.write((byte)0);

#else

lcd.print(0, BYTE);

#endif

lcd.print(“C”);

if (thermocouple.readCelsius()<30&&thermocouple.readCelsius()>=0){

lcd.print(“=normal=”);

}

if (thermocouple.readCelsius()>30&&thermocouple.readCelsius()<=40){

lcd.print(“=sicak=”);

digitalWrite(led1, LOW);

digitalWrite(led2, HIGH);

}

if (thermocouple.readCelsius()>40){

lcd.print(“=coksicak=”);

digitalWrite(led1, HIGH);

digitalWrite(led2, LOW);    delay(1000);}

 

Devre Şeması ve Bağlantılar

Şekil 4. Devre Şeması

LCD      DB7       -> Arduino Digital 2

             DB6       -> Arduino Digital 3

             DB5       -> Arduino Digital 4

              DB4       -> Arduino Digital 5

                E         -> Arduino Digital 11

                RS        -> Arduino Digital 12

 MAX6675 SO -> Arduino Digital 6

                    CS->  Arduino Digital 7

                    SCK->  Arduino Digital 8

Kaynakça

  1. http://www.robotiksistem.com/lcd_yapisi_calismasi.html
  2. http://www.pyromation.com/Downloads/Data/emfk_c.pdf
  3. https://github.com/adafruit/MAX6675-library (ARDUİNO KÜTÜPHANESİ)

 

Çalışma Videosu;

Başka bir yazıda görüşmek dileğiyle…

Buna Benzer Yazılar Göster !
Daha Fazlasını Yükle - Ekrem Keleş
Daha Fazla Göster -  Arduino

1 Yorum

  1. Önder

    24 Mayıs 2020 at 19:29

    merhaba iyi günler kodlarda hata almaktayım stabil çalışmıyor termokupl

    Reply

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Bak Bakalım ?

Matlab Simulink ile STM32F4 Servo Motor Kontrolü

Bu uygulamada STM32F4 ve MATLAB & Simulink kullanılarak Servo Motor kontrolü gerçekleş…