Termometer Digital

by clementlie03 in Circuits > Electronics

450 Views, 1 Favorites, 0 Comments

Termometer Digital

FPGA.jpg

Anggota:

Clement (2501961123)

Michael Angelo Chandra (2540131481)

Kenny Christiano Alvarez (2540119482)

John Lukito (2540124223)


Suhu ruangan menjadi salah satu aspek yang penting untuk beberapa tempat dan pekerjaan. Tempat tempat seperti laboratorium, rumah sakit dan beberapa industri yang harus terus melakukan monitoring terhadap suhu ruangan agar kualitas produknya terjaga tentunya sangat membutuhkan suatu alat pengukur suhu ruangan yang akurat. Apabila pengukuran suhu ruangan tidak akurat, kerugian secara ekonomi dapat terjadi karena menurunnya kualitas produk dan bahkan dapat menyebabkan kerusakan secara total.


Monitoring suhu ruangan di rumah sakit tentunya sangat amat penting untuk menjaga kualitas obat-obatan dan beberapa jenis cairan seperti vaksin dan lainnya. Suhu yang melampaui atau berada di bawah batas dapat memicu kerusakan produk dan dapat membahayakan nyawa. Oleh karena itu, orang orang yang bekerja di beberapa tempat ini harus mendata dan melakukan monitoring terhadap suhu ruangan secara jelih dan berkala.

Supplies


- FPGA

- Xilinx Vivado

- B to Micro-B Adapter

Solusi

Termometer yang digunakan seringkali merupakan termometer analog yang dapat memicu error dalam pembacaan suhu ruangan. Termometer analog juga seringkali membutuhkan waktu yang lama untuk memperlihatkan perubahan suhu yang terjadi. Untuk menyelesaikan masalah diatas. Pada instructables ini, kami sudah merancang sebuah alat pendeteksi suhu yang bersifat digital dengan berbasis FPGA. Termometer yang kami rancang dapat mengukur suhu dengan akurasi sampai dengan tiga angka di belakang koma dan dapat mengukur suhu secara cepat.

Objektif

Tujuan kami adalah menciptakan suatu alat prototype thermometer digital dengan menggunakan board FPGA. Kami juga ingin membuat thermometer digital yang dapat mengukur suhu secara akurat, cepat dan meminimalisir error dalam pembacaan suhu ruangan.


Kami berupaya agar pengguna yang akan sering melakukan pembacaan terhadap suatu suhu ruangan tidak perlu lagi melakukan pengecekkan suhu ruangan secara manual atau dengan menggunakan thermometer analog. 

Block Diagram

BD digsys.jpg

Pada pembuatan prototyping alat, kami membuat desain skematik kasar dari alat yang ingin kami ciptakan dengan mengandalkan alat-alat yang sudah ada. Kami menggunakan dua komponen yang sangat penting untuk merancang alat kami yaitu, FPGA Board Nexys A7 100T dan sensor suhu ADT7420. Sensor suhu ADT7420 sudah termasuk di dalam FPGA Board yang kami gunakan. 


Kemudian kami mulai melakukan riset mengenai penggunaan sensor suhu ADT7420, dimulai dengan melakukan riset dari datasheet dan pengaplikasiannya kepada FPGA Board yang kami gunakan. 


Setelah memahami komponen-komponen yang akan digunakan, kami lanjut ke tahap coding dengan menggunakan bahasa pemrograman VHDL. Setelah kami berhasil melakukan implementasi coding, kami menguji alat kami dan melakukan pengambilan data. 


Berikut kami tampilkan dokumentasi-dokumentasi pengerjaan kami, baik secara software maupun hardware. 

Metodologi

Pada pembuatan prototyping alat, kami membuat desain skematik kasar dari alat yang ingin kami ciptakan dengan mengandalkan alat-alat yang sudah ada. Kami menggunakan dua komponen yang sangat penting untuk merancang alat kami yaitu, FPGA Board Nexys A7 100T dan sensor suhu ADT7420. Sensor suhu ADT7420 sudah termasuk di dalam FPGA Board yang kami gunakan. 


Kemudian kami mulai melakukan riset mengenai penggunaan sensor suhu ADT7420, dimulai dengan melakukan riset dari datasheet dan pengaplikasiannya kepada FPGA Board yang kami gunakan. 


Setelah memahami komponen-komponen yang akan digunakan, kami lanjut ke tahap coding dengan menggunakan bahasa pemrograman VHDL. Setelah kami berhasil melakukan implementasi coding, kami menguji alat kami dan melakukan pengambilan data. 


Berikut kami tampilkan dokumentasi-dokumentasi pengerjaan kami, baik secara software maupun hardware.


Schematic

Schematic digsys.jpg

Hasil skematik dari coding yang kami implementasikan adalah seperti pada gambar di atas. Jika dilihat dari skematik di atas, terdapat dua input yaitu “sys_clk” dan “rst”. Sys_clk terhubung dengan clock internal dari FPGA Nexys A7 100-T yang bernilai 100MHz, lalu rst terhubung dengan toggle switch yang dapat menerima input dari pengguna. 


Kedua input tersebut dibutuhkan untuk melakukan mengendalikan komponen

“TempSensorCtl”. “TempSensorCtl” merupakan sebuah komponen yang mengendalikan komunikasi antara sensor suhu ADT7420 dengan “TMP_SCL” dan “TMP_SDA” dan suhu yang didapatkan akan dialihkan ke komponen “Display_Master” untuk diproses agar dapat menampilkan suhu pada 7 segment display. 


Output yang akan dihasilkan oleh “Display_Master” adalah “Common_A_Selected” untuk mengendalikan common anode yang aktif 7 segment display pada FPGA board yang kami gunakan. Kemudian, “Seven_Seg_Decoded” akan mengendalikan segmen mana saja yang akan menyala dari 7 segment display.

Alat

Alat.jpg

Diatas adalah gambar alat prototype kami yang kami rancang dengan menggunakan FPGA Board. Sesuai yang tadi sudah disebut, sensor suhu ADT7420 sudah tertanam di dalam board FPGA. Setelah itu, terdapat 7 segment display yang berfungsi untuk menampilkan suhu yang telah dibaca oleh sensor. 

Flowchart

FC digsys.jpg

Diatas adalah gambar dari flowchart cara kerja alat kami.

Code

Berikut kami lampirkan code VHDL dalam bentuk link Google Drive dan link GithHub yang dapat didownload dan diakses .


GitHub VHDL Temperature Sensor Tempera


Display Master


Display master merupakan code yang berfungsi untuk “memanggil” component-component yang mana component tersebut merupakan bagian-bagian dari code yang akan disatukan pada laman Display Master. Fungsi utamanya adalah layaknya suatu void yang digunakan untuk “memanggil” function.


Display Logic


Display Logic merupakan salah satu bagian component yang berfungsi sebagai fungsi penampil munculnya suhu yang telah didapat dari sensor suhu. Di dalam display logic, terdapat code yang berfungsi untuk melakukan pengoperasian seperti Two’s Complement, Double Dabble, dan pengoperasian tiga angka dibelakang koma yang kemudian akan ditampilkan ke 7 segment display. 


Ring Counter 8 Bit


Code ini berfungsi untuk melakukan konfigurasi Ring Counter. Kami menggunakan Ring Counter agar dapat menampilkan angka pada 7 segment display dan ring counter berfungsi untuk menampilkan angka-angka tersebut secara satu per satu.


Display Clock


Display Clock merupakan code yang berfungsi untuk menghasilkan clock lebih rendah dibandingkan clock internal board FPGA yang kami gunakan untuk menjalankan display seven segment.


Seven Segment Decoder


Code Seven Segment Decoder berfungsi untuk menentukan angka atau huruf apa saja yang ingin ditampilkan. Pada alat kami, kami ingin menampilkan angka dari 0-9, tanda negatif (-), huruf “C” dan tampilan kosong (blank).


Tempera


Code ini berfungsi layaknya seperti Master utama yang menghubungkan antar code agar dapat saling bekerja satu sama lain. Cara kerjanya pun mirip seperti Display Master yang telah dibahas di atas. Code Tempera akan “memanggil” code lainnya agar dapat terhubung dan bekerja satu sama lain. Code ini juga digunakan untuk menentukan input serta output utama. 


TempSensorCtl


Code TempSensorCtl ini berfungsi untuk mengendalikan komunikasi antara chip ADT7420 dengan chip FPGA Artix-7 pada board. Oleh karena itu, TempSensorCtl akan memanggil code TWICtl untuk menghasilkan dna menerima signal komunikasi. Selain itu chip ini juga akan mengubah data dari chip ADT7420 menjadi bentuk yang dapat dibaca oleh code display


TWICtl


Code TWICtl ini berfungsi untuk menghasilkan dan menerima signal komunikasi dengan chip ADT7420 berdasarkan perintah TempSensorCtl.


Data

datadigsys.jpg

Evaluasi Dan Kesimpulan

Implementasi pembuatan termometer digital dengan Board FPGA dapat bekerja dengan presisi tiga angka di belakang koma. Perubahan suhu ruangan menyebabkan perubahan display suhu juga di seven segment display

Saran

  • Membuat casing luar untuk termometer digital. 
  • Menambahkan decimal point agar lebih mudah dibaca.
  • Menambahkan symbol derajat agar pengguna tidak bingung saat membaca.

Referensi

Datasheet

Video Penjelasan

QR VIDEO DIGSYS.jpg

QR Code Video Penjelasan