Widget HTML Atas

Rancang Bangun Rangkaian Pendeteksi Gas MQ-5 dengan Bahasa Bascom AVR dan ATMega16

Hi teman-teman, Kembali lagi bersama saya pemilik blog "Kepintaran Titipan"

Pada postingan terbaru ini, kita akan belajar cara membuat Rancang Bangun Rangkaian Pendeteksi Gas MQ-5 dengan Bahasa Bascom AVR dan ATMega16. 

Tetap sama seperti postingan sebelumnya, dimana rancangan akan kita buat menggunakan Isis Proteus 7.10. Bagi teman-teman yang belum punya bisa di download di Google. Seperti apa caranya langsung kita lihat penjelasannya.

Komponen:

  1. Mikrokontroller ATMega16
  2. Crystal
  3. LCD
  4. Sensor Gas MQ-5
  5. Sounder/Buzzer
  6. Led Yellow
  7. Led Blue
  8. Led Green
  9. Led Red
  10. Resistor
  11. Potensiometer
  12. Capasitor
  13. Logic toggle
  14. button
Prinsip Kerjanya adalah Output dari sensor akan menjadi masukan masukan ke ATMega16 yang nantinya akan diubah menjadi data digital oleh ATMega16 melalui pin-pin ADC nya sendiri. Sensor gas merupakan data Analog terhubung ke Port A yang merupakan pin ADC (Analog Digital Converter). Dimana Port A akan berfungsi jika AREF dan AVCC dari ATMega diberi Power/Tegangan.

Pada saat LCD menampilkan "Selamat Datang" yang diatur dari bahasa pemrograman pada saat yang sama akan aktif LED berwarna kuning selama 1 detik. Kemudian LCD akan menampilkan "Detector Gas" dan "Satuan PPM" bersamaan dengan aktifnya LED berwarna biru selama 1 detik.

Pada saat Gas terdeteksi dalam hal ini dengan cara memberikan logika 1 ( HIGH) pada logic toggle namun belum sama atau lebih besar dari tegangan yang kita program melalui bahasa, pada saat yang sama LED berwarna hijau aktif. Akan tetapi ketika Tegangan sudah sama atau lebih besar, otomatis LED berwarna merah akan aktif dan indikator Buzzer akan aktif. Buzzer berfungsi sebagai indikator dengan output Suara.

Berikut Gambar skematik menggunakan Proteus 7.10


Adapun Bahasa Pemrograman yang saya gunakan sebagai berikut.

'------------------

'Alat Ukur Gas
'by Jetro Rajagukguk
'------------------

$regfile = "m16def.dat"
$crystal = 12000000
Config Lcdpin = Pin , Rs = Portc.0 , E = Portc.1 , Db4 = Portc.2
Config Lcdpin = Pin , Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portc.5
Config Lcd = 16 * 2
Config Adc = Single , Prescaler = Auto , Reference = Avcc

'------------------------ Konfigurasi
Ddrb.0 = 1                                                  'portB.0 sebagai output
Ddrd = &B11111111                                           'portD sebagai output
'------------------------ Type

Dim Gas_ref As Word
Dim Gas As Single
Dim Lpg As String * 5
Dim Vol As String * 5
Dim Tegangan As Single
Dim Teganganx As Single
Dim A As Single
Dim Vo As Single
Dim X As Single
Dim Y As Single
Dim Rs As Single
Dim D As Single
Dim E As Single
Dim Ppm As Single
Dim Ro As Single
'------------------------
Deflcdchar 0 , 31 , 31 , 31 , 31 , 31 , 31 , 31 , 31
Deflcdchar 1 , 31 , 17 , 17 , 17 , 17 , 17 , 17 , 31
Cls
Cursor Off
Start Adc
'------------------------
 Upperline
  Lcd "Selamat Datang"
  Portd = &B11111100                                        'led kuning aktif
  Wait 1
  Cls

  Upperline
  Lcd "Detector Gas"
  Lowerline
  Lcd "Satuan ppm"
  Portd = &B11001111                                        'led biru aktif
  Wait 1
  Cls

Do
  Gas_ref = Getadc(0)                                       'Nilai tegangan ADC dr out sensor
  Gas = Gas_ref
  Ro = 633750                                               'kadar Rs dalam udara bersih (ADC minimal)

  Teganganx = Gas_ref / 1023
  Tegangan = Teganganx * 5.15                               'untuk nilai menampilkan tegangan

X = 5.15 - Tegangan
Y = X / Tegangan
Rs = Y * 10000                                              'untuk menemukan nilai Rs

D = Rs / Ro
E = 112.1 / D                                               'dari grafik excel ditemukan 112,1x^-0,68
Ppm = E ^ 1.58                                              '1/0.63
  Vol = Fusing(tegangan , "#.##")
  Locate 1 , 1
   Lcd "VOL="
  Locate 1 , 8
   Lcd Vol

  Locate 2 , 1
   Lcd "PPM=" ; Fusing(ppm , "#.##")
 If Tegangan < 4.45 Then
   Portd = &B11110011                                       'led hijau aktif
   Portb.0 = 0
   End If
   If Tegangan >= 4.45 Then
   Portd = &B00111111                                       'led merah aktif
   Portb.0 = 1                                              'buzzer aktif
   End If
Loop

Jika ada yang kurang jelas atau ada yang mau dikomentari silahkan, agar Blog ini semakin baik ke depannya. Jika ada yang berminat untuk bernegosiasi dengan bahasa pemrograman silahkan Hubungi nomor yang tertera dibagian Beranda dari Blog ini.

Silahkan ditonton Vidio Tutorialnya juga biar lebih jelas.
Semoga bermanfaat Teman - teman.















Tidak ada komentar untuk "Rancang Bangun Rangkaian Pendeteksi Gas MQ-5 dengan Bahasa Bascom AVR dan ATMega16"