KL801

Interfacing

By

Essay: 15. LCD

Liquid crystal displays (LCD) datang dalam dua jenis utama yang menarik untuk hobi dan DIY pembuat; Display LCD karakter dan pixel / grafis layar LCD. Intro ini “Cara” akan meliputi display LCD karakter lebih populer dan lebih murah berdasarkan sangat umum Hitachi HD44780 kontroler.

Display LCD datang dalam berbagai ukuran paling sering disebut dengan jumlah baris dan kemudian panjang garis layar. Misalnya layar LCD 1×16 akan memiliki satu baris dari enam belas karakter dan layar LCD 4×20 akan memiliki empat baris dengan dua puluh karakter di setiap.

LCD dapat memiliki backlighting atau menjadi reflektif (berpikir kalkulator). Dalam kedua kasus pemrograman yang masuk ke dalam bekerja pajangan ini adalah sama. LCD dengan backlight biasanya menggunakan dua pin untuk memberikan kekuatan untuk lampu latar.

 

2×40 character LCD, without backlighting.

1×16 character LCD with backlighting. Note, black text on a bright background.

 

2×16 character LCD with backlighting. Note, screen is all black, but to display characters the crystals move to allow the backlighting to show through.

 

Kebanyakan LCD yang sedang dibuat sekarang datang dengan satu baris dari enam belas pin. Pertama empat belas pin yang digunakan untuk mengontrol layar dan dua terakhir adalah untuk backlighting (jika layar memiliki backlighting).
LCD yang lebih tua kadang-kadang datang dengan dua baris tujuh membuat konektor empat belas pin. Ini empat belas pin, paling sering, memiliki sinyal yang sama pada mereka bahwa 1×16 pin display lakukan. Misalnya, pin # 1 pada konektor 2×7 adalah sinyal yang sama sebagai pin # 1 pada konektor 1×16, mereka hanya diatur secara berbeda. Jika Anda memiliki layar 2×7 pin tetapi perlu menghubungkannya ke 1×14 (1×16) ransel atau perangkat, dasar Pesan Pompa PCB membuat converter besar.

Pin – Pin yang dipergunakan pada LCD

Fungsi Pin LCD (Liquid Cristal Display) Dot Matrix 2×16 M1632 DB0 – DB7 adalah jalur data (data bus) yang berfungsi sebagai jalur komunikasi untuk mengirimkan dan menerima data atau instruksi dari mikrokontrooler ke modul LCD. RS adalah pin yang berfungsi sebagai selektor register (register sellect) yaitu dengan memberikan logika low (0) sebagai register perintah dan logika high (1) sebagai register data. R/W adalah pin yang berfungsi untuk menentukan mode baca atau tulis dari data yang terdapat pada DB0 – DB7. Yaitu dengan memberikan logika low (0) untuk fungsi read dan logika high (1) untuk mode write. Enable (E), berfungsi sebagai Enable Clock LCD, logika 1 setiap kali pengiriman atau pembacaan data.

Bagaimana pemasangan pin-pin LCD pada ATmega8535 dan cara pemrograman pin-pin tersebut.

  1. Kaki 1 dan 16 terhubung dengan Ground (GND)
  2. Kaki 2 dan 15 terhubung dengan VCC (+5V)
  3. Kaki 3 dari LCD 16×2 adalah pin yang digunakan untuk mengatur kontras kecerahan LCD. Jadi kita bisa memasangkan sebuah trimpot 103 untuk mengatur kecerahanya. Pemasanganya seperti terlihat pada rangkaian tersebut. Karena LCD akan berubah kecerahanya jika tegangan pada pin 3 ini di turunkan atau dinaikan.
  4. Pin 4 (RS) dihubungkan dengan pin mikrokontroler
  5. Pin 5 (RW) dihubungkan dengan GND
  6. Pin 6 (E) dihubungkan dengan pin mikrokontroler
  7. Sedangkan pin 11 hingga 14 dihubungkan dengan pin mikrokontroler sebagai jalur datanya.

Bagaimana menampilkan character pd LCD yang diprogram dari ATmega8535

LCD (Liquid Crystal Display) adalah modul penampil yang banyak digunakan karena tampilannya menarik. LCD yang paling banyak digunakan saat ini ialah tipe M1632 karena harganya cukup murah. LCD M1632 merupakan modul LCD dengan tampilan 2×16 (2 baris x 16 kolom) dengan konsumsi daya rendah. Modul tersebut dilengkapi dengan mikrokontroler yang didesain khusus untuk mengendalikan LCD.

Untuk rangkaian interfacing, LCD tidak banyak memerlukan komponen pendukung. Hanya diperlukan satu variable resistor untuk memberi tegangan kontras pada matriks LCD.

Dengan menggunakan CodeVision AVR, pemrograman untuk menampilkan karakter atau string ke LCD sangat mudah karena didukung library yang telah disediakan oleh CodeVision AVR itu sendiri. Kita tidak harus memahami karakteristik LCD secara mendalam, perintah tulis dan inisialisasi sudah disediakan oleh library dari CodeVision AVR.

Pin – Pin yang dipergunakan pada LCD

– Pin data adalah jalur untuk memberikan data karakter yang ingin ditampilkan menggunakan LCD (Liquid Cristal Display) dapat dihubungkan dengan bus data dari rangkaian lain seperti mikrokontroler dengan lebar data 8 bit.

– Pin RS (Register Select) berfungsi sebagai indikator atau yang menentukan jenis data yang masuk, apakah data atau perintah. Logika low menunjukan yang masuk adalah perintah, sedangkan logika high menunjukan data.

– Pin R/W (Read Write) berfungsi sebagai instruksi pada modul jika low tulis data, sedangkan high baca data.

– Pin E (Enable) digunakan untuk memegang data baik masuk atau keluar.

– Pin VLCD berfungsi mengatur kecerahan tampilan (kontras) dimana pin ini dihubungkan dengan trimpot 5 Kohm, jika tidak digunakan dihubungkan ke ground, sedangkan tegangan catu daya ke LCD sebesar 5 Volt.

Bagaimana pemasangan pin-pin LCD pada ATmega8535 dan cara pemrograman pin-pin tersebut.

dari gambar tersebut dapat dilihat bahwa LCD 16×2 mempunya 16 pin. sedangkan pengkabelanya adalah sebagai berikut :

  1. Kaki 1 dan 16 terhubung dengan Ground (GND)
  2. Kaki 2 dan 15 terhubung dengan VCC (+5V)
  3. Kaki 3 dari LCD 16×2 adalah pin yang digunakan untuk mengatur kontras kecerahan LCD. Jadi kita bisa memasangkan sebuah trimpot 103 untuk mengatur kecerahanya. Pemasanganya seperti terlihat pada rangkaian tersebut. Karena LCD akan berubah kecerahanya jika tegangan pada pin 3 ini di turunkan atau dinaikan.
  4. Pin 4 (RS) dihubungkan dengan pin mikrokontroler
  5. Pin 5 (RW) dihubungkan dengan GND
  6. Pin 6 (E) dihubungkan dengan pin mikrokontroler
  7. Sedangkan pin 11 hingga 14 dihubungkan dengan pin mikrokontroler sebagai jalur datanya.

Bagaimana menampilkan character pd LCD yang diprogram dari ATmega8535

Susunan alamat pada LCD

Alamat awal karakter 00H dan alamat akhir 39H. Jadi, alamat awal di baris kedua dimulai dari 40H. Jika Anda ingin meletakkan suatu karakter pada baris ke-2 kolom pertama, maka harus diset pada alamat 40H. Jadi, meskipun LCD yang digunakan 2×16 atau 2×24, atau bahkan 2×40, maka penulisan programnya sama saja.

CGRAM merupakan memori untuk menggambarkan pola sebuah karakter, dimana bentuk dari karakter dapat diubah-ubah sesuai dengan keinginan. Namun, memori akan hilang saat power supply tidak aktif sehingga pola karakter akan hilang. Berikut tabel pin untuk LCD M1632. Perbedaannya dengan LCD standar adalah pada kaki 1 VCC, dan kaki 2 Gnd. Ini kebalikan dengan LCD standar.
Susunan kaki pada LCD

Perlu diketahui, driver LCD seperti HD44780 memiliki dua register yang aksesnya diatur menggunakan pin RS. Pada saat RS berlogika 0, register yang diakses adalah perintah, sedangkan pada saat RS berlogika 1, register yang diakses adalah register data.

$regfile = “8535def.dat”
$crystal = 4000000

Config Lcdpin = Pin , Db4 = Porta.5 , Db5 = Porta.4 , Db6 = Porta.3 , Db7 = Porta.2 , E = Porta.1 , Rs = Porta.0

Config Lcd = 16 * 2

Do
Cls
Locate 1 , 1
Lcd “Pengenalan”
Waitms 100
Locate 2 , 1
Lcd “Pemograman”
Waitms 100
cls
Locate 1 , 4
Lcd “ATMEGA8535″
Waitms 100
Locate 2 , 1
Lcd “Dengan BASCOM-AVR”
Waitms 100
Cls
Locate 1 , 1
Lcd “BY”
Locate 2 , 1
Lcd “Frengki”
Waitms 100
Loop

Pembahasan Program :

$regfile = “8535def.dat” library yang menyatakan bahwa mikrokontroller yang kita pakai adalah atmega32,
$crystal = 4000000 meyatakan bahwa clock oscillator yang kita pakai sebesar 8Mhz,
Config Lcdpin = Pin , Db4 = Porta.5 , Db5 = Porta.4 , Db6 = Porta.3 , Db7 = Porta.2 , E = Porta.1 , Rs = Porta.0 inisialisasi pin-pin pada LCD sendiri,
Config Lcd = 16 * 2 LCD yang kita pakai adalah LCD berukuran 20*4,
Cls = LCD dibersihkan terlebih dahulu
Locate 1 , 1 = menyatakan huruf atau angka yang akan ditampilkan pertama kali akan keluar pada kolom 1 baris 1,
Lcd “Pengenalan” = kata yang akan ditampilkan pada LCD adalah “pengenalan”

 

By

Essay: 14. Sensor suhu LM35

Pengertian Sensor Suhu LM35

pengertian Sensor suhu LM35 adalah komponen elektronika yang memiliki fungsi untuk mengubah besaran suhu menjadi besaran listrik dalam bentuk tegangan. Sensor Suhu LM35 yang dipakai dalam penelitian ini berupa komponen elektronika elektronika yang diproduksi oleh NationalSemiconductor. LM35 memiliki keakuratan tinggi dan kemudahan perancangan jika dibandingkan dengan sensor suhu yang lain, LM35 juga mempunyai keluaran impedansi yang rendah dan linieritas yang tinggi sehingga dapat dengan mudah dihubungkan dengan rangkaian kendali khusus serta tidak memerlukan penyetelan lanjutan.

Meskipun tegangan sensor ini dapat mencapai 30 volt akan tetapi yang diberikan kesensor adalah sebesar 5 volt, sehingga dapat digunakan dengan catu daya tunggal dengan ketentuan bahwa LM35 hanya membutuhkan arus sebesar 60 µA hal ini berarti LM35 mempunyai kemampuan menghasilkan panas (self-heating) dari sensor yang dapat menyebabkan kesalahan pembacaan yang rendah yaitu kurang dari 0,5 ºC pada suhu 25 ºC .

Struktur Sensor LM35

 

Gambar Sensor Suhu LM35

Gambar diatas menunjukan bentuk dari LM35 tampak depan dan tampak bawah. 3 pin LM35 menujukan fungsi masing-masing pin diantaranya, pin 1 berfungsi sebagai sumber tegangan kerja dari LM35, pin 2 atau tengah digunakan sebagai tegangan keluaran atau Vout dengan jangkauan kerja dari 0 Volt sampai dengan 1,5 Volt dengan tegangan operasi sensor LM35 yang dapat digunakan antar 4 Volt sampai 30 Volt. Keluaran sensor ini akan naik sebesar 10 mV setiap derajad celciussehingga diperoleh persamaan sebagai berikut :

VLM35 = 10 mV/oC

Gambar diatas kanan adalah gambar skematik rangkaian dasar sensor suhu LM35-DZ. Rangkaian ini sangat sedeCrhana dan praktis. Vout adalah tegangan keluaran sensor yang terskala linear terhadap suhu terukur, yakni 10 milivolt per 1 derajad celcius. Jadi jika Vout = 530mV, maka suhu terukur adalah 53 derajad Celcius.Dan jika Vout = 320mV, maka suhu terukur adalah 32 derajad Celcius. Tegangan keluaran ini bisa langsung diumpankan sebagai masukan ke rangkaian pengkondisi sinyal seperti rangkaian penguat operasional dan rangkaian filter, atau rangkaian lain seperti rangkaian pembanding tegangan dan rangkaian Analog-to-Digital Converter.

Rangkaian dasar tersebut cukup untuk sekedar bereksperimen atau untuk aplikasi yang tidak memerlukan akurasi pengukuran yang sempurna. Akan tetapi tidak untuk aplikasi yang sesungguhnya. Terbukti dari eksperimen yang telah saya lakukan, tegangan keluaran sensor belumlah stabil. Pada kondisi suhu yang relatif sama, jika tegangan suplai saya ubah-ubah (saya naikkan atau turunkan), maka Vout juga ikut berubah. Memang secara logika hal ini sepertinya benar, tapi untuk instrumentasi hal ini tidaklah diperkenankan. Dibandingkan dengan tingkat kepresisian, maka tingkat akurasi alat ukur lebih utama karena alat ukur seyogyanya dapat dijadikan patokan bagi penggunanya. Jika nilainya berubah-ubah untuk kondisi yang relatif tidak ada perubahan, maka alat ukur yang demikian ini tidak dapat digunakan.

Karakteristik Sensor LM35.

  1. Memiliki sensitivitas suhu, dengan faktor skala linier antara tegangan dan suhu 10 mVolt/ºC, sehingga dapat dikalibrasi langsung dalamcelcius.
  2. Memiliki ketepatan atau akurasi kalibrasi yaitu 0,5ºC pada suhu 25 ºC seperti terlihat pada gambar 2.2.
  3. Memiliki jangkauan maksimal operasi suhu antara -55 ºC sampai +150 ºC.
  4. Bekerja pada tegangan 4 sampai 30 volt.
  5. Memiliki arus rendah yaitu kurang dari 60 µA.
  6. Memiliki pemanasan sendiri yang rendah (low-heating) yaitu kurang dari 0,1 ºC pada udara diam.
  7. Memiliki impedansi keluaran yang rendah yaitu 0,1 W untuk beban 1 mA.
  8. Memiliki ketidaklinieran hanya sekitar ± ¼ ºC.

Grafik akurasi LM35 terhadap suhu

Sensor LM35 bekerja dengan mengubah besaran suhu menjadi besaran tegangan. Tegangan ideal yang keluar dari LM35 mempunyai perbandingan 100°C setara dengan 1 volt. Sensor ini mempunyai pemanasan diri (self heating) kurang dari 0,1°C, dapat dioperasikan dengan menggunakan power supply tunggal dan dapat dihubungkan antar muka (interface) rangkaian control yang sangat mudah.

IC LM 35 sebagai sensor suhu yang teliti dan terkemas dalam bentuk Integrated Circuit (IC), dimana output tegangan keluaran sangat linear terhadap perubahan suhu. Sensor ini berfungsi sebagai pegubah dari besaran fisis suhu ke besaran tegangan yang memiliki koefisien sebesar 10 mV /°C yang berarti bahwa kenaikan suhu 1° C maka akan terjadi kenaikan tegangan sebesar 10 mV.

 

IC LM 35 ini tidak memerlukan pengkalibrasian atau penyetelan dari luar karena ketelitiannya sampai lebih kurang seperempat derajat celcius pada temperature ruang. Jangka sensor mulai dari – 55°C sampai dengan 150°C, IC LM35 penggunaannya sangat mudah, difungsikan sebagai kontrol dari indicator tampilan catu daya terbelah. IC LM 35 dapat dialiri arus 60 μ A dari supplay sehingga panas yang ditimbulkan sendiri sangat rendah kurang dari 0 ° C di dalam suhu ruangan.

Untuk mendeteksi suhu digunakan sebuah sensor suhu LM35 yang dapat dikalibrasikan langsung dalam C (celcius), LM35 ini difungsikan sebagai basic temperature sensor.

Adapun keistimewaan dari IC LM 35 adalah :

  • Kalibrasi dalam satuan derajat celcius.
  • Lineritas +10 mV/ º C.
  • Akurasi 0,5 º C pada suhu ruang.
  • Range +2 º C – 150 º C.
  • Dioperasikan pada catu daya 4 V – 30 V.
  • Arus yang mengalir kurang dari 60 μA

 

Menggunakan LM35 sebagai sensor suhu pada ATMega8535

ATmega8535 sensor suhu atau temperatur udara dengan menggunakan LM35 menggunakan portA.0 ADC dan Dispay berupa LCD 16×2

Pada pembuatan Sensor suhu ini sudah menggunakan ADC , dengan menggunakan ADC pada PORT.A 0

while (1)
{
// Place your code here
dataADC=read_adc(0);
lcd_gotoxy(0,1);
lcd_putsf(“Suhu : “);
dataADC=read_adc(0);
lcd_gotoxy(14,1);
lcd_putsf(“‘C”);
Temp=(dataADC*4.9/10);
lcd_gotoxy(12,1);
tampil(Temp);
};

By

13. 7 Segment

Seven Segment

Pengertian Seven Segment

Seven segment adalah suatu segmen-segmen yang digunakan untuk menampilkan angka / bilangan decimal. Seven segment ini terdiri dari 7 batang LED yang disusun membentuk angka 8 dengan menggunakan huruf a-f yang disebut DOT MATRIKS. Setiap segment ini terdiri dari 1 atau 2 LED (Light Emitting Dioda).


Seven segment dapat menampilkan angka-angka desimal dan beberapa karakter tertentu melalui kombinasi aktif atau tidaknya LED penyususnan dalam seven segment. Untuk mempermudah pengguna seven segment, umumnya digunakan sebuah decoder atau sebuah seven segment driver yang akan mengatur aktif atau tidaknya led-led dalam seven segment sesuai dengan inputan biner yang diberikan.

Piranti tampilan modern disusun sebagai pola 7 segmen atau dot matriks. Jenis 7 segmen sebagaimana namanya, menggunakan pola tujuh batang led yang disusun membentuk angka 8 seperti yang ditunjukkan pada gambar di atas. Huruf-huruf yang diperlihatkan dalam gambar tersebut ditetapkan untuk menandai segmen-segmen tersebut. Dengan menyalakan beberapa segmen yang sesuai, akan dapat diperagakan digit-digit dari 0 sampai 9, dan juga bentuk huruf A sampai F (dimodifikasi).

Sinyal input dari switches tidak dapat langsung dikirimkan ke peraga 7 segmen, sehingga harus menggunakan decoder BCD (Binary Code Decimal) ke 7 segmen sebagai antar muka. Decoder ini terdiri dari gerbang-gerbang logika yang masukannya berupa digit BCD dan keluarannya berupa saluran-saluran untuk mengemudikan tampilan 7 segmen.

Prinsip Kerja Seven Segmen

Prinsip kerja dari seven segment ini adalah inpuan bilangan biner pada switch dikonversi masuk kedalam decoder, baru kemudian decoder mengkonversi bilangan biner tersebut ke dalam bilangan desimal, yang mana bilangan desimal ini akan ditampilkan pada layar seven segmen. Fungsi dari decoder sendiri adalah sebagai pengkonversi bilangan biner ke dalam bilangan desimal.

Jenis-Jenis Seven Segmen

Seven segmen ada 2 jenis, yaitu Common Anoda dan Common Katoda
1. Common Anoda
Common Anoda merupakan pin yang terhubung dengan semua kaki anoda LED dalam seven segmen. Common anoda diberi tegangan VCC dan seven segmen dengan common anoda akan aktif pada saat diberi logika rendah (0) atau sering disebut aktif low. Kaki katoda dengan label a sampai h sebagai pin aktifasi yang menentukan nyala LED.
2. Common Katoda
Common Katoda merupakan pin yang terhubung dengan semua kaki katoda LED dalam seven segmen dengan common katodak akan aktif apabila diberi logika tinggi (1) atau disebut aktif high. Kaki anoda dengan label a sampai h sebagai pin aktifasi yang menentukan nyala LED.

berikan contoh penggunaan 7 Segment dalam rangkaian ATmega8 / ATmega8535 sebagai display,

berikan juga contoh programnya.

Seven segment merupakan penampil yang setingkat dengan LED, hanya saja seven segment dapat menampilkan data ke bentuk karakter. Dalam pemrogrmannya, seven segment harus diberi data khusus agar dapat terbentuk karakter tertentu. Oleh karena itu harus diperhatikan hardware yang terpasang. Ada dua tipe pengaplikasian seven segement yaitu common anode atau common katode. Untuk percobaan kali ini menggunakan single seven segment dengan konfigurasi common anode seperti gambar dibawah ini:

Aplikasi Seven Segment dengan simulasi program PROTEUS

Data Karakter Angka Pada Seven Segment

Pemrograman Seven Segment dengan Bascom AVR

Program berikut ini digunakan untuk menampilkan angka 5 dan 7. Diantara data yang di keluarkan pada port A tersebut terdapat waktu tunda kurang lebih 1000 milisekon ato 1 detik. Didalam program utama terdapat pernyataan “do loop”. Pernyataan itu berfungsi untuk melakukan looping  secara terus menerus.

Result:

 

By

Essay: 11. Infra red, Photodioda, Phototransistor

  • Sensor Cahaya Infra Merah

Sensor cahaya infra merah adalah sensor cahaya yang hanya akan merespon perubahan cahaya inframerah. Sensor cahaya infra merah pada umumnya berupa photo ttransistor atau photo dioda. Dimana apabila sensor cahaya infra merah ini menerima pancaran cahaya infra merah maka pada terminal outputnya akan memberikan perubahan resistansi. Akan tetapi ada juga sensor cahaya yang telah dibuat dalam bentuk chip IC penerima sensor infra merah seperti yang digunakan pada penerima remote televisi. Dimana chip IC sensor infra merah ini akan memberikan perubahan tegangan output apabila IC sensor infra merah ini menerima pancaran cahaya infra merah.

  • Photo Transistor

Photo transistor adalah suatu transistor yang memiliki resistansi antara kaki kolektor dan emitor dapat berubah sesuai intensitas cahaya yang diterimanya. Photo transistormemiliki 2 terminal output dengan nama emitor dan colektor, dimana nilai resistansi emeitor dan kolektro tersebut akan semakin rendah apabila intensitas cahaya yang diterim photo transistor semnakin tinggi.

  • Photo Dioda

Photo dioda adalah suatu dioda yang akan mengalami perubahan resistansi pada terminal anoda dan katoda apabila terken cahaya. Nilai resistansi anoda dan katoda pada photo dioda akan semakin rendah apabila intensitas cahaya yang diterima photodioda semkin tinggi. Berikut adalah bentuk dari IC sensor infra merah tersebut.

BAHAN DARI PHOTODIODA

photodioda terbuat dari bahan semikonduktor yaitu silicon (Si), atau Galium Arsenida, dan yang lain adalah Insb, InAs, PbSe. Material-material ini meyerap cahaya dengan karakteristik panjang gelombang mencangkup: 2500 Å – 11000 Å untuk silicon, 8000 Å – 20,000 Å untuk GaAs. Ketika sebuah photon (satu satuan energi dalam cahaya) dari sumber cahaya diserap, hal tersebut membangkitkan suatu elektron dan menghasilkan sepasang pembawa muatan tunggal, sebuah elektron dan sebuah hole, di mana suatu hole adalah bagian dari kisi-kisi semikonduktor yang kehilangan elektron.

PRINSIP KERJA PHOTODIODA

Photodioda dibuat dari semikonduktor dengan bahan yang populer adalah silicon ( Si) atau galium arsenida ( GaAs), dan yang lain meliputi InSb, InAs, PbSe. Material ini menyerap cahaya dengan karakteristik panjang gelombang mencakup: 2500 Å – 11000 Å untuk silicon, 8000 Å – 20,000 Å untuk GaAs. Ketika sebuah photon (satu satuan energi dalam cahaya) dari sumber cahaya diserap, hal tersebut membangkitkan suatu elektron dan menghasilkan sepasang pembawa muatan tunggal, sebuah elektron dan sebuah hole, di mana suatu hole adalah bagian dari kisi-kisi semikonduktor yang kehilangan elektron. Arah Arus yang melalui sebuah semikonduktor adalah kebalikan dengan gerak muatan pembawa.cara tersebut didalam sebuah photodiode digunakan untuk mengumpulkan photon – menyebabkan pembawa muatan (seperti arus atau tegangan) mengalir/terbentuk di bagian-bagian elektroda.

Prinsip kerja photodioda :

  • Cahaya yang diserap oleh photodiode
  • Terjadinya pergeseran foton
  • Menghasilkan pasangan electron-hole dikedua sisi
  • Electron menuju [+] sumber  & hole menuju [-] sumber
  • Sehingga arus akan mengalir di dalam rangkaian

 

 

 

Saat photodiode terkena cahaya, maka akan bersifat sebagai sumber tegangan dan nilai resistansinya akan menjadi kecil.

Saat photodiode tidak terkena cahaya, maka nilai resistansinya akan besar atau dapat diasumsikan tak hingga.

Ket : besarnya tegangan atau arus listrik yang dihasilkan oleh photodiode tergantung besar kecilnya radiasi yang dipancarkan oleh infrared

Photodioda digunakan sebagai penangkap gelombang cahaya yang dipancarkan oleh Infrared. Besarnya tegangan atau arus listrik yang dihasilkan oleh photodioda tergantung besar kecilnya radiasi yang dipancarkan oleh infrared

SENSOR WARNA MENGGUNAKAN PHOTODIODA

Setiap warna bisa disusun dari warna dasar.Untuk cahaya, warna dasar penyusunnya adalah warna Merah, Hijau dan Biru, atau lebih dikenal dengan istilah RGB (Red-Green-Blue).Gambar2 memperlihatkan beberapa sampel warna dan komposisi RGB-nya terskala 8 bit.

Perancangan dan Pembuatan Sensor

Sistim sensor yang digunakan adalah sensor warna.Rangkaian sensor terdiri dari 2 bagian, yaitu bagian pemancar cahaya dan penerima cahaya. Rangkaian pemancar terdiri dari resistor sebagai pembatas arus serta LED sebagai piranti yang memancarkan cahaya. Sedangkan rangkaian penerima terdiri dari resistor sebagai pull-up tegangan dan photodioda sebagai piranti yang akan menerima pantulan cahaya LED obyek. Rangkaian komparator akan membandingkan tegangan input dari sensor dengan tegangan referensi untuk menghasilkan logika ‘0’ dan ‘1’ untuk membedakan warna merah dan warna hijau.

LED akan memancarkan cahaya ke obyek dan photodioda akan menerima cahaya yang dipantulkan oleh obyek tersebut. Intensitas cahaya yang diterima oleh photodioda akan mempengaruhi nilai reistasinya. Obyek berupa Warna merah dan Warna biru akan memantulkan cahaya dengan intensitas yang berbeda. Warna merah akan memantulkan cahaya dengan intensitas yang lebih tinggi daripada Warna hijau, sehingga nilai resistansinya akan berbeda. Semakin besar intensitas cahaya yang diterima oleh photodioda, maka nilai 15 resistansinya akan semakin kecil dan nilai tegangan outputnya akan Semakin kecil pula. Perbedaan nilai tegangan output dari photodioda saat menerima cahaya pantulan dari Warna merah atau Warna hijau akan dideteksi oleh rangkaian komparator. Tegangan referensi dapat diatur dengan memutar variabel resistor.untuk dapat membedakan Warna merah atau Warna hijau, nilai tegangan referensi diatur sehingga memiliki nilai diantara nilai tegangan output dari photodioda saat menerima pantulan cahaya dari obyek.Untuk mendapatkan hasil yang baik maka pemasangan sensor warna harus tertutup dan dipasang tegak lurus terhadap obyek .

Untuk mendeteksi warna merah maka digunakan sensor photodioda yang disinari dengan LED superbright warna merah. Pada saat photodioda menerima pantulan cahaya dari Warna merah, nilai tegangan output pada photodioda akan lebih kecil dari tegangan referensi, sehingga output dari komparator akan bernilai “0”. Sedangkan saat photodioda menerima pantulan cahaya dari Warna hijau, nilai tegangan outputnya akan lebih besar dari tegangan referensi, sehingga output dari komparator bernilai “1”. Sebaliknya, Untuk mendeteksi warna hijau maka digunakan sensor photodioda yang disinari dengan LED superbright warna hijau. Pada saat photodioda menerima pantulan cahaya dari Warna hijau, nilai tegangan output pada photodioda akan lebih kecil dari tegangan referensi, sehingga output dari komparator akan bernilai “0”. Sedangkan saat photodioda menerima pantulan cahaya dari Warna merah, nilai tegangan outputnya akan lebih besar dari tegangan referensi, sehingga output dari komparator bernilai “1”.

KARAKTERISTIK FOTODIODA DAN APLIKASINYA UNTUK MENGUKUR INTENSITAS CAHAYA

Fotodioda berbeda dengan dioda biasa. Jika fotodioda persambungan p-n bertegangan balik disinari, maka arus akan berubah secara linier dengan kenaikan fluks cahaya yang dikenakan pada persambungan tersebut. Berdasarkan hal tersebut dapat dibuat alat untuk mendeteksi intensitas cahaya dengan memanfaatkan karakteristik fotodioda sebagai salah satu alternatif pendeteksi intensitas cahaya.Alat ini dapat dimanfaatkan bagi siswa dalam memahami tentang materi fotometri dalam pelajaran fisika. Dalam penelitian ini diperoleh hasil bahwa fotodioda dapat berfungsi sebagai sensor untuk mengukur intensitas cahaya, dimana semakin besar intensitas cahaya (ditunjukkan kenaikan daya lampu) yang mengenainya maka arus yang dihasilkan fotodioda juga akan semakin besar. Disamping itu hasil penelitian ini menunjukkan bahwa hubungan antara arus yang dihasilkan fotodioda berubah berbanding terbalik dengan kuadrat jarak dari sumber cahaya dengan arus lampu tetap.

Karakteristik photo dioda

  • Photodioda mempunyai respon 100 kali lebih cepat daripada phototransistor
  • Dikemas dengan plastik transparan yang juga berfungsi sebagai lensa. Lensa tsb lebih dikenal sebagai ‘lensa fresnel’ dan ‘optical filter’
  • Penerima infra merah juga dipengaruhi oleh ‘active area’ dan ‘respond time’

Sensor cahaya pada ATMega dengan codevision AVR

sensor cahaya biasanya macem2, mulai dari fotodioda, fototransistor, LDR dan masih banyak lagi. Untuk membuat rangkaian sensor cahaya kita menggunakan Analog to Digital Converternya ATMega, kalau untuk jenis ATMega16, ATMega32 dan ATMega8535 kita bisa menggunakan PINA.

Berikut contoh penggunaan sensor cahaya menggunakan LDR, saya ambil dari laporan praktikum yang saya ampu, dibuat oleh Mas Adi Candra Swastika. Cara kerja program ini mikrokontrol akan mengambil output ADC dari LDR dan jika hasil pembacaan ADC melebihi 150 maka LCD akan menampilkan angka 1 (high) selain itu maka akan menampilkan angka 0 (low). Program ini dapat dimodifikasi sendiri misal dengan memvariasikan perlakuan output.

*****************************************************

This program was produced by the

CodeWizardAVR V2.05.0 Professional

Automatic Program Generator

Project :

Chip type : ATmega 8

Program type : Application

AVR Core Clock frequency : 16.000000 MHz

Memory model : Small

External RAM size : 0

Data Stack size : 256

*****************************************************/

#include

#include

#include

// Alphanumeric LCD Module functions

#include <alcd.h>

unsigned char a, reff=150

char buff[32];

unsigned char adc_data;

#define ADC_VREF_TYPE 0x20

// ADC interrupt service routine

interrupt [ADC_INT] void adc_isr(void)

{

// Read the 8 most significant bits

// of the AD conversion result

adc_data=ADCH;

}

// Read the 8 most significant bits

// of the AD conversion result

// with noise canceling

unsigned char read_adc(unsigned char adc_input)

{

ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);

// Delay needed for the stabilization of the ADC input voltage

delay_us(10);

#asm

in r30,mcucr

cbr r30,__sm_mask

sbr r30,__se_bit | __sm_adc_noise_red

out mcucr,r30

sleep

cbr r30,__se_bit

out mcucr,r30

#endasm

return adc_data;

}

void main(void)

{

PORTA=0x00;

DDRA=0x00;

PORTB=0x00;

DDRB=0x00;

PORTC=0x00;

DDRC=0x00;

PORTD=0x00;

DDRD=0x00;

TCCR0=0x00;

 

TCNT0=0x00;

OCR0=0x00;

TCCR1A=0x00;

TCCR1B=0x00;

TCNT1H=0x00;

TCNT1L=0x00;

ICR1H=0x00;

ICR1L=0x00;

OCR1AH=0x00;

OCR1AL=0x00;

OCR1BH=0x00;

OCR1BL=0x00;

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;

// USART initialization

// USART disabled

UCSRB=0x00;

// Analog Comparator initialization

// Analog Comparator: Off

// Analog Comparator Input Capture by Timer/Counter 1: Off

ACSR=0x80;

SFIOR=0x00;

// ADC initialization

// ADC Clock frequency: 1000.000 kHz

// ADC Voltage Reference: AREF pin

// ADC Auto Trigger Source: ADC Stopped

// Only the 8 most significant bits of

// the AD conversion result are used

ADMUX=ADC_VREF_TYPE & 0xff;

ADCSRA=0x8C;

// SPI initialization

// SPI disabled

SPCR=0x00;

// TWI initialization

// TWI disabled

TWCR=0x00;

// Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu:

// RS – PORTB Bit 0

// RD – PORTB Bit 1

// EN – PORTB Bit 2

// D4 – PORTB Bit 4

// D5 – PORTB Bit 5

// D6 – PORTB Bit 6

// D7 – PORTB Bit 7

// Characters/line: 16

lcd_init(16);

// Global enable interrupts

#asm(“sei”)

while (1)

{

a=read_adc(0); //

lcd_gotoxy(0,0); //

sprintf (buff,”ADC0 : %d”,read_adc(0)); //

lcd_puts(buff);

lcd_gotoxy(0,1);//mendefinisikan koordinat x=0 y=1 sebagai awal mula penulisan LCD

if(a<reff){ //

lcd_putsf(“0”); //

}else{ //

lcd_putsf(“1”);

}

delay_ms(300); //

lcd_clear();

}

}

 

By

Essay: 7. IP Address dan subnetting

Kita mendapatkan IP dari ISP yaitu 192.168.10.0 untuk alamat network dan subnet masknya 255.255.255.192 ini berarti notasi /24.

Berapa jumlah subnet, 192 adalah 11100000, jadi 23-3 = 6
Berapa banyak host per subnet, 25 – 2 = 30 host
Hitung subnet yang valid 256 – 192 = 32
32 + 32 = 64
64 + 32 = 96
96 + 32 = 128
128 + 32 = 160
160 + 32 = 192
192 + 32 = 224
192tidak valid karena ia adalah sebuah subnet mask. Maka subnet yang valid adalah
32, 64, 96,128,160,129,224

Subnet 32 64 96 128 160 192
Host pertama 33 65 97 129 161 193
Host terakhir 62 94 126 158 190 222
Alamat Broadcast 63 95 127 159 191 223

Cara membaca tabel diatas yaitu dari atas ke bawah untuk setiap kolom subnet, contoh: kolom pertama subnet 32 atau lengkapnya 192.168.10.32 memunyai host pertama 33 atau 192.168.10.33, host terakhir 62 atau 192.168.10.62 dan alamat broadcast di 63 atau 192.168.10.63.

By

Essy 8 .TWI & I2C

Komunikasi I2C (Inter-Integrated Circuit) atau TWI (Two Wire Interface) Bagian 1

I2C (Inter-Integrated Circuit) atau TWI (Two Wire Interface)

 

I2C dilapalkan dengan (I Squared C), umumnya ditulis dengan I2C, adalah diciptakan pertama kali oleh Philips Semiconductors. Dengan metode ini komunikasi device yang dilengkapi dengan I2C protokol dapat dilakukan hanya dengan mempergunakan dua kabel. Pengiriman/penerimaan informasi/data secara serial dengan mempergunakan data line (SDA = Serial Data) dan sebuah sumber clock (SCL = Serial Clock). Kedua kabel, kabel data (SDA) dan kabel clock (SCL), harus di-Pull-UP dengan resistor eksternal. Gambar 1 memperlihatkan contoh arsitektur I2C dengan satu master, yang bertindak sebagai mater adalah UC, dan beberapa slave.

Master adalah yang menguasai bus sehingga ia mengendalikan/menghasilkan serial clock dan juga membangkitkan sinyal START dan sinyal STOP. Jadi Master yang menentukan kapan komunikasi dimulai dan komunikasi diakhiri. Sementara Slave menunggu/membaca perintah dari master apakah harus menerima/menulis data atau mengirim data ke Master. Slave tidak boleh membangkitkan pulsa clock (serial clock). Atau dapat disimpulkan Master dapat mengirim atau menerima data dari Slave dan sesama slave tidak boleh berkomunikasi.

Pada komunikasi serial secara I2C, meskipun serial clock berasal dari Master, namun Slave dapat menahan pulsa clock, pulsa clock berada dalam keadaan low, jika slave belum siap untuk menerima data. Hal ini biasanya terjadi pada peralatan yang lambat. Serial clock pada komunikasi ini harus bersumber dari Clock yang dibangkitkan oleh Master, tidak boleh berasal dari sumber yang lain.

memperlihatkan format pembacaan/pengiriman data dari Master ke Slave dengan mempergunakan komunikasi serial I2C. Komunikasi antara Master dengan Slave dimulai dengan membangkitkan pulsa START oleh Master. Pulsa START dibaca oleh Slave pada bus SDA dalam keadaan LOW pada saat pulsa clock dalam keadaan HIGH. Setelah pulsa START dikirimkan, maka pada clock berikutnya Master mengirimkan 8 bit alamat, yang dikirimkan secara serial melalui bus SDA, ke Slave dengan format B6, B5, B4, B3, B2, B1, B0, dan R/W. Bit alamat tersebut mengandung informasi R/W pada LSB. Jika LSB pada byte alamat “1” maka master ingin membaca data dari Slave tetapi jika LSB byte alamat “0” maka master akan menulis pada slave. Karena hanya 7 bit yang dipergunakan dalam byte alamat maka banyaknya device yang dapat dijadikan slave hanya 127. Alamat 0 dipergunakan untuk General Call. Bila alamat dan perintah, Read atau Write, yang dikirimkan oleh master dapat diterima oleh slave maka slave akan membangkitkan pulsa LOW (ACK), pada bus SDA, jika perintah tersebut dapat dijalankan dan pulsa HIGH (NACK) jika perintah tersebut gagal.

Setelah Master menerima pulsa LOW (ACK), Data dikirimkan/dibaca dari alamat Slave tersebut. Bila data telah berhasil dikirim/dibaca maka slave memberikan pulsa LOW (ACK) pada bus SDA tetapi jika terjadi kegagalan maka slave akan memberikan pulsa HIGH (NACK). Pulsa Stop, pulsa yang naik dari LOW ke HIGH pada saat pulsa clock dalam keadaan HIGH, akan dikrimkan oleh Master untuk menghentikan komunikasi. Hal yang patut dicatat pada komunikasi ini adalah, bit alamat dan bit data tidak boleh berubah keadaan pada saat pulsa clock berada pada keadaan HIGH. Bit bit tersebut (bit alamat dan bit data) hanya boleh berubah pada saat pulsa clock berada pada posisi LOW.

Kecepatan Clock pada I2C pada high speed mencapai 400 Khz, tetapai pada umumnya kecepatan clock 100 Khz. Kecepatan clock ini tidak dapat dijadikan standart karena setiap pabrik pembuat chip akan berbeda begitu juga device terkadang lambat dalam bekerja sehingga kecepatan clocknya terkadang samapai 10 Khz. Jika Slow device dihubungkan dengan high speed bus maka peralatan tersebut (slow device) akan merespon dengan menahan bus clock agar tetap LOW sampai peralatan tersebut siap menerima perintah berikutnya. Pada kasus ini Master harus menunggu sampai Slave melepaskan bus CLOCK.

TWI (Two Wire Serial Interface)

Komunikasi Serial I2C dipatenkan oleh Philips Semiconductor sehingga beberapa perusahaan terpaksa menggantikan istilah I2C dan protokolnya dengan nama TWI. Atmel mengantikan I2C dengan TWI begitu juga protokol komunikasi yang dipergunakan. Protokol komunikasi TWI dari Atmel sama seperti protokol komunikasi I2C hanya saja atmel menambahkan adanya interrupt. Kesimpulannya adalah komunikasi serial TWI compatible dengan komunikasi serial I2C, jadi peralatan Atmel, yang diperlengkapi dengan komunikasi serial TWI, dapat berkomunikasi dengan peralatan yang mendukung secara serial I2C.

Sisa bab ini akan membahas komunikasi serial secara TWI, tepatnya penggunaan protokol TWI pada UC ATMega328. Pada bab ini akan mempergunakan terminology sbb :

Master : Device yang mengawali dan mengakhiri transmisi data. Master juga membangkitkan pulsa serial clock (SCL).

Slave : Device yang dialamati/dituju oleh master

Transmitter : Device yang meletakkan data pada bus SDA

Receiver : Device yang membaca data dari bus SDA

START, STOP pada TWI sama seperti I2C tetapi ada tambahan REPEATED START seperti ditunjukkan pada gambar 3. Kaedah yang patut dijaga adalah Alamat dan Data tidak boleh berubah keadaan ketika pulsa clock dalam HIGH.

Seluruh paket alamat (Address Packets Format) terdiri dari 9 bit. Bit bit tersebut adalah : 7 address bit, 1 control bit (Read/Write) dan 1 bit Acknowledge (ACK) yang dibangkitkan oleh Slave. Bit control set menunjukkan operasi pembacaan (read) dan jika bit control clear menunjukkan operasi penulisan (write). Jika Slave mengenali alamat yang diberikan oleh master maka ia harus pulsa LOW pada bus SDA pada pulsa clock ke sembilan. Jika slave sedang sibuk atau sedang tidak dapat melayani permintaan master maka SDA line harus tetap HIGH pada pulsa clock ke sembilan. Jadi sebuah address packet terdiri dari alamat slave diikuti oleh READ atau WRITE yang masing masing disebut sebagai SLA+R dan SLA+W.

Alamat Slave dapat dengan bebas dirancang oleh designer, tetapi dengan ketentuan adalah MSB dari address byte dikirim pertama kali, ditunjukkan oleh gambar 4. Selain itu alamat 0000-000 dipergunakan untuk general call. General Call dipergunakan oleh Master untuk menrimkan pesan yang sama kesemua Slave. Seluruh Slave harus mengirimkan sinyal NACK ketika general call oleh master diikuti oleh pulsa write. Satu hal lagi yang perlu diingat pada komunikasi TWI pada UC kelurga Atmel adalah seluruh alamat dengan format 1111-xxx masih dicadangkan untuk pemakaian yang akan datang.

Data Packet format sama seperti halnya dengan Address packet format yaitu MSB dikirim lebih dahulu dan LSB adalah yang paling akhir dirim. Jika receiver telah menerima data terakhir, karena alasan tertentu tidak dapat mnerima data berikutnya maka receiver harus memberitahukan transmitter dengan mengirimkan sinyal NACK. Gambar 5 memberikan gambaran tentang pengiriman data pada komunikasi TWI.

Ketika suatu event menghendaki perhatian terhadap kejadian di bus TWI, maka TWI Interrupt Flag (TWINT) dapat dipergunakan sebagai indikatornya. Pada siklus clock berikutnya, TWI Status Register (TWSR) akan di Update dengan suatu kode yang menunjukkan event yang bersangkutan. Contoh kode pada TWSR ditunjukkan pada gambar 8, yaitu bilangan didalam lingkaran. Selama TWINT Flag dalam keadaan set, maka kabel serial Clock (SCL) akan dipertahankan dalam keadaan LOW. Hal ini memungkinkan suatu program (vector interrupt) untuk menyelesaikan tugasnya sebelum TWI Transmission dilanjutkan.

TWINT Flag akan set disebabkan oleh event event berikut :

  • Setelah TWI mengirimkan sinyal START/REPEATED START
  • Setelah TWI mengirimkan sinyal SLA+R/W
  • Setelah TWI mengirimkan sebuah address byte
  • Setelah TWI menerima sebuah data byte.
  • Untuk lengkapnya lihat datasheet ATMega328

 

Untuk memudahkan, maka gambar 6 menunjukan cara kerja dari bus TWI. Hal yang patut dicatat adalah jika TWI Interrupt Enable (TWIE) bit, yang terdapat pada register TWCR, dan Global Interrupt, yang terdapat pada register SREG, keduanya atau satu diclearkan maka TWINT Flag set tidak akan menghasilkan interrupt vektor. Dalam hal ini TWINT Flag hanya dipergunakan sebagai indikator suatu action pada bus TWI.

Prinsip prinsip yang dipergunakan pada TWI Transmission adalah sbb :

  • Ketika TWI telah selesai melaksanakan suatu tugas dan mengharapkan suatu response, TWINT Flag diset. Jalur SCL dipaksa LOW sampai TWINT diclearkan.
  • Ketika TWINT Flag set, maka user harus meng-update seluruh TWI register dengan harga yang relevan pada siklus clock berikutnya. Sebagai sebuah contoh, TWDR harus diisi dengan bit yang akan dikirim pada siklus clock berikutnya.
  • Setelah semua register TWI di-update dan seluruh penundaan prgram telah dilaksanakan, maka TWCR dapat ditulis. Pada saat menulisi TWCR, bit TWINT harus diset karena hal ini akan menclearkan TWINT flag.

Untuk memudahkan penggunaan TWI maka pada gambar 7 diberikan program dalam bahasa C sebagai implementasinya

Semua UC Atmel yang mendukung komunikas TWI dapat dioperasikan dalam 4 (empat) mode yaitu : Master Transmitter (MT), Master Receiver (MR), Slave Transmitter (ST) dan Slave Receiver (SR). Dalam bab ini kita hanya membahas mode master transmitter dan mode master receiver atau pada bus TWI hanya ada satu Master. Pembahasan tentang multiple Master akan dibahas pada kesempatan yang lain. Gambar 8 meringkaskan UC yang bekerja dalam mode Master Transmitter. Lingkaran pada gambar 8 mengindikasikan bahwa TWINT Flag dalam keadaan set. Angka pada lingkaran tersebut adalah kode status yang terdapat pada register TWSR, dengan bit bit prescaler di mask ke zero. Saat TWINT Flag menjadi set maka TWI Transfer akan ditunda sampai TWINT Flag di clearkan oleh software (user). Dalam bentuk tabel Mode Master Transmitter disajikan .

 

By

Essy 6 .Serial Pheripheral Interface (SPI) dan Universal Synchronous Asynchronous Receiver Transmitter (USART) pada ATmega8 / ATmega8535 dan bagaimana penggunaannya, berikan contoh implementasinya termasuk software yang digunakan.

Serial Peripheral Interface ( SPI ) merupakan salah satu mode komunikasi serial synchrounous kecepatan tinggi yang dimiliki oleh ATmega 328. Komunikasi SPI membutuhkan 3 jalur yaitu MOSI, MISO, dan SCK. Melalui komunikasi ini data dapat saling dikirimkan baik antara mikrokontroller maupun antara mikrokontroller dengan peripheral lain di luar mikrokontroller Penjelasan 3 jalur utama dari SPI adalah sebagai berikut :

>MOSI : Master Output Slave Input Artinya jika dikonfigurasi sebagai master maka pin MOSI sebagai output tetapi jika dikonfigurasi sebagai slave maka pin MOSI sebagai input.

MISO : Master Input Slave Output Artinya jika dikonfigurasi sebagai master maka pin MISO sebagai input tetapi jika dikonfigurasi sebagai slave maka pin MISO sebagai output.

CLK : Clock Jika dikonfigurasi sebagai master maka pin CLK berlaku sebagai output tetapi jika dikonfigurasi sebagai slave maka pin CLK berlaku sebagai input.

Untuk mengatur mode kerja komunikasi SPI ini dilakukan dengan menggunakan register SPCR (SPI Control Register), SPSR (SPI Status Register) dam SPDR (SPI Data Register) SPI Control Register (SPCR) Mode SPCR yang digunakan adalah sebagai berikut : Bit-6 SPE (SPI Enable) SPE digunakan untuk mengaktifkan dan menonaktifkan komunikasi SPI dimana jika SPI bernilai 1 maka komunikasi SPI aktif sedangkan jika bernilai 0 maka komunikasi SPI tidak aktif. Bit-4 MSTR (Master or Slave Select) MSTR digunakan untuk mengkonfigurasi sebagai master atau slave secara software dimana jika MSTR bernilai 1 maka terkonfigurasi sebagai master sedangkan MSTR bernilai 0 maka terkonfigurasi sebagai slave. Pengaturan bit MSTR ini tidak akan bisa dilakukan jika pin SS dikonfigurasi sebagai input karena jika pin SS dikonfigurasi sebagai input maka penentuan master atau slavenya otomatis dilakukan secara hardware yaitu dengan membaca level tegangan pada SS Bit-1 SPR1/0 (SPI Clock Rate Select) SPR1 dan SPR0 digunakan untuk menentukan kecepatan clock yang digunakan dalam komunikasi SPI. SPI Status Register (SPSR) Dalam SPSR mode pengaturan yang dilakukan adalah sebagai berikut : SPIF (SPI Interrupt Flag) SPIF merupakan bendera yang digunakan untuk mengetahui bahwa proses pengiriman data 1 byte sudah selesai. Jika proses pengiriman data sudah selesai maka SPIF akan bernilai satu (high). SPI Data Register (SPDR) SPDR merupakan register yang digunakan untuk menyimpan data yang akan dikirim atau diterima pada komunikasi SPI.

Pengenalan USART ATmega8535 USART (Universal Syschronous Asynchronous Received Transmitter) merupakan salah satu mode komunikasi yang dimiliki oleh Mikrokontroler ATMega8535. USART memiliki 2 pin (RxD dan TxD) untuk Asynchronous dan 3 bit TxD, RxD, xCK untuk Synchronous. Untuk mengatur komunikasi USART dilakukan melalui beberapa register yaitu : UDR (USART Data Register) adalah register yang paling penting dalam komunikasi serial ini. Sebab data yang dikirim keluar harus ditempatkan pada register ini, sedang data yang diterima dari luar dapat dibaca pada register ini pula. Pada intinya register UDR digunakan sebagai buffer untuk menyimpan data, baik yang akan dikirim maupun yang akan diterima. image Seperti yang dapat dilihat pada gambar, sejatinya UDR adalah terdiri dari 2 buah register terpisah, dengan alamat dan nama yang sama, yakni UDR. Saat kita menulis data pada UDR ini, maka sebenarnya kita menulis data pada UDR (Write) yang kemudian USART mem-frame dengan bit-bit frame dan segera akan segera mengirimkan data tersebut secara serial. Saat kita membaca UDR, sebenarnya adalah membaca UDR (Read). Data yang diterima secara serial akan disimpan dalam register tersebut, setelah hadirnya stop bit, maka USART akan membuang frame dan menyiapkan data pada UDR (Read ) sehingga dapat segera di ambil. Kita dapat menggunakan instruksi OUT dan IN untuk menulis dan membaca register UDR ini. UCSRA (USART Control dan Status Register A) adalah register yang penting. Sebegian besar adalah berisi status dari dari proses transfer komunikasi serial itu sendiri. Adapun penjelasan dari bit-bit tersebut adalah:

image

Bit 7 – RxC: USART Receive Complete Bit ini menjadi tinggi jika ada data yang masih belum diambil atau dibaca di dalam buffer penerima ( UDR-read ). Bit ini akan otomatis rendah setelah buffer penerima telah dibaca. Jika Unit Penerima tiba-tiba dimatikan setelah diaktifkan, maka isi dalam buffer penerima akan langsung dibuang (flushed) dan bit RxC ini akan langsung dibuat rendah. Bit ini juga bisa mengaktifkan instrupsi “Receive Complete interrupt ”. Lihat penjelasan tentang bit RxCIE. Untuk mengetahui penerimaan data jika high (1) ada data baru dan jika low (0) tidak ada data baru. Bit 6 – TxC: USART Transmit Complete Bit ini akan otomatis tinggi saat semua frame dalam shift-register pengiriman telah digeser semuanya keluar dan jika tidak ada data baru yang berarada dalam buffer pengiriman (UDR-write). Bit TxC ini akan otomatis rendah setelah “Transmit Complete interrupt ” dijalankan, atau dengan meng-clearkan secara manual dengan cara menulis bit ini dengan nilai 1’s (tinggi). Bit TxC ini pula dapat membangkitan “Transmit Complete interrupt ”. Lihat penjelasan tentang bit TxCIE. Untuk mengetahui pengiriman data, jika high (1) ada data baru dan jika low (0) tidak ada data baru. Bit 5 – UDRE: USART Data Register Empty Bit UDRE ini adalah untuk menjadikan tanda jika buffer pengiriman (UDR-write) telah siap untuk diberikan data baru. Bit ini akan bernilai 1 (tinggi) , berarti kita saat itu boleh menulis UDR. Bit ini dapat membangkitkan UDRIE atau “Data Register Empty interrupt ”. Lihat penjelasan tentang bit UDRIE. Bit ini setelah reset langsung bernilai 1, yang berarti siap untuk melakukan pengiriman. Bit 4 – FE: Frame Error Bit ini otomatis menjadi tinggi jika saat menerima data, ternyata ada kesalahan dari frame yang diterima. Misalnya saat Unit penerima seharusnya menunggu sebuah bit Stop, ternyata data yang ada adalah 0 (rendah). Bit ini valid setelah kita membaca UDR. Harap selalu menulis bit ini dengan 0 (rendah ) saat kita sedang menulis UCSRA. Bit 3 – DOR: Data OverRun Bit ini akan menjadi tinggi saat kondisi overrun terjadi. Kondisi ini terjadi saat buffer penerima sudah penuh dan berisi 2 data karakter, dimana data karakter terakhir tidak bisa dipindahkan ke UDR-read, karena tidak kunjung dibaca oleh user. Bit ini valid setelah kita membaca UDR. Harap selalu menulis bit ini dengan 0 (rendah ) saat kita sedang menulis UCSRA. Bit 2 – PE: Parity Error Bit ini akan menjadi tinggi saat karakter yang sedang diterima ternyata memiliki format parity yang salah. Tentu saja hal ini terjadi jika bit parity checking diaktifkan (UPM1 = 1). Bit ini valid setelah kita membaca UDR. Harap selalu menulis bit ini dengan 0 (rendah ) saat kita sedang menulis UCSRA. Bit 1 – U2X: Double the USART Transmission Speed Bit ini hanya berlaku untuk operasi tak sinkron (asynchronous). Jika bit ini kita tulis dengan 1’s (tinggi) maka baud rate akan menjadi lebih cepat 2 kali. Hal itu terjadi karena pembagi baud rate yang biasanya membagi 16 kemudian menbagi menjadi dengan 8 saja. Tulis bit ini dengan 0’s (rendah) untuk oprasi sinkron (synchronous). Bit 0 – MPCM: Multi-processor Communication Mode Bit ini digunakan untuk mode komunikasi Multi-Prosesor. Saat bit PMCM ini dibuat menjadi tinggi maka setiap data yang diterima oleh unit penerima, namun tidak dilengkapi dengan informasi alamat, data yang benar, maka akan diabaikan. Bit ini hanya berguna untuk penerima, dan bukan untuk pengirim. UCSRC (USART Control dan Status Register C) regsiter ini adalah register penting, untuk melakukan kontrol pada peralatan USART. Namuin jika tidak menggunakan fungsi USART, maka boleh mengabaikan register ini seperti dalam keadaan resetnya. dengan nilai $96, yang berarti bahwa sedang meggunakannya sebagai UART, Parity-none, 1 stop bit, ukuran data 8-bit (UCSZ2 = 0).

image

Catatan : Register UCSRC adalah berbagi alamat I/O yang sama dengan register UBBRH. Lihat bagaimana mengakses UBBRH dan UCSRC pada “Accessing UBRRH/UCSRC Registers” untuk mendapatkan penjelasan lebih lengkap. Bit 7 – URSEL: Register Select Saat akan menulis port $20 maka ada dua register yang akan akan diakses, yang ditentukan dari D7 dari data yang dituliskan. Jika D7 (MSB) adalah 1 atau datanya diatas $80 maka sedang menuliskan data pada UCSRC. Sedang jika data yang hendak dituliskan adalah dibawah $80, maka kita sedang menulis UBRRH. Bagaimana saat membaca UCSRC, pastikan sebelumnya bit ini dalam keadaan tinggi sebelumnya membaca lokasi $20 ini. Bit 6 – UMSEL: USART Mode Select Bit ini untuk memilih USART dijadikan mode Taksinkron (Asynchronous) atau Sinkron (Synchronous).

Bit 5:4 – UPM1:0: Parity Mode Bit-bit ini adalah untuk menghidupkan pembangkit dan pemeriksa parity. Jika diaktifkan maka akan otomatis membangkitkan parity pada setiap data yang dikirimkan dan akan memeriksa validitas parity dari setiap data yang diterima. Pada Unit penerima kita akan mendapatkan parity yang diterima, kemudian parity tersebut akan dibandingkan dengan status dari UMP0. Jika ternyata tidak cocok, maka bendera bit PE (Parity Error) pada UCSRA akan diaktifkan.

Hasil gambar

 

Bit 3 – USBS: Stop Bit Select Dengan membiarkan bit in menjadi 0 maka frame akan dilengkapi dengan Stop-bit selebar 1-bit. Sedang jika bit ini ditulis tinggi, maka bit stop menjadi 2-bit. Stop bit sepanjang 2-bit ini biasanya diperlukan bagi system lain yang terhubung dengan AVR akan memiliki waktu yang cukup untuk memproses data yang baru saja diterimanya, dan sudah berar-benar siap untuk menerima data berikutnya. Unit penerima USART tidak menggunakan bit ini.

Bit 2:1 – UCSZ1:0: Character Size Menentukan karakter dari data yang hendak dikirimkan dan diterima haruslah merujuk pada bit-bit ini. Yakni bit UCSZ1 dan bit UCSZ0 milik register ini. Ditambah dengan bit UCSZ2 pada register UCSRB.

Bit 0 – UCPOL: Clock Polarity Bit ini hanya digunakan pada mode Synchronous. Dalam mode ini akan direlasikan antara daya yang diterima dan data yang dikirm dan disinkronkan dengan status dari XCX (synchronous clock). Perhatikan tabel 5 untuk mendalami bagaimana singkronikasi terjadi untuk ujung XCX (edge) yang berbeda dengan mengatur bit UCPOL ini.

Hasil gambar untuk Tabel Pengaturan Polaritas Dalam Mode Synchronous

Pemrograman AVR SPI dengan Codevision

Buka projeck baru, gunakan codewizard

set icon sebagai master

Fungsi Mengirim data: SPI(char data)

Menerima data: char hasil = SPI(0)

Contoh Program membuat Voltmeter dgn SPI ADC AD7896 12 bit :

Rangkaian

Koneksi SPI ADC dan AVR

By

Essay: 5. Sub-interface pada Cisco

Pelajari tentang VLAN pada switch Cisco 2960 Series dan hubungannya dengan Sub-interface pada router Cisco 2621xm. Berikan contoh configurasinya ( menggunakan IP class C )

VLAN atau Virtual Local Area Network adalah sebuah interface yang dapat membuat beberapa segmen ip dalam satu switch manageable atau router. Jika pada pendekatan tradisional satu port LAN hanya bisa diberi satu nilai IP, pada VLAN satu port LAN dapat memiliki interface virtual yang biasa disebut VLAN, dengan pendekatan ini memungkinkan menggunakan banyak ip dalam satu port LAN pada router.

pada prakteknya suatu vlan harus bisa berkomunikasi dengan vlan lain contohnya antara vlan divisi dengan vlan pada group server.  Dengan adanya kondisi seperti itu maka diperlukanRouter yang memiliki fitur subinterface untuk memungkinkan terjadinya intervlan communication.

Penambahan sub-interface pada VLAN, ini sesuai dengan banyaknya VLAN yang akan ditangani.

contoh configurasinya ( menggunakan IP class C )

Pertama pasang cable console ke switch dan hubungkan ke PC pada port serial, kemudian kalo pake windows XP buka aplikasi Hyper terminal 

Kemudian isi terminal misalkan “switch” klik OK
pilih com1 lalu klik OK
Pilih bits per second 9600, databits 8, parity none, stop bits 1, parity control none klik OK
Press RETURN to get started!
tekan enter…
Switch>
Switch>enable
Switch#clock set 12:45:00 12 October 2014
Switch#config terminal
Enter configuration commands, one per line. End with CNTL/Z.
Switch(config)#hostname Testing
Testing(config)#enable secret cisco123
Testing(config)#line vty 0 4
Testing(config-line)#password cisco
Testing(config-line)#login
Testing(config-line)#exit
Testing(config)#interface vlan 1
Testing(config-if)#ip address 192.168.1.10 255.255.255.0
Testing(config-if)#no shutdown
%LINK-5-CHANGED: Interface Vlan1, changed state to up
%LINEPROTO-5-UPDOWN: Line protocol on Interface Vlan1, changed state to up
Testing(config-if)#
Testing(config)#int fa0/1
Testing(config-if)#duplex ?
auto Enable AUTO duplex configuration
full Force full duplex operation
half Force half-duplex operation
Testing(config-if)#duplex full
%LINK-5-CHANGED: Interface FastEthernet0/1, changed state to up
%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/1, changed state to up
Testing(config-if)#speed ?
10 Force 10 Mbps operation
100 Force 100 Mbps operation
auto Enable AUTO speed configuration
Testing(config-if)#speed auto
Testing(config-if)#description koneksi Server Email
Testing(config-if)#no shutdown
Testing(config-if)#exit
Testing(config)#int fa0/2
Testing(config-if)#duplex full
%LINK-5-CHANGED: Interface FastEthernet0/2, changed state to up
%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/2, changed state to up
Testing(config-if)#speed auto
Testing(config-if)#description koneksi Server Dns
Testing(config-if)#no shutdown
Testing(config-if)#exit
Testing(config)#exit
Testing#copy running-config startup-config
Destination filename [startup-config]?
Building configuration…
[OK]
Testing#
Untuk mengecek bisa mengetikan perintah
show ?
show running-config
show interface status
show interface summary
show host

Interface Pada Cisco Router

Serial Interface

Cisco router seri 2621 adalah router akses modular dengan koneksi LAN dan WAN yang dapat dikonfigurasi dengan cara modul dipertukarkan dan kartu antarmuka WAN.

Ethernet interface

Semua Cisco router seri 2621 termasuk tambahan 115Kbps pendukung pelabuhan Dial On Demand Routing, ideal untuk konektivitas back-up WAN. Interface fisik termasuk steker listrik untuk catu daya dan tombol power. Router memiliki dua Fast Ethernet (10/100 RJ-45) konektor untuk transfer data masuk dan keluar. Modul ini juga memiliki dua lainnya RJ-45 konektor pada panel belakang untuk konsol terminal untuk akses sistem lokal dan port tambahan untuk akses sistem remote atau cadangan panggilan menggunakan modem. Port 10/100Base-T LAN memiliki Link / Activity, 10/100Mbps, dan setengah / LED full duplex.

Console

Console Application ( Aplikasi Konsol ) adalah baris perintah yang berorientansi aplikasi yang memungkinkan kita untuk membaca karakter dari konsol, menulis karakter ke konsol dan dijalankan dalam versi DOS. Aplikasi konsol ditulis dalam kode dan didukung oleh nama space System Console.

By

Essay: 4. Sensor asap/gas MQ2 dan ADC MCP3002

Sensor Asap (MQ-2)

(Datasheet Sensor Gas Dan Asap MQ-2 2011).Sensor gas asap MQ-2 ini mendeteksi konsentrasi gas yang mudah terbakar di udara serta asap dan output membaca sebagai tegangan analog.

Sensor gas asap MQ-2 dapat langsung diatur sensitifitasnya dengan memutar trimpot. Sensor ini biasa digunakan untuk mendeteksi kebocoran gas baik di rumah maupun di industri. Gas yang dapat dideteksi diantaranya : LPG, i-butane, propane, methane ,alcohol, Hydrogen, smoke.

Gambar. Sensor MQ-2

Spesifikasi sensor :

  • Catu daya pemanas : 5V AC/DC

  • Catu daya rangkaian : 5VDC

  • Range pengukuran :

200 – 5000ppm untuk LPG, propane

300 – 5000ppm untuk butane

5000 – 20000ppm untuk methane

300 – 5000ppm untuk Hidrogen

100 – 2000ppm untuk alkohol

  • Luaran : analog (perubahan tegangan)

Sensor ini dapat mendeteksi konsentrasi gas yang  mudah terbakar di udara serta asap dan keluarannya berupa tegangan analog. Sensor dapat mengukur konsentrasi gas mudah terbakar dari 300 sampai 10.000 sensor ppm. Dapat beroperasi pada suhu dari -20°C sampai 50°C dan mengkonsumsi arus kurang dari 150 mA pada 5V

MQ-2-smoke-sensor-pinout

MQ-2 Smoke Sensor Circuit with Raspberry Pi Schematic

The circuit we will build is shown below.

MQ-2 smoke sensor circuit with Raspberry Pi

The real-life diagram of the circuit above is shown below.

MQ-2 smoke sensor circuit with Raspberry Pi

Jadi untuk daya sensor asap, kita menghubungkan pin 2 dari sensor asap ke terminal 5V dari pi raspberry dan terminal 3 ke terminal GND dari pi raspberry. Hal ini memberikan asap sensor 5 volt perlu didukung. Output dari sensor masuk ke MCP3002 pin ch0, yang merupakan pin 2 dari MCP3002. Ini adalah salah satu pin input analog dari MCP3002. The MCP3002 perlu mengubah sinyal analog ini dari sensor asap menjadi sinyal digital, yang merupakan satu-satunya jenis sinyal bahwa pi Raspberry dapat menafsirkan. Jika Anda tidak yakin bagaimana untuk menghubungkan MCP3002 converter analog-ke-digital ke Raspberry Pi, lihat artikel full-length, Bagaimana Hubungkan MCP3002 analog-ke-digital converter untuk Raspberry Pi. Ini akan mencakup pinout dari chip MCP3002 serta semua koneksi ke papan Raspberry Pi. Melalui koneksi ini, Raspberry Pi dapat membaca tegangan output analog dari sensor. Kami akan membuatnya dalam kode kita bahwa jika tegangan sensor asap melebihi ambang batas tertentu, yang kita akan tentukan, kita akan membuatnya sehingga program kami output pernyataan, “merokok terdeteksi.” Sekarang kita telah menunjukkan koneksi hardware, satu-satunya komponen lain yang kita butuhkan adalah kode perangkat lunak kami.

By

Pelajari tentang Sensor Suhu DS18B20 dan bagaimana penyambungan alat tersebut sebagai input pada perangkat Raspberry Pi sebagai sensor suhu sebuah ruangan.

DS18B20 adalah sensor suhu digital seri terbaru dari Maxim IC (dulu yang buat adalah Dallas Semiconductor, lalu dicaplok oleh Maxim Integrated Products). Sensor ini mampu membaca suhu dengan ketelitian 9 hingga 12-bit, rentang -55°C hingga 125°C dengan ketelitian (+/-0.5°C ). Setiap sensor yang diproduksi memiliki kode unik sebesar 64-Bit yang disematkan pada masing-masing chip, sehingga memungkinkan penggunaan sensor dalam jumlah besar hanya melalui satu kabel saja (single wire data bus/1-wire protocol). Ini merupakan komponen yang luar biasa, dan merupakan batu patokan dari banyak proyek-proyek data logging dan kontrol berbasis temperatur di luar sana.

Fitur dari sensor suhu DS18B20

Sebagai acuan dan informasi pendukung, sensor ini memiliki fitur utama sebagai berikut:

  1. Antarmuka hanya menggunakan satu kabel sebagai komunikasi (menggunakan protokol Unique 1-Wire)
  2. Setiap sensor memiliki kode pengenal unik 64-bit yang tertanam di onboard ROM
  3. Kemampuan multidrop yang menyederhanakan aplikasi penginderaan suhu terdistribusi
  4. Tidak memerlukan komponen tambahan
  5. Juga bisa diumpankan daya melalui jalur datanya. Rentang dayanya adalah 3.0V hingga 5.5V
  6. Bisa mengukur temperatur mulai dari -55°C hingga +125 °C
  7. Memiliki akurasi +/-0.5 °C  pada rentang -10 °C hingga +85 °C
  8. Resolusi sensor bisa dipilih mulai dari 9 hingga 12 bit
  9. Bisa mengkonversi data suhu ke 12-bit digital word hanya dalam 750 milidetik (maksimal)
  10. Memiliki konfigurasi alarm yang bisa disetel (nonvolatile)
  11. Bisa digunakan untuk fitur pencari alarm dan alamat sensor yang temperaturnya diluar batas (temperature alarm condition)
  12. Penggunaannya bisa dalam lingkungan kendali termostatis, sistem industri, produk rumahan, termometer, atau sistem apapun yang memerlukan pembacaan suhu.

Sensor DS18B20 memiliki dua jenis casing, yang umum beredar di pasaran yaitu casing biasa dan casing anti air (kiri).

 

Interfacing Sensor Suhu DS18B20 di Raspberry Pi

Pada tulisan kali ini saya akan mencoba berbagi cara interfacing sensor DS18B20 di Raspberry Pi. Tujuan dari tulisan ini adalah kita memahami bagaimana cara melakukan pembacaan sensor DS18B20 di Raspberry Pi yang terhubung melalui komunikasi 1-wire, menggunakan bahasa pemrograman Python 3.

Langkah pertama adalah, kita melakukan perakitan perangkat keras. Komponen yang kita perlukan disini adalah sensornya sendiri, baik tipe anti air atau yang biasa dan sebuah resistor/hambatan dengan nilai 4.7KΩ.

DS18B20 adalah “1-wire” sensor yang bisa dihubungkan secara parallel. Jika dipasang lebih dari satu, semua sensor berbagi pin yang sama, tapi resistor 4.7Knya cukup dipasang satu saja.

Fungsi dari resistor ini adalah sebagai ‘pullup’ dari jalur data, dan diperlukan untuk membantu memastikan proses transfer data tetap berjalan stabil dan baik.

Perhatian: meskipun bentuk dari DS18B20 yang biasa berkaki tiga, sangat mirip dengan sensor suhu analog LM35 atau sensor jenis lain seperti TMP36, sensor-sensor itu sama sekali tidak cocok dengan tulisan ini, jadi jangan coba-coba untuk menggunakan tipe lain karena dapat merusak sensor dan Raspberry Pi sendiri.

Skema Pengkabelan Single/Multi DS18B20 di Raspberry Pi

Kabel merah adalah tegangan positif 3.3V, hitam adalah negatif/ground, dan biru adalah Data.

Koding Program Pembacaan Sensor Suhu DS18B20 dengan Python 3

Pada console Raspberry pi, pertama kita perlu menginstall library w1thermsensor. Library ini mendukung pembacaan sensor digital 1-wire tidak hanya DS18B20 tapi juga sensor saudaranya seperti DS18S20 * DS1822 * DS18B20 * DS28EA00 * DS1825/MAX31850K.

Pertama kita aktifkan dulu modul kernel 1-wire. Buka file konfigurasi Raspberry Pi,

$ sudo nano /boot/config.txt

Cari baris yang berisi tulisan #Additional overlays and parameters are documented… dan tambahkan dibawahnya dtoverlay=w1-gpio,gpiopin=4 sehingga menjadi:

# Additional overlays and parameters are documented /boot/overlays/README
dtoverlay=w1-gpio,gpiopin=4

Tekan CTRL+X+Y enter untuk keluar dari nano. Lalu reboot Raspi:

$ sudo reboot

Setelah reboot, kita bisa menginstall w1thermsensor:

$ sudo apt-get install python3-w1thermsensor -y

Tunggu proses download dan instalasi selesai. Setelah itu, kita buka console Raspi lagi untuk mencari tahu kode unik dari sensor yang terpasang. Caranya cukup masuk ke direktori w1_bus_master1 menggunakan perintah ls:

$ ls /sys/devices/w1_bus_master1/

Akan muncul hasil seperti berikut:

28-000005504c8b  w1_master_attempts         w1_master_remove
driver           w1_master_max_slave_count  w1_master_search
subsystem        w1_master_name             w1_master_slave_count
uevent           w1_master_pointer          w1_master_slaves
w1_master_add    w1_master_pullup           w1_master_timeout

Bisa terlihat yang saya bold dan garis bawahi adalah kode unik dari sensor. Kita ambil kodenya setelah tanda (-), angka 28 kita abaikan. Sehingga kode sensor saya adalah 000005504c8b.

Setelah mendapatkan kode unik sensor, kemudian buka Python 3, dan coba ketik perintah berikut untuk memastikan sensor suhu terpasang dengan baik:

$ sudo python3

>>> from w1thermsensor import W1ThermSensor as PembacaSensor
>>> sensorSuhu = PembacaSensor(PembacaSensor.THERM_SENSOR_DS18B20, “000005504c8b”)
>>> sensorSuhu.get_temperature()
32.687

Dari hasil diatas, bisa terlihat suhunya adalah 32.687 derajat selsius. Selanjutnya, program bisa dikembangkan tanpa batas.