Ads 468x60px

Sensor Gas Metana TGS 2611,,, Apa an tuh ???

Salam damai semua pembaca....Senajan KENTHIR, nanging kebak PIKIR.
 
Setelah perut terisi makanan,,,sang murid kembali membuka catatan Ki Sableng (wes lethek suwek suwek, wkwkwk). Ternyata didapat lagi sebuah cerita tentang sensor gas karbondioksida. (wkwkwkwk narasine koyok novel, mekso gak jelas). Begini ceritanya :
Bahan detektor gas metana adalah metal oksida, khususnya senyawa paladium. Ketika bahan metal oksida dihangatkan pada temperatur tertentu, maka oksigen akan diserap dari permukaan kristal, sehingga oksigen akan bermuatan negatif. Proses penyerapan oksigen oleh sensor dapat dilihat dari persamaan kimia berikut ini:

PdO2 + ½ O2 + e- ==> (PdO2)O-                     

Reaksi tersebut disebabkan karena permukaan kristal akan mendonorkan elektron pada oksigen yang terdapat pada lapisan luar, sehingga oksigen akan bermuatan negatif dan muatan positif akan terbentuk pada permukaan luar kristal. Tegangan permukaan yang terbentuk akan menghambat laju aliran elektron. Aliran elektron potensial tingggi ke potensial rendah menghasilkan arus listrik. Ini dia ilustrasinya...sik sik kawit mau durung nyruput kopi, yoh disruput disek....sruuuuutttttttt

Dilanjut lagi ceritanya ....
Arus listrik mengalir melewati daerah sambungan (grain boundary) dari bahan metal oxida di dalam sensor. Pada daerah sambungan, penyerapan oksigen mencegah muatan untuk bergerak bebas. Jika konsentrasi gas menurun, proses dioksidasi akan terjadi. Rapat permukaan dari muatan negatif oksigen akan berkurang dan akan mengakibatkan menurunnya ketinggian penghalang dari daerah sambungan. Misalnya, ditemukan adanya gas CH4 yang terdeteksi, maka persamaan reaksi kimianya berikut:

          CH4 + 3PdO2 2- ==> 3PdO- + CO2 + 2H2 O + 3e             
Dengan menurunnya penghalang maka resistansi sensor juga akan ikut menurun. Lha iki gambare
Wahhh Ki Sableng ternyata juga ilmiah bgt, wkwkwkwk. Sensitivitas sensor gas metana TGS 2611 dalam gambar
Wesssss, itulah secuil kisah Ki Sableng... lebih jelas tentang sensor gas metana TGS 2611 bisa liat datasheet di sini. Dalam bukunya, Ki Sableng juga menjanjikan untuk posting selanjutnya tentang alat ukur konsentrasi gas metana. Bagaimana penggunaannya ??? Lanjut aja ke pengkondisi sinyal sensor TGS 2611.
Salam damai,,,matur nuwun

Karakteristik Sensor Gas Oksigen ??? Pakai KE 50 atau KE 25 ???

Salam damai semua pembaca....Senajan KENTHIR, nanging kebak PIKIR.

Episode baru diputar,wkwkwk. Kesejukan pagi, ditemani secangkir kopi (senajan durung sikatan). Ada celoteh dari Ki Sableng tentang sensor Gas Oksigen (gaweane manungsa) yang mempunyai banyak manfaat. Opo yo kuwi ? Mari kita simak, heeeeeeee.
Ki Sableng dulu pernah membuat alat ukur konsentrasi gas oksigen (waktu kurang gawean). Ketika dia hunting sensor neng pasar genteng (suroboyo), ternyata ada 2 jenis yang ditawarkan (weh bingungggg iki, gawe endi, la podo2 larang). Akhirnya Ki Sableng pun mencari info tentang makhluk aneh itu,,,inilah yang didapat :

Sensor oksigen jenis KE mempunyai struktur sama dengan baterai yang terdiri dari elektroda dan elektrolit. Sensor ini memiliki 2 tipe, yaitu KE-25 dan KE-50. Elektroda dibagi menjadi anoda berupa Pb (timbal) dan katoda yang terbuat dari emas serta elektrolit berupa asam lemah atau alkaline. Elektroda emas merupakan sebuah padatan yang berupa selaput yang tidak beronggga (non-porous membrane). Oksigen yang masuk ke dalam sensor, direduksi pada elektroda emas dengan reaksi elektrokimia. Anoda dan katoda dihubungkan dengan sebuah termistor dan resistor. Resistansi dua resistor ini mengubah arus yang terjadi akibat reaksi elektrokimia menjadi tegangan. Besar arus yang mengalir pada dua resistor dipengaruhi oleh banyak oksigen yang tertangkap oleh membran elektroda. Tegangan resistansi ini digunakan sebagai keluaran sensor oksigen. Skema sensor ditunjukkan Gambar
 Lha dalah kuwi wujud sensore (kok koyok tandon banyu yo xiixixixi), padahal sensonya sebesar jempol tangan. Inilah perbandingan sensitivitasnya
Kalo yang di bawah ini respon time nya,
Wesss, begini saja dulur, bagi yang pengen tau lebih jelas, Ki Sableng kasih link ini ke saya. Ki Sableng juga janji pada saya untuk melanjutkan tentang alat ukurnya pada posting selanjutnya...Lanjut disini untuk pengkondisi sinyal sensor KE 50 dan sensor TGS 4161.

Salam damai,,,matur nuwun

Pembacaan Suhu dan Kelembaban SHT11 pada LCD Karakter

Suhu dan Kelembaban Ruang dapat diukur dengan sensor SHT11. Sensor ini sudah dilengkapi modul dengan keluaran data digital. Komunikasinya adalah dengan TWI, SCK dan DATA. Sensor ini dihubungkan langsung dengan 2 pin mikrokontroler untuk pembangkit pulsa clock dan datanya. Ini gambar komunikasinya



Dan gambar di bawah ini adalah timing diagram komunikasinya untuk ambil data RH.



Kalo pengen ambil data suhu tinggal ganti command seperti di datasheet. Nah ini dia program mikronya. Saya pake ATMEGA16.

/*****************************************************
This program was produced by the
CodeWizardAVR V1.25.3 Standard
Automatic Program Generator
© Copyright 1998-2007 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com

Project :
Version :
Date : 3/24/2010
Author : dlogog
Company : ITS
Comments:


Chip type : ATmega16
Program type : Application
Clock frequency : 11.059200 MHz
Memory model : Small
External SRAM size : 0
Data Stack size : 256
*****************************************************/

#include
#include
#include

#define SDAout PORTB.0
#define SDAin PINB.0
#define SCLK PORTB.1

// Alphanumeric LCD Module functions
#asm
.equ __lcd_port=0x15 ;PORTC
#endasm
#include

// Declare your global variables here

unsigned char timeout,ackbit;
unsigned int dataread,suhuSHT,RHSHT;

void start (void)
{ DDRB=0x03;
SDAout=1;
SCLK=0;
SCLK=1;
SDAout=0;
SCLK=0;
SCLK=1;
SDAout=1;
SCLK=0;
DDRB=0x03;
}
void reset (void)
{ unsigned char i;

DDRB=0x03;
SDAout=1;
SCLK=0;

for (i=0;i<=8;i++) { SCLK=1; SCLK=0; } start(); DDRB=0x03; } void tunggu (void) { unsigned char i; DDRB=0x02; SDAout=1; for (i=0;i<255;i++) { timeout=SDAin; if (timeout==0) break; delay_ms(1); } DDRB=0x02; } void perintah (unsigned char data) { unsigned char i; DDRB=0x03; for (i=0;i<8;i++) { if ((data>>7)==1) SDAout=1;
else SDAout=0;
SCLK=1;
SCLK=0;
data<<=1;
}

SDAout=1;
SCLK=1;
DDRB=0x02;
ackbit=SDAin;
SCLK=0;
DDRB=0x03;
}
void baca (void)
{ unsigned char i;

dataread=0x00;
DDRB=0x02;

for (i=0;i<8;i++)
{ dataread<<=1;
SCLK=1;
dataread|=SDAin;
SCLK=0;
}

DDRB=0x03;
if (ackbit==1) SDAout=1;
else SDAout=0;
SCLK=1;
SCLK=0;
SDAout=1;
DDRB=0x03;
}
void bacasuhu (void)
{
start();
perintah(0x03);
if (ackbit==0)
{
tunggu();
if (timeout==0)
{ ackbit=0;
baca();
suhuSHT=dataread;
suhuSHT<<=8;
ackbit=1;

baca();
suhuSHT|=dataread;
}
}
}
void bacaRH (void)
{
start();
perintah(0x05);
if (ackbit==0)
{
tunggu();
if (timeout==0)
{ ackbit=0;
baca();
RHSHT=dataread;
RHSHT<<=8;
ackbit=1;

baca();
RHSHT|=dataread;
}
}
}
void main(void)
{
unsigned char suhu[16];
unsigned char lembab[16];
float RHlin,RHtrue,temp;

// Declare your local variables here

// Input/Output Ports initialization
// Port A initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTA=0x00;
DDRA=0x00;

// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTB=0x00;
DDRB=0x00;

// Port C initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTC=0x00;
DDRC=0x00;

// Port D initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTD=0x00;
DDRD=0x00;

// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
// Mode: Normal top=FFh
// OC0 output: Disconnected
TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;

// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer 1 Stopped
// Mode: Normal top=FFFFh
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer 1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;

// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer 2 Stopped
// Mode: Normal top=FFh
// OC2 output: Disconnected
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;

// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
// INT2: Off
MCUCR=0x00;
MCUCSR=0x00;

// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;

// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;

// LCD module initialization
lcd_init(16);

lcd_gotoxy(0,0);
lcd_putsf("coba");
delay_ms(300);

while (1)
{
reset();
bacasuhu();
temp=(-40)+(0.01*(float)suhuSHT);

sprintf(suhu,"suhu = %0.02f",temp);
lcd_gotoxy(0,0);
lcd_puts(suhu);
delay_ms(100);
reset();

bacaRH();
RHlin=((float)RHSHT*(float)RHSHT*(-0.0000028))+(0.0405*(float)RHSHT)-4;
RHtrue=(temp-25)*(0.01+(0.00008*(float)RHSHT))+RHlin;

sprintf(lembab,"RH = %0.02f",RHtrue);
lcd_gotoxy(0,1);
lcd_puts(lembab);
delay_ms(100);
reset();
// Place your code here

};
}

Yaa..ini cuma secarik cerita yang pernah tak jalani..smoga bermanfaat..

Pengukur Jarak dengan Ultrasonik Parallax PING

Weee e e e..halo dulur kabeh..
Artikel kali ni saya coba sharingkan pengalaman saya menggunakan sensor ultrasonic sebagai pengukur jarak. Nah sebelumnya seperti biasa sruput kopinya dulu..
Sensor yang digunakan adalah modul Parallax PING yang ssudah jadi dan tinggal pakai. Maksude g perlu da rangkaian elka lain, Cuma minsys mikrokontroler untuk kontrolnya. Nah ini dia barangnya .



Sensor PING ini memiliki 3 kaki yaitu sebagai supply +5 volt (+5), ground (GND), dan signal (SIG). Frekuensi gelombang yang dipancarkan adalah 40kHz. Teori operasinya berdasarkan time diagram berikut.



Sensor ini bekerja bila pada pin SIG diberikan trigger pulsa TTL positif selama 5 us. Setelah mendapat trigger baru memancarkan gelombangnya. Setelah dipacarkan oleh, penerima bertugas menangkap echo/pantulan. Nah prinsipnya sederhana saja kan..Hoahhhh ngantuk e, nyruput kopi dulu ah…
Berdasarkan prinsip kerja dan time diagram di atas, ntuk interface ke ultrasonik, terdapat aturan yang cukup mudah, yaitu:
1. Pada SIG diberi sebuah pulsa (tcut)sebesar 5 mikro detik. ini berati dengan mengeset mikrokontroler sebagai output dan memberikan data ke ultrasonik.
2. Mikrokontroller menunggu sampai pin SIG dari ultrasonik mengeluarkan sinyal kondisi "high" dengan mengeset mikro sebagai input.
3. Selama kondisi input mikro “high” maka dilakukan perhitungan lamanya sampai input “low”.
4. Data hasil perhitungannya kita tampilkan di LCD ya..
Kalau pengen tau datasheetnya download disini.. Di bawah ini adalah soucecode pengukur jarak yang saya buat dengan codevision avr..monggo dibaca..
#include
#include
#include

// Alphanumeric LCD Module functions
#asm
.equ __lcd_port=0x15 ;PORTC
#endasm
#include

// Declare your global variables here

unsigned int i;
unsigned char buf[16];
float jarak;

void main(void)
{
// Declare your local variables here

// Input/Output Ports initialization
// Port A initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTA=0x00;
DDRA=0x00;

// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTB=0x00;
DDRB=0x00;

// Port C initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTC=0x00;
DDRC=0x00;

// Port D initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTD=0x00;
DDRD=0x00;

// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
// Mode: Normal top=FFh
// OC0 output: Disconnected
TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;

// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer 1 Stopped
// Mode: Normal top=FFFFh
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer 1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;

// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer 2 Stopped
// Mode: Normal top=FFh
// OC2 output: Disconnected
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;

// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
// INT2: Off
MCUCR=0x00;
MCUCSR=0x00;

// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;

// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;

// LCD module initialization
lcd_init(16);

lcd_gotoxy(0,0);
lcd_putsf("jajal");
delay_ms(1000);

while (1)
{
// Place your code here
i=0;

DDRD.1=1;
PORTD.1=1;
delay_us(5);
PORTD.1=0;
DDRD.1=0;
PORTD.1=1;

while (PIND.1==0)
{};
while (PIND.1==1)
{ i++;
}

jarak=i*0.01572;
sprintf(buf,"jarak = %0.02f",jarak);
lcd_gotoxy(0,0);
lcd_clear();
lcd_puts(buf);
delay_ms(100);

};
}

Sensor ini banyak diaplikasikan dalam pembuatan robot cerdas yang sering dilombakan dalam KRCI..Sekian ya, semoga bermanfaat, silahkan kasih feedback ya. Salam pagi yang indah

Alat Ukur Tingkat Kejernihan Air

Halo sodara semua sebangsa tanah dan sebangsa air (waduh kliru, sebangsa dan setanah air) hehe. Dini hari ini saya lagi pengen sharingkan alat yang dulu pernah saya buat ketika dapat tugas kuliah instrumentasi. Wah sayangnya alat ini sederhana banget, maklumlah ilmu pas-pasan. Alat ini adalah penentu tingkat kejernihan air. Ini cerita seriusnya..(eitss, nyruput kopi dulu donk…)
Air merupakan suatu kebutuhan yang sangat penting dalam kehidupan manusia. Karena itu, kualitas air yang bisa dikonsumsi manusia harus diperhatikan. Parameter-parameter yang bisa digunakan untuk menentukan kualitas air antara lain kejernihan, kondutifitas listrik, rasa, bau. Parameter itu menentukan kemurnian dari air itu dan sehat atau tidaknya untuk dikonsumsi manusia.
Salah satu parameter kualitas air yaitu kejernihan, dapat dinyatakan dengan kemampuannya untuk meneruskan cahaya yang mengenainya. Dengan kondisi itulah dibuat sebuah alat yang mampu mendeteksi transmisi cahaya dari air itu dengan sensor fotodioda. Dengan alat ini mampu ditentukan tingkat kejernihan air.
Peralatan yang digunakan dalam proses percobaan ini antara lain power supply DC +5, +12, dan -12, IC LM741, potensiometer 10k, resistor 1k, 400k, 330, IC ATMega 8535L, LED putih, LCD Character 16x2, gelas ukur 400 ml, tinta printer e-print hitam, dan air.

Ini dia skema rangkaiannya
a. Blok sensor dan sumber cahaya


b. Blok penguat


c. Blok display


d. Blok Mikrokontroler



Masing-masing blok rangkaian dihubungkan dengan power supply DC. Jarak fotodioda dan led diatur pada 22 cm. Gelas ukur diisi air dengan volume 400 ml, kemudian diletakkan tepat diatas fotodioda. Setelah itu, tegangan keluaran dari blok penguat dimasukkan ke input ADC mikrokontroler untuk diolah yang kemudian ditamoilkan ke LCD. Tampilan di LCD berupa tegangan keluaran penguat, intensitas cahaya, dan Tingkat kejernihan air. Kemudian setiap penambahan tinta, hasil pengolahan mikrokontroler ditampilkan ke LCD.
Yah…Cuma itulah alatnya, sangat sederhana saja. Pada dasarnya untuk mencoba mengaplikasikan sebuat sensor menjadi alat yang lebih berguna..hehe
OOO iyo ni foto alate..