LabVIEW Team Indonesia

cancel
Showing results for 
Search instead for 
Did you mean: 

Komunikasi Adruino dengan Thermocouple MAX6675

Salam...

Saya sedang mencoba untuk membaca suhu menggunakan Thermocuple MAX6675, Arduino MEGA2560 dengan pemrograman menggunakan LabVIEW

Konfigurasinya adalah sebagai berikut:

     - vcc : vcc

     - gnd : gnd

     - csk/sck : digital pin 46

     - cs : digital pin 44

     - so : digital pin 42

Saya menggunakan LabVIEW 2014 dengan LIFA dan LINX terpasang di dalam. Sistem operasi yang saya gunakan Windows 7 ultimate SP1, 64-bit.

Saya sudah mencoba beberapa program yang ada di https://www.labviewmakerhub.com/forums/viewtopic.php?f=12&t=75 tapi hingga sekarang belum ada program yang dapat berjalan.

Mohon pencerahannya, terimakasih banyak

0 Kudos
Message 1 of 6
(14,610 Views)

satahu saya termocouple tidak perlu menggunakan vcc, karena sudh bisa

menghasilkan daya sendiri.

. tp yg perlu justru adalah rangkaian tambahan yaitu "cold junction"

coba pelajari dulu tentang cold junction

jadi urutan instalasinya

termocouple -> cold jungtion -> arduino -> komputer

Pada 9 Feb 2016 22.05, "LiliMcDonald" <web.community@ni.com> menulis:

NI Community <https://decibel.ni.com/content/index.jspa>

Komunikasi Adruino dengan Thermocouple MAX6675 reply from LiliMcDonald

<https://decibel.ni.com/content/people/LiliMcDonald> in *LabVIEW Team

Indonesia* - View the full discussion

<https://decibel.ni.com/content/message/129225#129225>

0 Kudos
Message 2 of 6
(13,793 Views)

Dear Mas Baskara,

Hallo Mas, sudah dapat solusi dari permasalahannya? Saya coba bantu ya. Saya mecoba membaca sensor thermocouple MAX6675 dengan Arduino Uno yang kemudian nilai temperaturnya akan saya tampilkan di PC yang terinstal LabVIEW. Kalau kita lihat MAX6675 menggunakan komunikasi serial SPI ya. Berarti kita harus bisa membaca data serial keluaran MAX6675.

Wiring

Seperti yang saya katakan di awal, saya ingin membaca sensor thermocouple dengan Arduino Uno. Karena hardware tidak ada di sekitar saya, maka saya coba lakukan dengan simulasi menggunakan Proteus 7.8 sp2. Oke, wiring-nya adalah seperti berikut.

Proteus.jpg

Wiring antara Arduino dengan MAX6675.

SO - PIN4

CS - PIN5

SCK - PIN6

Kemudian bagian RX dan TX Arduino saya hubungkan ke RS232/COMPIM. Jadi yang saya lakukan di sini adalah membuat si Arduino membaca data serial si MAX6675, kemudian mengirimkan data tersebut ke PC dengan komunikasi serial RS232. Selanjutnya adalah programming Arduino.

Programming Arduino

Sejujurnya saya belum pernah akses komunikasi SPI dengan Arduino. Tapi tidak menjadi masalah karena ada beberapa tutorial di internet cara akses MAX6675, terlebih ada yang berbaik hati memberikan library MAX6675-serial-thermocouple Arduino. Jadi kita tinggal baca data MAX6675 dengan library tersebut, lalu mengirimkannya ke PC dengan serial RS232. Code-nya adalah sebagai berikut.

ArduinoCode2.JPG

Setelah kita dapatkan data MAX6675, selanjutnya kita tinggal mengirimkannya ke PC. Sebelumnya pastikan data yang dikirimkan Arduino sesuai dengan yang kita harapkan. Saya gunakan Virtual Terminal untuk mengecek data serial keluaran Arduino. Dan setelah saya lihat datanya, ternyata tidak sesuai yang saya harapkan (karena saya berharap data tersebut merupakan data temperatur). Kemudian saya coba variasikan temperatur thermocouple dari 0 s.d. 200 derajat celcius. Kemudian saya dapatkan grafik temperatur pada thermocouple terhadap data serial keluaran MAX6675 seperti gambar berikut.

TempVsDataserial.PNG

Jika kita perhatikan pada temperatur 0 s.d. 200 derajat celcuis grafiknya cukup linier (mungkin karena hanya thermocouple simulasi jadi segala sesuatunya dianggap ideal). Ini menandakan bahwa data serial keluaran MAX6675 sudah oke, dan kita hanya perlu melakukan regresi linier. Selanjutnya data tersebut saya gunakan untuk melakukan regresi menggunakan least square dan kita dapatkan nilai regresi y = 2.008678x - 2057.47, seperti itu.

Selanjutnya kita modifikasi program Arduino seperti berikut.

ArduinoCode.JPG

Nah, setelah kita dapatkan data temperatur yang kita inginkan, selanjutnya kita buat aplikasi dengan LabVIEW di PC yang bertugas untuk membaca data serial. Kemudian data serial (yang tak lain dan tak bukan merupakan data temperatur) tersebut ditampilkan pada indikator.

Membuat Aplikasi pada LabVIEW

Sebelum kita memulai memprogram, kita bayangkan terlebih dahulu UI, alur dan isi program kita seperti apa. Jika dibutuhkan buatlah flowchart dan statemachine diagram sebelum melakukan pemrograman. Oke, program yang saya bayangkan adalah seperti ini.

LabVIEW.jpg

Kemudian saya mulai buat blockdiagram-nya seperti ini.

BlockDiagram.jpg

Selanjutnya, kita tinggal jalankan proteusnya dan LabVIEW-nya. Eh, sebelumnya kita harus buat port serial virtualnya terlebih dahulu. Saya gunakan Virtual Serial Port Emulator (VSPE) untuk membuat dan menghubungkan port virtualnya. Saya buat PORT1 terhubung dengan PORT2. Lalu saya setting COMPIM pada proteus PORT1 dan VISA channel pada LabVIEW PORT2. Lalu tinggal klik run! Dan, yuhuuu.. Temperature monitoring dengan Arduino dan LabVIEW berhasil.

LabVIEW.PNG

Demikian sedikit yang bisa saya bagi, semoga bisa membantu memecahkan permasalahan yang Mas Baskara hadapi. Seluruh file terlampir ya. Oh iya, sistem ini memiliki kekurangan yakni pembacaan data dari MAX6675 terkadang bernilai nan, sehingga nilai temperatur yang ditampilkan adalah nol. Tapi bisa kita manipulasi pada monitoing di LabVIEW-nya sebetulnya. Atau mungkin ada yang bisa memberikan solusi dengan masalah ini?

Salam,

Dika Abadianto

Message 3 of 6
(13,793 Views)

Halo kak, saya ingin bertanya, jika saya menggunakan ni daq USB 6008 menggantikan posisi arduino itu apakah output dari max6675 bisa terbaca? Terimakasih 🙏

0 Kudos
Message 4 of 6
(4,233 Views)

Halo Hallidaf,

Boleh bantu menjawab. sepengetahuan saya berdasarkan spesifikasi Thermocouple MAX6675, output dari termokopel tersebut menggunakan interface SPI, sedangkan NI USB 6008 secara inheren tidak mensupport interface komunikasi digital (seperti SPI, UART dll) karena secara spesifikasi DIO yang ada berdasarkan software timing. Sehingga NI USB bukan merupakan DAQ yang cocok untuk membaca data dari MAX6675.

 

Mungkin bisa dilakukan "bit-bang"-ing melalui DIO jika SPI yang dimiliki kecepatan yang sangat rendah, namun akan cukup susah menurut saya. saya menyarankan menggunakan NI USB 8415 yang didesain untuk interface komunikasi.

 

Untuk referensi, saya menemukan topic grub berikut :

https://forums.ni.com/t5/Multifunction-DAQ/SPI-device-with-NI-USB-6009/td-p/603919

yang membahas NI USB 6009 untuk komunikasi serial. karena USB 6008 dan 6009 masih saudara, saya kira bisa digunakan untuk referensi yang sama.

 

CMIIW, Semoga Membantu.

Septyawan

0 Kudos
Message 5 of 6
(4,222 Views)

okee makasih banyak atas sarannya mas septyawan :))

0 Kudos
Message 6 of 6
(4,218 Views)