Manometer

DOWNLOAD FILE MANOMETER

Proyek kita sekarang adalah membuat sensor tekanan difrensial menggunakan manometer type U, prinsip dari manometer ini adalah dua buah bejana berhubungan yang diisi cairan. Permukaan kedua cairan dalam manometer U ditentukan oleh perbedaan tekanan di kedua sisi bejana. Jika tekanan di satu beja lebih rendah maka permukaan cairannya menjadi lebih tinggi. Perbedaan ketinggian cairan inilah yang akan diukur oleh instrumen yang akan kita buat.

Salah satu cara untuk mendeteksi ketinggian cairan di dalam sebuah benda adalah dengan cara mengukur kapasitansi cairan tersebut. Salah satu bejana dalam manometer dipasang dua buah plat konduktor  yang berfungsi sebagai dua keping sejajar. Cairan manometer berfungsi sebagai dielektrik. Perubahan volume yang dipindahakan di antara dua bejana berhungan menyebabkan terjadinya perubahan nilai kapasitansi. Perubahan kapasitansi ini digunakan untuk menghasilkan frekuensi yang berubah sebanding dengan perubahan kapasitansi.

TEKANAN → KETINGGIAN CAIRAN → KAPASITANSI → FREKUENSI → JUMLAH PULSA

Rangkaian anta mukanya menggunakan IC 555 yang dirangkai sebagai astabil multivibrator, dengan plat konduktor dan cairan manometer sebagai pengganti kapasitornya. Output pulsa dari pin 3 IC 555 dihitung oleh mikrokontroler di dalam modul Digihadiy kemudian menampilkannya secara grafis ke LCD.

#define F_CPU 1000000UL
#include <avr/io.h>
#include <avr/pgmspace.h>
#include <util/delay.h>

#include “pcd8544.h”
#include “main.h”
#include “avr/interrupt.h”

#define FSD 750
#define F_offset 13100

unsigned char t,d1,d2,d3,d4,d5,d6;
unsigned long press,timer1,v1,bar,xplot1,xplot2,yplot1,yplot2;

void LcdHex( LcdFontSize size, byte x, byte y, byte data_ )
{
byte h1,h2;
h1=data_&0xf0;
h1=h1>>4;
h2=data_&0x0f;
if(h1<10)h1+=0x30;else h1+=0x37 ;
if(h2<10)h2+=0x30;else h2+=0x37 ;
LcdGotoXYFont(x++,y);
LcdChr (size, h1 );
LcdGotoXYFont(x++,y);
LcdChr (size, h2 );
}

void LcdWord( LcdFontSize size, byte x, byte y, unsigned long data_ )
{
unsigned long h;
h=data_;
d1=((h%=1000000)/100000)+48;
d2=((h%=100000)/10000)+48;
d3=((h%=10000)/1000)+48;
d4=((h%=1000)/100)+48;
d5=((h%=100)/10)+48;
d6=(h%=10)+48;
LcdGotoXYFont(x++,y);
LcdChr (size, d1 );
LcdGotoXYFont(x++,y);
LcdChr (size, d2 );
LcdGotoXYFont(x++,y);
LcdChr (size, d3 );
LcdGotoXYFont(x++,y);
LcdChr (size, d4 );
LcdGotoXYFont(x++,y);
LcdChr (size, d5 );
LcdGotoXYFont(x++,y);
LcdChr (size, d6 );
}

void Timer1Init()
{
TCCR1B=0b00000110;
}

void Timer0Init()
{
TCCR0=4;
}

ISR(TIMER0_OVF_vect)
{
TCNT0=0;
timer1=TCNT1;
TCNT1=0;
}

int main()
{
LcdInit();
LcdContrast(0x7F);
LcdClear();
LcdImage(waitImage);
LcdUpdate();
_delay_ms(200);
LcdClear();
LcdUpdate();
Timer1Init();
Timer0Init();
TIMSK|=(1<<TOIE0);
sei();
DDRD=0b11100000;
while(1)
{
v1=v1+timer1;
t++;
if(t==5)
{
if(xplot1>84)
{
xplot1=0;
LcdClear();
}
t=0;
press=v1/5;
v1=0;
press-=F_offset;
if(press>FSD)press=0;
bar=(press*84)/FSD;
if(press>600)PORTD|=(1<<7);
if(press<300)PORTD&=~(1<<7);
xplot2=xplot1+1;
yplot2=(press*35)/FSD;
yplot2=47-yplot2;
LcdWord(FONT_1X,8,1,press);
LcdSingleBar(1,12,3,84,PIXEL_OFF);
LcdSingleBar(1,12,3,bar,PIXEL_ON);
LcdLine(xplot1,xplot2,yplot1,yplot2,PIXEL_ON);
yplot1=yplot2;
xplot1=xplot2;
}
LcdWord(FONT_1X,1,1,timer1);
LcdUpdate();
_delay_ms(50);
}
}

DOWNLOAD FILE MANOMETER

~ by den-wam on September 27, 2010.

2 Responses to “Manometer”

  1. bisa ngukur sensor lain ?

  2. […] atau manometer U. […]

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

 
%d bloggers like this: