Minggu, 25 November 2012

PEMANTAU SUHU PADA PC

Oleh: Rahmad Syah Nasution


Hasil suhu yang ditampilkan pada PC dapat dicetak sesuai tanggal, bulan dan jam pada saat suhu mendeteksi dan hasil suhu juga dapat ditampilkan dalam bentuk grafik untuk melihat traffic hasil kenaikan suhu.


Bagaimana melakukan pemantauan dan/atau pengontrolan melalui komputer menggunakan media komunikasi serial dengan tingkat tegangan RS232 melalui port DB 9 / port serial pada PC dengan menggunakan Delphi & sebagai pengendali komunikasi serial (menampilkan data serial dari mikrokontroller ke hyperterminal).
Penampil data sensor suhu pada PC dalam bentuk angka, grafik  menampilkan tulisan/text dari delphi ditampilkan pada LCD pada mikrokontroller.

KOMUNIKASI SERIAL MIKROKONTROLER AVR

Oleh: Rahmad Syah Nasution

Komunikasi Serial adalah yang menghubungkan antara mikrokontroler dengan PC (Personal Computer) dengan cara merubah tegangan sinyal RS-232 ke level tegangan TTL (Translator-tanslator logic) agar dapat diterima oleh mikrokontroler. Komunikasi Serial ini berfungsi untuk pengiriman data suhu menggunakan kabel ke aplikasi pemantau suhu. Gambar rangkaian komunikasi Serial dapat dilihat di bawah ini:

Program:

printf("%dA",Tr1);
printf("%dB",Tr2);
printf("%dC",Tr3);
printf("%dD",Tr4);

Maksud dari di atas adalah data yang akan dikirmkan pada variable Tr1, Tr2, Tr3 dan Tr4 akan kirimkan melalui komunikasi serial dalam bentuk angka (%d) dan huruf (A). Printf adalah perintah untuk pengiriman ke komunikasi serial.

Sistem Minimum Mikrokontroler AVR ATMega 16, ATMega32 dan ATMega 8535


    Bagi teman-teman yang mau membuat tugas akhir tentang Hardware berbasis mikrokontroler ini saya punya rangkaian skematik sismin untuk mikrokontroler jenis AVR ATMega 16, ATMega32 dan ATMega 8535 dan skematik ini sudah teruji keberhasilannya dan tidak perlu diragukan lagi.

      Nah... Bila teman-teman yang belum merancang rangkaian dan jika pun sudah membuat rangkaian tetapi rangkaian belum berhasil sebaiknya mencoba latihan dulu dengan menggunakan sismin untuk menghemat biaya, karena setiap rangkaian yang telah dirancang dan belum pernah teruji itu belum tentu berhasil, karena banyak kendala-kendala yang belum kita ketahui. Dari pada bongkar rangkaian dan membuat ulang lagi waktu terbuang, tenaga berkurang, jadi bahan pikiran dan biaya bertambah mendingan modal coba-coba dulu deh ... hi hi hi.

         Rangkaian ini sudah di lengkapi rangkaian clock, reset, komunikasi serial dan port untuk downloader anggap aja seperti trainer di kampus. Tetapi trainer di kampus sulit untuk memahami jalur pcb nya, soal nya jalur nya sangat banyak sementara yang di perlukan hanya beberapa saja, kalau rangkaian sismin ini gampang deh.. asalkan teliti saja pada saat meilihat jalur dan jangan lupa lagi belajar sismin itu berdasarkan datasheet lo ..


Untuk mendapatkan skematik dan software dapat mengklik download di bawah ini:

Skematik sismin :

PCB Wizard 3.50 Pro Unlimited

Minggu, 08 Juli 2012

RANGKAIAN ALAT PEMANTAU SUHU Menggunakan Sensor LM35 dan Mikrokontroller ATMega 16



Gambar 3D Alat
Gambar jalur PCB
Gambar Rangkaian keseluruhan

       Sensor LM35 merupakan sensor suhu yang dapat mendeteksi suhu yang terjadi dengan memiliki tingkat presisi yang tinggi. Sensor LM35 mempunyai  tegangan keluaran yang linearitas terhadap suhu celcius.
Sensor suhu LM35 terdiri dari tiga pin kaki. Kaki pertama PIN Vout berfungsi sebagai pin tegangan keluaran, kaki kedua PIN +Vs berfungsi sebagai pin sumber tegangan dan kaki PIN GND berfungsi sebagai pin ground.
Tegangan yang dibutuhkan untuk sensor LM35 sebasar 5V dan memiliki parameter bahwa setiap kenaikan skala 1°C tegangan keluarannya 10mV sehingga diperoleh persamaan sebagai berikut:

VLM35=Suhu*10mV..............................................................

Misalnya pada perancangan menggunakan sensor suhu LM35 keluaran ADC menghasilk suhu 20°C, sehingga saat suhu 20°C tegangan keluaran sensor suhu LM35 (20°C*10mV)= 200mV=0,2V.


Prongram yang digunakan adalag bahasa C :
Program ini untuk menampilkan Suhu1, Suhu2, Suhu 3 dan Suhu 4. Karena sensor yang saya gunakan disini adalah 4 sensor.

#include <mega16.h>
// Alphanumeric LCD Module functions
#asm
   .equ __lcd_port=0x15 ;PORTC
#endasm
#include <lcd.h>
#include <delay.h>
#include <stdio.h>
// Standard Input/Output functions
#define ADC_VREF_TYPE 0x40 // set Vref menjadi ADC=AVCC 0x40(dari code)
unsigned int v,adc; // yg tulisan nya unsigned int untuk menampilkan variable
unsigned int T1,T2,T3,T4;
char buf[16]; // deklarasi variabel array ?
unsigned int read_adc(unsigned char adc_input)
{
ADMUX=adc_input|ADC_VREF_TYPE;//?
ADCSRA|=0x40;
while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10;
return ADCW; }
void main(void)
{
// ADC initialization
// ADC Clock frequency: 125.000 kHz
// ADC Voltage Reference: AVCC pin
// ADC Auto Trigger Source: None
ADMUX=ADC_VREF_TYPE;
ADCSRA=0x87;
// LCD module initialization
lcd_init(16);
lcd_clear();
delay_ms(1000);
while (1)
      
      {      
       adc=read_adc(0); //baca ADC0 (PA0)
       v=(adc*5)/1.024; //hasilnya dikalikan 5 mV 
       T1=(v/10)-1; //konversi ke suhu (Celcius)
       
       adc=read_adc(1); 
       v=(adc*5)/1.024;  
       T2=(v/10)-1;
       
       adc=read_adc(2); 
       v=(adc*5)/1.024;  
       T3=(v/10)-1;
       
       adc=read_adc(3); 
       v=(adc*5)/1.024;  
       T4=(v/10)-1; 
       
       lcd_clear();
       lcd_putsf("T1=     T2=  ");
       lcd_gotoxy(0,1);
       lcd_putsf("T3=     T4=  "); 
       
       sprintf(buf,"%d",T1);  // harus di rubah dari int to str 
       lcd_gotoxy(3,0);        // untuk ditampilkan ke kolum 3 dan baris 0
       lcd_puts(buf);          // untuk di tampilkan ke buf(lcd)   
       lcd_putchar(0xdf);
       lcd_putchar('C');       // C di kasi tanda petik karena karakter
                         // klu masih 1 karakter perintahnya lcd_putchar('C') kalau 2 karakter lcd_putsf('C').
       sprintf(buf,"%d",T2);  
       lcd_gotoxy(11,0);        
       lcd_puts(buf);            
       lcd_putchar(0xdf);
       lcd_putchar('C'); 
       
       sprintf(buf,"%d",T3);
       lcd_gotoxy(3,1);
       lcd_puts(buf);
       lcd_putchar(0xdf);
       lcd_putchar('C');
       
       sprintf(buf,"%d",T4);
       lcd_gotoxy(11,1);
       lcd_puts(buf);
       lcd_putchar(0xdf);
       lcd_putchar('C');
delay_ms(1000);
}
}