5
LANDASAN TEORI
2.1 Video Door Lock Panasonic
BL-C230A merupakan kamera video jaringan nirkabel yang dapat bergerak ke segala arah. Memiliki fitur konektifitas jaringan nirkabel sehingga cocok apabila digunakan pada rumah-rumah warga. Koneksi internet yang menyatu memungkinkan pengguna untuk melihat hasil tangkapan kamera secara langsung walaupun sang pemilik rumah sedang berkeliling dunia menggunakan alamat web pribadi aman (disediakan secara gratis). Hal ini bahkan dimungkinkan untuk pembesaran, pengecilan, maupun perubahan azimuth dari kamera secara jarak jauh. Kamera ini menyediakan video kompresi dengan standar H.264 sehingga menyediakan kualitas video yang lebih tinggi dan menggunakan setengah bandwidth apabila dibandingkan dengan format lain.
Terdapat juga sensor mendeteksi panas tubuh, suara, dan gerak yang sudah disatukan didalam kamera ini. pengaturan sensor dapat disesuaikan sehingga mereka dapat digunakan secara terpisah atau secara pararel pada waktu yang sama. mereka juga dapat diatur agar aktif pada waktu tertentu dalam sehari. Ketika sensor dipicu, suatu gambar ditangkap dan dapat dikirim melalui email atau ke fitur TV VIERA CAST. Ada built-in memori untuk menyimpan gambar dan perangkat lunak perekaman untuk menghubungkan hingga 16 kamera.
Gambar 2.1 Panasonic BL-C230A
2.2 LCD Display
LCD adalah Sebuah layar kristal cair yang merupakan display panel datar, tampilan visual elektronik, atau tampilan video yang menggunakan sifat modulasi cahaya kristal cair. Komponen Kristal cair ini tidak memancarkan cahaya secara langsung.
LCD digunakan dalam berbagai aplikasi termasuk monitor komputer, televisi, panel instrumen, menampilkan pesawat kokpit, dan lain-lainnya. Mereka umum dalam perangkat konsumen seperti pemutar video, perangkat game, jam, jam tangan, kalkulator, dan telepon. LCD pada masa kini telah menggantikan tabung sinar katoda (CRT) dan telah dapat menampilkan dalam sebagian besar aplikasi. Mereka tersedia dalam berbagai ukuran layar lebih luas dibanding CRT dan plasma display. LCD tidak menggunakan fosfor sehingga tidak berbahaya.
2.2.1 Cara Kerja LCD
Setiap pixel dari sebuah LCD biasanya terdiri dari lapisan molekul yang selaras antara dua elektroda transparan, dan dua filter polarisasi, sumbu transmisi cahaya yang (di sebagian besar kasus) tegak lurus satu sama lain. Sehingga
dengan filter polarisasi ini sinar yang melewati filter pertama akan diblokir oleh polarizer (silang) filter kedua.
Permukaan elektroda yang berada dalam kontak dengan bahan kristal cair diperlakukan sehingga untuk menyelaraskan molekul kristal cair dalam arah tertentu. Perawatan ini biasanya terdiri dari lapisan polimer tipis satu arah ( biasanya digosok menggunakan kain), sehingga arah alignment kristal cair ini kemudian ditentukan oleh arah menggosoknya. Elektroda terbuat dari konduktor transparan Indium Tin Oksida (ITO). Liquid Crystal Display pada hakekatnya merupakan perangkat “ pasif ” yang merupakan katup cahaya sederhana. Untuk mengelola dan mengatur data yang akan ditampilkan dilakukan oleh satu atau lebih sirkuit biasanya disebut sebagai driver LCD.
Sebelum medan listrik diterapkan, orientasi molekul kristal cair ditentukan oleh penyelarasan pada permukaan elektroda. Dalam perangkat twisted nematic (masih perangkat kristal cair yang paling umum), arah keselarasan permukaan pada dua elektroda yang tegak lurus satu sama lain, sehingga molekul mengatur diri mereka dalam struktur heliks, atau berputar. Ini menginduksi rotasi polarisasi dan akan menghalangi cahaya yang masuk. Jika tegangan yang diberikan cukup besar, molekul kristal cair di tengah lapisan hampir sepenuhnya dipilin dan polarisasi cahaya insiden tidak diputar saat melewati lapisan kristal cair. Lampu ini kemudian akan terutama terpolarisasi tegak lurus terhadap filter kedua, dan dengan demikian akan diblokir dan akan muncul pixel hitam. Dengan mengontrol tegangan diterapkan di seluruh lapisan kristal cair di setiap pixel, cahaya dapat diperbolehkan untuk melewati dalam jumlah yang bervariasi sehingga level cahaya yang keluar akan bervariasi.
Kedua bahan kristal cair dan bahan lapisan alignment mengandung senyawa ionik. Jika medan listrik dari satu polaritas tertentu diterapkan untuk jangka waktu yang lama, bahan ini ionik akan tertarik ke permukaan dan menurunkan kinerja perangkat. Hal ini harus dihindari baik dengan menerapkan arus bolak-balik atau dengan membalik polaritas medan listrik tersebut.
2.2.2 LCD Matrix 16x2 Hitachi HD44780
Hitachi HD44780 LCD controller adalah salah satu matriks layar kristal cair yang paling umum dot (LCD) layar controller yang tersedia. Hitachi mengembangkan mikrokontroler khusus untuk drive layar LCD alfanumerik dengan antarmuka yang sederhana yang dapat terhubung ke mikrokontroler atau mikroprosesor tujuan umum.
Tegangan operasi nominal untuk lampu latar LED 5V pada kecerahan penuh, dengan peredupan pada tegangan yang lebih rendah tergantung pada detil seperti warna LED. Non-LED lampu latar sering membutuhkan tegangan yang lebih tinggi.
Gambar 2.2 LCD Hitachi HD44780
D44780U dot-matrix liquid crystal display controller dan driver yang menampilkan alphanumerics LSI, dan simbol. Hal ini dapat dikonfigurasi untuk drive dot-matrix tampilan kristal cair di bawah kontrol dari 4 - atau 8-bit mikroprosesor. Karena semua fungsi-fungsi seperti RAM tampilan, karakter generator, dan sopir kristal cair, yang dibutuhkan untuk mengemudi layar kristal cair dot-matriks secara internal diberikan pada satu chip, sebuah sistem minimal dapat dihubungkan dengan controller / driver.
Sebuah HD44780U tunggal dapat menampilkan hingga 8-karakter satu baris atau dua 8-karakter baris. HD44780U ini memiliki kompatibilitas fungsi pin dengan HD44780S yang memungkinkan pengguna untuk dengan mudah
mengganti LCD-II dengan HD44780U. Karakter HD44780U generator ROM diperpanjang untuk menghasilkan 208 5 '8 dot karakter font dan 32 5 '10 karakter font dot total 240 font karakter yang berbeda.
Catu daya yang rendah (2.7V ke 5.5V) dari HD44780U ini cocok untuk setiap produk baterai berbasis portabel membutuhkan disipasi daya rendah. Beberapa fitur lainnya adalah sebagai berikut:
Tegangan kerja yang Rendah : ¾ 2,7 sampai 5.5V.
Antar muka kecepatan tinggi bus MPU ¾ 2 MHz (ketika VCC = 5V) 4-bit atau 8-bit diaktifkan antarmuka MPU
80 '8-bit display RAM (80 karakter maks.)
9920-bit karakter ROM untuk pembangkit total 240 font karakter ¾ font karakter 208 (5'8 titik) ¾ karakter font 32 (5 '10 titik)
64' 8-bit karakter Generator RAM ¾ font karakter 8 (5 '8 titik) ¾ font karakter 4 (5 '10 titik)
Rangkaian ulang otomatis yang menginisialisasi controller / driver setelah power on
Osilator internal dengan resistor eksternal Konsumsi daya rendah
Gambar 2.3 Blok Diagram HD44780
2.3 Mikrokontroller Arduino Uno
Pengendali mikro ( Inggris: microcontroller ) adalah sistem mikroprosesor lengkap yang terkandung di dalam sebuah chip. Mikrokontroler berbeda dari mikroprosesor serba guna yang digunakan dalam sebuah PC, karena sebuah mikrokontroler umumnya telah berisi komponen pendukung sistem minimal mikroprosesor, yakni memori dan antarmuka I/O.
Gambar 2.4 Microcontroller Arduino Uno
Sistem komputer dewasa ini paling banyak justru terdapat di dalam peralatan lain, seperti telepon, jam, perangkat rumah tangga, kendaraan, dan bangunan. Sistem embedded biasanya mengandung syarat minimal sebuah sistem mikroprosesor yaitu memori untuk data dan program, serta sistem antarmuka input/output yang sederhana. Antarmuka semacam keyboard, tampilan, disket, atau printer yang umumnya ada pada sebuah komputer pribadi justru tidak ada pada sistem mikrokontroler. Sistem mikrokontroler lebih banyak melakukan pekerjaan-pekerjaan sederhana yang penting seperti mengendalikan motor, saklar, resistor variabel, atau perangkat elektronis lain. Seringkali satu-satunya bentuk antarmuka yang ada pada sebuah sistem mikrokontroler hanyalah sebuah LED, bahkan ini pun bisa dihilangkan jika tuntutan konsumsi daya listrik mengharuskan demikian.
Perkembangan Teknologi Mikrokontroler sekarang ini sudah sampai pada Mikrokontroler dengan platform open source Arduino Uno. Arduino adalah open-source elektronik prototyping platform berbasis pada perangkat keras dan perangkat lunak yang fleksibel dan mudah digunakan. Hal Ini dimaksudkan bagi para seniman, desainer, penggemar, dan siapapun yang tertarik dalam menciptakan objek atau lingkungan yang interaktif.
Arduino bisa merasakan lingkungan dengan menerima masukan dari berbagai sensornya dan dapat melakukan pengendalian sekitarnya dengan menggunakan lampu, motor, aktuator dan lain-lainnya. Mikrokontroler di modul ini diprogram menggunakan bahasa pemrograman Arduino (berdasarkan Wiring) dan pengembangan lingkungan Arduino (berdasarkan Processing). Proyek Arduino dapat berdiri sendiri atau mereka dapat berkomunikasi dengan perangkat lunak yang berjalan pada komputer (misalnya Flash, Pengolahan,MaxMSP).
Modul arduino ini dapat dibangun sendiri atau dibeli jadi. Perangkat lunaknya dapat didownload secara gratis. Desain referensi perangkat keras (File CAD) yang tersedia di bawah lisensi open-source, dan bebas untuk menyesuaikannya dengan kebutuhan. Ada banyak jenis modul arduino Semua modul berbeda antara satu dengan yang lainnya. Hal yang membedakan antar modul arduino adalah chipsetnya, ukuran onboard memori, on-board peripheral dan fungsinya. Dari segi arsitektur dan instruksi yang digunakan mereka bisa dikatakan hampir sama.
2.3.1 Sketch
Sketch adalah lembar kerja pada system arduino yang digunakan untuk menulis listing program, mengeditnya, mengcompile dan kemudian mengupload ke dalam microcontroller arduino tersebut. Sketch Arduino terdiri dari bagian-bagian seperti comments, Setup (), dan Loop (). Dibawah ini akan dijelaskan secara lebih detail mengenai bagian-bagian tersebut.
2.3.1.1 Comments
Biasanya komentar digunakan untuk memudahkan bagi orang-orang membaca kode yang telah ditulis oleh engineer, untuk menjelaskan tujuan dari dibuatnya program ini, cara kerjanya, atau mengapa program tersebut ditulis seperti itu. Dibawah adalah contoh Comments :
/*
* Blink
*
* The basic Arduino example. Turns on an LED on for one second, * then off for one second, and so on... We use pin 13 because, * depending on your Arduino board, it has either a built-in LED * or a built-in resistor so that you need only an LED. *
* http://www.arduino.cc/en/Tutorial/Blink */
Adalah sesuatu yang baik untuk memberikan komentar atas sketch, salah satunya adalah untuk membantu ketika adanya kode yang ingin diperbaiki serta hal ini dapat membantu orang lain untuk belajar dari atau memodifikasi kode yang sudah berjalan. Ada comments dengan bentuk lain, yaitu single-line. Comments ini dimulai dengan “ // “ dan lanjut hingga ke akhir baris. Sebagai contohnya adalah :
int ledPin = 13; // LED connected to digital pin 13
Kalimat yang berisi pesan ini "LED connected to digital pin 13" adalah sebuah comments yang digunakan untuk menjelaskan mengenai variable 13.
2.3.1.2 Fungsi Setup ()
Ada beberapa fungsi khusus yang merupakan bagian dari sketch yaitu “ Setup () “. Fungsi Setup () dipanggil sekali, yaitu ketika sketsa dimulai. Fungsi ini merupakan tempat yang baik untuk melakukan pengaturan-pengaturan seperti :
Pengaturan mode output pada pin digital Inisialisasi library microcontroller arduino Inisialisasi Variabel, dan lain-lain
fungsi setup hanya akan berjalan sekali, setelah setiap PowerUp atau setelah tombol reset pada rangkaian modul Arduino ditekan. Berikut adalah contoh dari fungsi setup () : void setup() { Serial.begin(9600); pinMode(buttonPin, INPUT); } 2.3.1.3 Fungsi Loop ()
Fungsi Loop () adalah fungsi utama dalam sketch arduino ini. Fungsi ini dipanggil berulang kali oleh modul microcontroller untuk menjalankan program yang telah tersimpan di dalamnya. Berikut adalah contoh penggunaan dari fungsi Loop () : void loop() { if (digitalRead(buttonPin) == HIGH) serialWrite('H'); else serialWrite('L'); delay(1000); }
fungsi loop () sesuai dengan namanya, melakukan perulangan setiap listing program yang dituliskan, yang pada saat tertentu variable dari program anda telah berubah sehingga system merespon dan menghasilkan output baru yang berbeda dengan hasil output pertama.
2.3.2 Fitur-fitur Microcontroller Arduino Uno
Berikut ini adalah Fitur-fitur dari perangkat keras microcontroller Arduino Uno. Perangkat keras ini dapat diprogram dengan mudah pada sketch. Ada
beberapa fitur-fitur perangkat keras yang dapat ditemukan pada modul microcontroller arduino uno, berikut adalah penjelasan dari fitru-fitur tersebut :
2.3.2.1 Pin I/O Digital
I/O Port pada modul microcontroller Arduino Uno dikenal dengan Pin Digital. Pin ini dapat dikonfigurasi baik sebagai input ataupun dapat digunakan sebagai output.
Karakteristik pin digital ketika menjadi input
Arduino dengan chipsnya Atmega, secara default pengaturan port digital adalah pengaturan untuk port masukan, sehingga mereka tidak perlu secara eksplisit dinyatakan sebagai input dengan pinMode (). Pin dikonfigurasi sebagai input sehingga pin tersebut berada dalam keadaan impedansi tinggi. Salah satu penjelasannya adalah pin input akan mengambil daya yang sangat kecil sekali pada rangkaian ketika dalam kondisi pengambilan sampel, dapat dikatakan bahwa ada resistor seri dari 100 Megaohm di depan pin tersebut. Hal ini berarti bahwa hanya sangat sedikit arus yang digunakan untuk memindahkan kondisi pin input tersebut dari keadaan satu ke keadaan yang lain. Sehingga hal ini dapat membuat pin berguna untuk melakukan tugas-tugas seperti membaca sensor sentuh kapasitif, membaca sebuah LED sebagai dioda, atau membaca sebuah sensor analog dengan skema seperti RCTime. Akan tetapi hal ini juga berarti, apabila ada pin input yang tidak terhubung ke rangkaian, akan menghasilkan beberapa keadaaan seperti akan berlogika acak, menghasilkan noise, atau akan menjadi kapasitor coupling pada pin yang berdekatan dengan Pin tersebut.
Adalah hal yang berguna untuk mengarahkan pin masukan ke keadaan yang dikenal jika tidak ada input. Hal ini dapat dilakukan dengan menambahkan resistor pullup (ke +5 V), atau resistor pull-down (resistor ke tanah) pada input, dengan resistor 10 Kohm. Ada juga resistor pullup 20 KOhm yang dapat di akses
pada chip Atmega dengan perangkat lunak. Berikut ini adalah cara untuk mengakses resistor pullup built-in.
pinMode(pin, INPUT); // set pin to input
digitalWrite(pin, HIGH); // turn on pullup resistors
Karakteristik pin digital ketika menjadi Output
Apabila Pin digital ini dikonfigurasi sebagai OUTPUT dengan pinMode (), maka Pin ini akan berada dalam keadaan impedansi rendah. Hal ini berarti bahwa mereka dapat menyediakan sejumlah besar arus ke rangkaian lainnya. Pin Atmega dapat menjadi sumber arus positif atau menjadi sumber arus negatif hingga 40 mA (milliamps) arus ke perangkat lain. Hal ini cukup untuk menghidupkan sebuah LED, menjalankan banyak sensor, namun sayangnya saat ini tidak cukup untuk menjalankan relay, solenoida, atau motor.
Hubungan pendek pada pin Arduino, atau mencoba untuk menjalankan rangkaian dengan arus yang besar, dapat merusak atau menghancurkan transistor output pada pin, atau merusak chip Atmega keseluruhan. Sering kali ini akan menghasilkan sebuah pin "mati" dalam mikrokontroler akan tetapi chip yang tersisa masih akan berfungsi secara memadai. Maka untuk alasan ini, adalah sebuah ide yang baik untuk menghubungkan pin OUTPUT ke perangkat lain dengan resistor 470 Ohm atau 1 KOhm.
2.3.2.2 Pin I/O Analog
Sebagian besar port Arduino (Atmega) adalah pin analog yang dapat dikonfigurasi dan digunakan persis dengan cara yang sama seperti pin digital. Berikut ini adalah karakteristik dari Pin Analog.
A/D Converter
Chips Atmega digunakan pada Arduino memiliki 6 saluran analog-ke-digital converter (ADC). ADC tersebut memiliki 10 bit resolusi dari 0 ke 1023. Sedangkan fungsi utama dari pin analog pada Arduino adalah untuk membaca sensor analog. pin analog juga memiliki semua fungsi General Purposes input / output (GPIO) pin (sama dengan pin digital 0-13).
Pemetaan Pin
Pin analog dapat digunakan sama seperti pin digital, menggunakan penamaan A0 (untuk input analog 0), A1, dll Sebagai contoh, kode berikut digunakan untuk mengatur 0 pin analog ke output, dan mengaturnya berlogika “High” :
pinMode(A0, OUTPUT); digitalWrite(A0, HIGH);
Pull up Resistor
Pin yang analog juga memiliki resistor pullup, yang bekerja sama seperti resistor pullup pada pin digital. Mereka diaktifkan dengan mengeluarkan perintah seperti dibawah ini :
digitalWrite(A0, HIGH); // set pullup on analog pin 0
namun harus disadari bahwa mengatur Resistor Pull up akan mempengaruhi nilai yang akan diambil oleh analogRead (). Hal tersebut dikarenakan Perintah analogRead tidak akan bekerja dengan benar jika pin sebelumnya di gunakan sebagai output, akan tetapi apabila hal ini terjadi maka pin tersebut harus di atur kembali menjadi masukan sebelum menggunakan perintah analogRead. Hal yang sama pula harus diterapkan jika pin telah diatur untuk menjadi logika “High” sebagai output, resistor pullup harus diatur ketika beralih kembali ke input.
2.3.2.3 PWM ( Pulse Width Modulator )
Pulse Width Modulation, atau PWM, adalah teknik untuk mendapatkan hasil yang analog dengan teknik digital. Digital kontrol digunakan untuk membuat gelombang persegi, dan kemudian sinyal diatur sehingga beralih antara hidup dan mati secara cepat. Pola on-off ini dapat mensimulasikan tegangan Hidup (5 Volt) dan off (0 Volt) dengan mengubah sebagian waktu sinyal Hidup dengan waktu pada sinyal mati. Lamanya "on time" disebut lebar pulsa. Untuk mendapatkan berbagai nilai analog, pengguna akan mengubah, atau memodulasi, yang lebar pulsa. Jika pengguna mengulangi pola on-off ini dengan cukup cepat dan menggunakan LED misalnya sebagai output, maka hasilnya adalah pengendalian kecerahan LED.
Dalam grafik di bawah, garis-garis hijau merupakan periode waktu yang teratur. Ini adalah durasi atau periode yang merupakan kebalikan dari frekuensi PWM. Dengan kata lain, dengan frekuensi PWM Arduino di sekitar 500Hz, garis hijau hanya akan teratur selama 2 milidetik saja. Fungsi untuk analogWrite () memiliki nilai skala dari 0 – 255. Ketika analogWrite memiliki (255) maka siklus akan 100% (selalu high), dan analogWrite (127) adalah siklus kerja 50% (High pada separuh waktu dan low pada separuh waktu).
2.3.2.4 Memory
Ada tiga jenis memori dalam mikrokontroler yang digunakan pada moArduino (ATmega168)
Flash memori adalah tempat dimana listing program (sketch) Arduino disimpan.
SRAM adalah di mana listing program (sketch) Arduino menciptakan dan memanipulasi variabel ketika berjalan sketch tersebut dijalankan.
EEPROM adalah ruang memori untuk menyimpan informasi jangka panjang.
Flash memori dan EEPROM adalah non-volatile (informasi tetap ada setelah power dimatikan). Sedangkan SRAM adalah volatile dan akan hilang saat tidak adanya power supply.
Chip ATmega168 memiliki kapasitas memori sebagai berikut : Flash 16k bytes (of which 2k is used for the bootloader) SRAM 1024 bytes
EEPROM 512 byte
2.3.3 Teknik memprogram Microcontroller
Berikut adalah konsep dalam memprogram modul microcontroller arduino uno :
2.3.3.1 Variabel
Variabel adalah tempat untuk menyimpan data. Variabel memiliki nama, nilai, dan tipe. Sebagai contoh, pernyataan ini (disebut deklarasi):
Perintah ini menciptakan variabel yang namanya pin, yang nilainya adalah 13, dan bertipe int. apabila user membutuhkan variable ini, maka akan dapat menunjuk ke variabel ini dengan memanggil namanya. pada saat itu variable ini nilainya akan dicari dan digunakan. seperti dalam pernyataan ini:
pinMode(pin, OUTPUT);
Nilai dari pin (13) ini akan diteruskan ke perintah pinMode (). Dalam hal ini, sebenarnya user tidak perlu menggunakan variabel, pernyataan ini akan bekerja dengan baik sama seperti :
pinMode(13, OUTPUT);
Keuntungan dari penggunaan variabel dalam hal ini adalah bahwa user hanya perlu menentukan jumlah pin yang digunakan sekali, akan tetapi user dapat menggunakannya berkali-kali. sehingga jika user kemudian memutuskan untuk mengubah penggunaan dari pin 13 menjadi pin 12, user hanya perlu mengubah sedikit kode. user juga dapat menggunakan nama pengenal untuk membuat pentingnya variabel yang jelas (misalnya program mengendalikan LED RGB memungkinkan penamaan variabel redPin, greenPin, dan bluePin. Sebuah variabel memiliki kelebihan lain atas nilai seperti mengubah nilai dari variabel menggunakan perintah Sebagai contoh:
pin = 12;
Perintah ini akan mengubah nilai dari variabel menjadi 12. Perhatikan bahwa user tidak menentukan jenis variable, hal tersebut tidak diubah oleh perintah tersebut. Artinya, nama variabel secara permanen diasosiasikan dengan jenis, user hanya melakukan perubahan nilainya. user harus mendeklarasikan variabel sebelum user memberikan nilai untuk itu. Jika tidak maka pesan error ini akan muncul "error: pin was not declared in this scope".
Bila user menetapkan satu variabel yang lain, user membuat salinan nilai variable tersebut dan menyimpan salinannya pada lokasi di memori yang terkait dengan variabel lain. Mengubah satu tidak berpengaruh pada yang lain. Misalnya, setelah:
int pin = 13; int PIN2 = pin; pin = 12;
hanya variable pin yang memiliki nilai 12, sedangkan untuk variable PIN2 memiliki nilai 13. Hal ini mengacu pada bagian dari listing program user di mana variabel tersebut digunakan. Sebagai contoh, jika user ingin dapat menggunakan variabel mana saja dalam programnya, maka user dapat menyatakan di bagian atas listing programnya. Ini disebut variabel global, berikut adalah contohnya:
int pin = 13; void setup() { pinMode(pin, OUTPUT); } void loop() { digitalWrite(pin, HIGH); }
Seperti yang terlihat, pin yang digunakan di kedua setup () dan loop () fungsi. Kedua fungsi mengacu pada variabel yang sama, sehingga perubahan itu satu akan mempengaruhi nilai yang telah di yang lain, seperti di bawah ini :
int pin = 13; void setup() { pin = 12; pinMode(pin, OUTPUT); } void loop() { digitalWrite(pin, HIGH); }
Di sini, digitalWrite () fungsi yang dipanggil dari loop () akan melewati nilai 12, karena itu nilai yang ditugaskan ke variabel di setup () fungsi. Jika user hanya perlu menggunakan variabel dalam sebuah perintah tunggal, user dapat menyatakan variable tersebut di Setup (), sehingga ruang lingkup variable tersebut akan terbatas pada perintah tersebut. Sebagai contoh :
void setup() { int pin = 13; pinMode(pin, OUTPUT); digitalWrite(pin, HIGH); }
Dalam perintah ini, pin variabel hanya dapat digunakan dalam setup () fungsi. Jika user mencoba untuk melakukan sesuatu seperti ini:
void loop() {
digitalWrite(pin, LOW); // wrong: pin is not in scope here. }
User akan mendapatkan pesan yang sama seperti sebelumnya"error: pin was not declared in this scope". Hal ini berarti meskipun user telah menyatakan variable pin dalam program, user mencoba untuk menggunakan suatu variabel di luar jangkauannya. Hal ini berarti jika sebuah variabel bersifat global, nilainya bisa diubah di mana saja di dalam listing program tersebut, sehingga user perlu memahami keseluruhan program untuk mengetahui apa yang akan terjadi pada variabel. Misalnya, jika variabel user memiliki nilai yang tidak Anda harapkan, akan lebih mudah untuk mencari tahu di mana nilai tersebut berasal dari jika variabel memiliki ruang lingkup terbatas.
2.3.3.2 Fungsi-Fungsi
Segmentasi program ke fungsi memungkinkan programmer untuk membuat potongan-potongan program yang melakukan tugas yang telah
didefinisikan sebelumnya dan kemudian kembali ke awal program dimana fungsi itu dipanggil. Menciptakan sebuah fungsi sangat berguna ketika salah satu kebutuhan untuk melakukan tindakan yang sama beberapa kali dalam sebuah program.
Untuk programer yang terbiasa menggunakan BASIC, fungsi dalam Arduino memberikan (dan memperluas) kegunaan menggunakan subrutin (gosub dalam BASIC). Menstandarisasikan program ke fungsi memiliki beberapa keuntungan yaitu membantu programmer tetap terorganisir yang seringkali hal ini membantu pada awal konsep program. Fungsi juga mengelompokan satu tindakan dalam satu tempat sehingga fungsi hanya harus dipikirkan dan debugged sekali. Hal ini juga mengurangi kemungkinan untuk kesalahan dalam modifikasi, jika ada listing program yang perlu diubah. Fungsi juga membuat sketsa keseluruhan menjadi lebih kecil dan lebih kompak karena hanya bagian kode tertentu saja yang digunakan kembali berkali-kali. Fungsi membuat lebih mudah untuk menggunakan kembali kode dalam program lain dengan membuatnya lebih modular, dan sebagai efek sampingnya, menggunakan fungsi juga sering membuat program lebih mudah dibaca.
Ada dua fungsi yang diperlukan dalam sketsa Arduino, setup () dan loop (). Fungsi lainnya harus dibuat di luar kurung dari dua fungsi. Sebagai contoh, dibawah ini adalah fungsi sederhana untuk mengalikan dua angka.
void setup(){ Serial.begin(9600); } void loop() { int i = 2; int j = 3; int k;
k = myMultiplyFunction(i, j); // k now contains 6 Serial.println(k);
delay(500); }
int myMultiplyFunction(int x, int y){ int result; result = x * y; return result; } 2.3.3.3 Library-Library
Sebuah Kelas hanyalah sebuah kumpulan fungsi dan variabel yang semua berada di satu tempat. Fungsi-fungsi dan variabel dapat bersifat publik, yang berarti bahwa mereka dapat diakses oleh orang yang menggunakan library user, atau Private yang berarti mereka hanya dapat diakses dari dalam kelas itu sendiri. Setiap kelas memiliki fungsi khusus yang dikenal sebagai konstruktor, yang digunakan untuk membuat sebuah instance dari kelas. Konstruktor ini memiliki nama yang sama dengan kelas, dan tidak ada jenis kembali.
library menyediakan fungsionalitas tambahan untuk digunakan dalam sketch, misalnya menggunakan perangkat keras atau memanipulasi data. Untuk menggunakan perpustakaan di sketch, pilih Sketch> Impor Library Menu. Hal ini akan memasukkan satu atau lebih pernyataan # include di bagian atas sketch dan akan mengcompile sketch user dengan Library. Karena library masuk ke sketch user hal ini menyebabkan peningkatan jumlah memory yang diperlukan untuk sketch ini. Jika sketch tidak lagi membutuhkan library, cukup hapus pernyataannya # include dari atas sketch.
Ada banyak library yang sudah ada di dalam perangkat lunak arduino, Dan beberapa dapat didownload dari berbagai sumber. Library dapat ditemukan dalam folder khusus, dan biasanya akan berisi sedikitnya dua file dengan akhiran h Dan satu dengan akhiran cpp.
2.4 Semikonduktor Transistor
Transistor adalah alat semikonduktor yang dipakai sebagai penguat, sebagai pemutus rangkaian, penyambung (switching), stabilisasi tegangan, modulasi sinyal, dan lain-lainnya. Transistor dapat berfungsi semacam keran listrik, dimana berdasarkan arus inputnya (BJT) atau tegangan inputnya (FET), memungkinkan pengaturan arus listrik yang sangat akurat dari rangkaian sumber listriknya.
Gambar 2.6 Transistor through-hole
Pada umumnya, transistor memiliki 3 terminal, yaitu Basis (B), Emitor (E) dan Kolektor (C). Tegangan yang di satu terminalnya misalnya Emitor dapat dipakai untuk mengatur arus dan tegangan yang lebih besar daripada arus input Basis, yaitu pada keluaran tegangan dan arus output Kolektor.
Transistor merupakan komponen yang sangat penting dalam dunia elektronik modern. Dalam rangkaian analog, transistor digunakan dalam amplifier (penguat). Rangkaian analog melingkupi pengeras suara, Penstabil sumber listrik (stabilisator), dan penguat sinyal radio. Dalam rangkaian-rangkaian digital, transistor digunakan sebagai saklar berkecepatan tinggi. Beberapa transistor juga dapat dirangkai sedemikian rupa sehingga berfungsi sebagai logic gate, memori, dan fungsi rangkaian-rangkaian lainnya.
Gambar 2.7 Contoh Rangkaian Penguat transistor
2.4.1 Cara kerja transistor
Silikon murni adalah sebuah material dengan karakteristik material isolator alami. namun jika pada silicon sedikit material pencemar ditambahkan seperti Arsenik, dengan sebuah proses yang dinamakan doping dalam jumlah yang cukup kecil sehingga tidak mengacaukan tata letak kristal silikon, maka Arsenik akan memberikan elektron bebas dan hasilnya memungkinkan terjadinya konduksi arus listrik. Hal Ini terjadi karena Arsenik memiliki 5 atom di orbit terluarnya, sedangkan Silikon hanya 4 atom. Konduksi terjadi karena pembawa muatan bebas telah ditambahkan (oleh kelebihan elektron dari Arsenik). Dalam kasus ini, sebuah Silikon tipe-n (n untuk negatif, karena pembawa muatannya adalah elektron yang bermuatan negatif) telah terbentuk.
Selain itu, silikon dapat dicampur dengan Boron untuk membuat semikonduktor tipe-p. Karena Boron hanya memiliki 3 elektron di orbit paling luarnya, pembawa muatan yang baru, dinamakan "lubang" (hole, pembawa muatan positif), akan terbentuk di dalam tata letak kristal silikon.
Dalam tabung hampa, pembawa muatan (elektron) akan dipancarkan oleh emisi thermionic dari sebuah katode yang dipanaskan oleh kawat filamen. Karena itu, tabung hampa tidak bisa membuat pembawa muatan positif (hole).
Telah diketahui bahwa pembawa muatan yang bermuatan sama akan saling tolak menolak, sehingga tanpa adanya gaya yang lain, pembawa-pembawa muatan ini akan terdistribusi secara merata di dalam materi semikonduktor. Namun di dalam sebuah transistor bipolar (atau diode junction) dimana sebuah semikonduktor tipe-p dan sebuah semikonduktor tipe-n dibuat dalam satu keping silikon, pembawa-pembawa muatan ini cenderung berpindah ke arah sambungan P-N tersebut (perbatasan antara semikonduktor tipe-p dan tipe-n), karena tertarik oleh muatan yang berlawanan dari seberangnya.
Kenaikan dari jumlah pencemar (doping level) akan meningkatkan konduktivitas dari materi semikonduktor, asalkan tata-letak kristal silikon tetap dipertahankan. Dalam sebuah transistor bipolar, daerah terminal emiter memiliki jumlah doping yang lebih besar dibandingkan dengan terminal basis. Rasio perbandingan antara doping emiter dan basis adalah satu dari banyak faktor yang menentukan sifat penguatan arus (current gain) dari transistor tersebut.
Jumlah doping yang diperlukan oleh sebuah semikonduktor adalah sangat kecil, dalam ukuran satu berbanding seratus juta, dan ini menjadi kunci dalam keberhasilan semikonduktor. Dalam sebuah material metal, populasi pembawa muatan sangat tinggi, yaitu satu pembawa muatan untuk setiap atom. Dalam metal untuk mengubahnya menjadi isolator, pembawa muatan harus disapu dengan memasang suatu beda tegangan. Dalam metal, tegangan ini sangat tinggi, jauh lebih tinggi dari yang mampu menghancurkannya. Namun, dalam sebuah semikonduktor hanya ada satu pembawa muatan dalam beberapa juta atom. Jumlah tegangan yang diperlukan untuk menyapu pembawa muatan dalam sejumlah besar semikonduktor dapat dicapai dengan mudah. Dengan kata lain, listrik di dalam metal adalah inkompresible (tidak bisa dimampatkan), seperti fluida. Sedangkan dalam semikonduktor, listrik bersifat seperti gas yang bisa dimampatkan. Semikonduktor dengan doping dapat diubah menjadi isolator, sedangkan metal tidak.
Gambaran di atas menjelaskan konduksi disebabkan oleh pembawa muatan, yaitu elektron atau lubang, namun pada dasarnya transistor bipolar adalah pergerakan dari pembawa muatan tersebut untuk menyebrangi daerah depletion
zone. Depletion zone ini terbentuk karena transistor tersebut diberikan tegangan bias terbalik, oleh tegangan yang diberikan di antara basis dan emiter. Walau transistor terlihat seperti dibentuk oleh dua diode yang disambungkan, namun sebuah transistor sendiri tidak bisa dibuat dengan menyambungkan dua diode. Untuk membuat transistor, bagian-bagiannya harus dibuat dari sepotong kristal silikon, dengan sebuah daerah basis yang sangat tipis.
Tabel 2.1 Semiconductor material characteristics
Semiconductor material Junction forward voltage V @ 25 °C Electron mobility m2/(V·s) @ 25 °C Hole mobility m2/(V·s) @ 25 °C Max. junction temp. °C Ge 0.27 0.39 0.19 70 to 100 Si 0.71 0.14 0.05 150 to 200 GaAs 1.03 0.85 0.05 150 to 200 Al-Si junction 0.3 — — 150 to 200
2.4.2 Fungsi-fungsi dasar Transistor
Fungsi penting sebuah transistor adalah kemampuannya untuk menggunakan sinyal yang sangat kecil yang masuk dari satu terminal transistor
tersebut untuk melakukan pengendalian sinyal yang lebih besar pada satu terminal yang lain lagi. Hal ini disebut dengan gain. Sebuah transistor dapat mengendalikan outputnya sesuai dengan sinyal input sehingga transistor ini berkerja sebagai amplifier. Selain hal tersebut transistor dapat digunakan untuk menghidupkan maupun mematikan rangkaian seperti fungsinya sakelar.
2.4.2.1 Transistor sebagai Sakelar
Transistor biasanya digunakan sebagai sakelar elektronik, baik untuk kegunaan pada daya besar seperti sakelar pada power supply, maupun digunakan pada daya rendah seperti gerbang logika.
Ketika tegangan pada terminal kolektor memiliki beda potensial dengan tegangan pada catu daya yang diakibatkan oleh adanya tahanan beban, maka arus akan mengalir dari catu daya rangkaian menuju terminal kolektor dari transistor. Namun setelah beberapa saat ketika arus sudah mengisi terminal kolektor dan beda potensial antara tegangan pada terminal kolektor dengan tegangan pada catu daya semakin tipis akibat adanya arus yang mengalir maka pada suatu saat arus akan berhenti mengalir dikarenakan sudah tidak ada lagi beda potensial lagi antara tegangan catu daya dengan tegangan pada kaki kolektor, pada saat ini transistor dikatakan berada didalam kondisi saturasi atau jenuh. Namun ketika tegangan pada terminal basis diterapkan oleh dan arus mengalir melalui kaki basis, maka arus pada terminal kolektor akan mengalir menuju emitor. Pada kondisi ini transistor dinamakan cut off, arus akan terus mengalir sampai pada suatu ketika dimana tegangan pada terminal basis tidak ada lagi sehingga arus tidak ada yang mengalir melalui basis dan menyebabkan arus pada terminal kolektor pun tidak lagi mengalir.
Gambar 2.8 Contoh Rangkaian transistor sebagai sakelar
2.4.2.2 Transistor sebagai Penguat
Rangkaian penguat emitor bersama di rancang sehingga sedikit perubahan tegangan pada tegangan input akan mengubah sedikit arus pada terminal basis sebuah transistor. Arus yang besar pada terminal kolektor yang dikendalikan oleh perubahan arus yang kecil pada terminal basis, sehingga penguatan adalah perubahan arus yang kecil pada terminal input akan menghasilkan perubahan arus yang sangat besar pada terminal output. Berbagai konfigurasi penguat transistor tunggal yang mungkin dapan menghasilkan penguatan tegangan, penguatan arus atau bahkan penguatan kedua-duanya.
Dari ponsel sampai ke televisi, sejumlah besar produk elektronika pada masa kini memiliki transistor yang berfungsi sebagai amplifiers untuk penguat suara, transmisi radio, dan pemrosesan sinyal. Penguat transistor untuk audio pertama kali memiliki penguatan hampir beberapa ratus miliwatt, tetapi secara bertahap penguatan tersebut naik sampai ketika dihasilkannya transistor yang lebih baik dan arsitektur penguat audio berkembang semakin bagus.
2.4.3 Jenis-Jenis Transistor
Secara umum, transistor dapat dibeda-bedakan berdasarkan banyak kategori : Material semikonduktor : Germanium, Silikon, Gallium Arsenide
Kemasan fisik : Through Hole Metal, Through Hole Plastic, Surface Mount, IC, dan lain-lain
Tipe : UJT, BJT, JFET, IGFET (MOSFET), IGBT, HBT, MISFET, VMOSFET, MESFET, HEMT, SCR serta pengembangan dari transistor yaitu IC (Integrated Circuit) dan lain-lain.
Polaritas : NPN atau N-channel, PNP atau P-channel.
Maksimum kapasitas daya : Low Power, Medium Power, High Power.
Maksimum frekwensi kerja : Low, Medium, atau High Frequency, RF transistor, Microwave, dan lain-lain.
Aplikasi: Amplifier, Saklar, General Purpose, Audio, Tegangan Tinggi, dan lain-lain.
Dari banyak tipe-tipe transistor modern, pada awalnya ada dua tipe dasar transistor yaitu bipolar junction transistor ( BJT atau transistor bipolar ) dan field-effect transistor ( FET ) yang masing-masing bekerja dengan cara yang berbeda.
2.4.3.1 Bipolar Junction Transistor ( BJT )
BJT (Bipolar Junction Transistor) adalah salah satu dari dua jenis transistor. Cara kerja BJT dapat dibayangkan sebagai dua dioda yang terminal
positif atau negatifnya berdempet, sehingga ada tiga terminal. Ketiga terminal tersebut adalah emiter (E), kolektor (C), dan basis (B).
Transistor bipolar dinamakan demikian karena kanal konduksi utamanya menggunakan dua polaritas pembawa muatan elektron dan lubang, untuk membawa arus listrik. Dalam BJT, arus listrik utama harus melewati satu daerah/lapisan pembatas dinamakan depletion zone, dan ketebalan lapisan ini dapat diatur dengan kecepatan tinggi dengan tujuan untuk mengatur aliran arus listrik utama tersebut.
Perubahan arus listrik dalam jumlah kecil pada terminal basis dapat menghasilkan perubahan arus listrik dalam jumlah besar pada terminal kolektor. Prinsip inilah yang mendasari penggunaan transistor sebagai penguat elektronik. Rasio antara arus pada koletor dengan arus pada basis biasanya dilambangkan dengan β atau hFE. β biasanya berkisar sekitar 100 untuk transistor-transisor BJT.
2.4.3.2 Field-Effect Transistor ( FET )
Transistor FET dibagi menjadi dua keluarga yaitu Junction FET ( JFET ) dan Insulated Gate FET ( IGFET ) atau yang juga dikenal sebagai Metal Oxide Silicon FET ( MOSFET ). Berbeda dengan IGFET, terminal gate dalam JFET membentuk sebuah dioda ( materi semikonduktor antara Source dan Drain ). Secara fungsinya, ini membuat N-channel JFET menjadi sebuah versi solid-state dari tabung vakum, yang juga membentuk sebuah dioda antara grid dan katode. Dan juga, antara keduanya ( JFET dan tabung vakum ) bekerja di "depletion mode", dimana keduanya memiliki impedansi input tinggi, dan keduanya menghantarkan arus listrik dibawah kontrol tegangan input.
FET (juga dinamakan transistor unipolar ) hanya menggunakan satu jenis pembawa muatan ( elektron atau hole, tergantung dari tipe FET ). Dalam FET, arus listrik utama mengalir dalam satu kanal konduksi sempit dengan depletion zone di kedua sisinya ( bila dibandingkan dengan transistor bipolar dimana daerah Basis memotong arah arus listrik utama ). Dan ketebalan dari daerah perbatasan ini dapat diubah dengan perubahan tegangan yang diberikan.
FET lebih jauh lagi dibagi menjadi tipe enhancement mode dan depletion mode. Mode menandakan polaritas dari tegangan gate dibandingkan dengan source saat FET menghantarkan listrik. Jika kita ambil N-channel FET sebagai contoh dalam depletion mode, gate adalah negatif dibandingkan dengan source, sedangkan dalam enhancement mode, gate adalah positif. Untuk kedua mode, jika tegangan gate dibuat lebih positif, aliran arus di antara source dan drain akan meningkat. Untuk P-channel FET, polaritas-polaritas semua dibalik. Sebagian besar IGFET adalah tipe enhancement mode, dan hampir semua JFET adalah tipe depletion mode.