6 BAB II LANDASAN TEORI 2.1. Mikrokontroller AVR ATmega328 Mikrokontroler adalah suatu terobosan dalam teknologi mikroprosesor dan mikrokomputer, perbedaannya mikrokontroler hanya bisa digunakan untuk menangani suatu aplikasi tertentu. Perbedaan lain terletak pada perbandingan RAM dan ROM. Komputer mempunyai RAM dan ROM yang besar, tetapi pada mikrokontroler sangat terbatas. ROM digunakan oleh mikrokontroller untuk menyimpan program sedangkan RAM digunakan untuk menyimpan data sementara. Mikrokontroller terdiri dari ALU (Arithmetic and Logical Unit), CU (Control Unit), PC (Program Counter), SP (Stack Pointer), register-register,sebuah rangkaian pewaktu dan rangkaian penyela (interrupt). Mikrokontroler juga dilengkapi dengan beberapa piranti pendukung lain seperti ROM (Read Only Memory), RAM (Random Access Memory), dekoder, port komunikasi input/output serial dan atau pararel, juga beberapa tambahan khusus seperti interrupt handler dan timer/ counter. AVR merupakan seri mikrokontroller CMOS 8-bit buatan Atmel, arsitektur RISC (Reduced Instruction Set Computer). berbasis 7 Gambar 2.1 Konfigurasi pin ATmega328 Hampir semua instruksi dieksekusi dalam satu siklus clock. AVR mempunyai 32 register general-purpose, timer/counter fleksibel dengan mode compare, interupt internal dan eksternal, serial UART, programmable Watchdog Timer, dan mode power saving. Beberapa diantaranya mempunyai ADC dan PWM internal. AVR juga mempunyai In-System Programmable Flash on-chip yang mengijinkan memori program untuk diprogram ulang dalam sistem menggunakan hubungan serial SPI. Chip AVR yang digunakan untuk tugas akhir ini adalah ATmega328. 8 Gambar 2.2 Blok Diagram Mikrokontroller ATmega328 2.2. Arduino Dalam beberapa tahun terakhir, mikrokontroler telah menjadi lebih murah dan lebih mudah digunakan, hal ini memungkinkan terciptanya alat yang lebih baik. 9 Arduino adalah sebuah terobosan baru dalam dunia elektronika, khususnya mikrokontroller. Kemajuan yang dibuat dengan Arduino membuat alat lebih mudah digunakan bagi pemula, memungkinkan orang untuk memulai sebuah perancangan sistem kontrol dengan lebih mudah menggunakan Arduino. Arduino adalah sebuah kit elektronik yang dirancang khusus untuk memudahkan setiap orang dalam belajar atau mengembangkan perangkat elektronik yang dapat berinteraksi dengan bermacam-macam sensor dan pengendali.bahasa yang digunakan dalam Arduino adalah bahasa C yang disederhanakan dengan bantuan library-library Arduino. Gambar 2.3 Arduino Uno 10 Gambar diatas merupakan salah satu gambar dari versi Arduino, yaitu Arduino Uno. Arduino Uno adalah board berbasis mikrokontroler ATmega168 atau ATmega328. ia memiliki 14 digital input / output pin (dimana 6 dapat digunakan sebagai output PWM), 6 input analog, 16 MHz osilator kristal, koneksi USB, jack listrik, ICSP header, dan tombol reset. Ini berisi semua yang diperlukan untuk mendukung mikrokontroler, hanya terhubung ke komputer dengan kabel USB atau listrik dengan adaptor AC-DC atau baterai untuk memulai. Arduino Uno dibangun tahun 2009 di Italia dan diberi nama setelah tahun peluncurannya. 2.2.1. Power Arduino Uno dapat diaktifkan melalui koneksi USB atau dengan catu daya eksternal. Sumber daya dipilih secara otomatis. Eksternal (non-USB) listrik dapat berasal baik dari AC-DC adaptor atau baterai. Board ini dapat beroperasi pada pasokan eksternal dari 6 sampai 20 volt. Jika diberikan dengan kurang dari 7V, bagaimanapun, pin 5V dapat menyediakan kurang dari 5 volt dan board mungkin tidak stabil. Jika menggunakan lebih dari 12V, regulator tegangan dapat terlalu panas dan merusak board, kisaran yang direkomendasikan adalah 7 sampai 12 volt. Fungsi dari masing-masing pin power adalah sebagai berikut : VIN : Tegangan input ke papan Arduino ketika itu menggunakan sumber daya eksternal (sebagai lawan 5 volt dari koneksi USB atau sumber daya dari luar lainnya). 11 5V: Catu daya digunakan untuk daya mikrokontroler dan komponen lain pada board. Hal ini dapat berasal baik dari VIN melalui on-board regulator, atau diberikan oleh USB atau power suplay 5V lainnya. 3v3 : Sebuah pasokan 3,3 volt yang dihasilkan oleh chip FTDI on-board. Menarik arus maksimum 50 mA. GND. 2.2.2. Memori ATmega168 memiliki 16 KB dari memori flash untuk menyimpan kode (2 KB digunakan untuk bootloader), sedangkan ATmega328 memiliki 32 KB, (dengan 0.5 KB digunakan untuk bootloader). ATmega168 memiliki 1 KB dari SRAM dan 512 byte EEPROM (yang dapat dibaca dan ditulis dengan EEPROM library), ATmega328 memiliki 2 KB SRAM dan 1 KB EEPROM. 2.2.3. Input dan output Setiap 14 pin digital pada Arduino Uno dapat digunakan sebagai input atau output, menggunakan fungsi pinMode , digitalWrite , dan digitalRead. Mereka beroperasi di 5 volt. Setiap pin dapat memberikan atau menerima maksimum 40 mA dan memiliki resistor internal pull-up 20-50 kΩ. Selain itu, beberapa pin memiliki fungsi khusus: 12 Serial : 0 (RX) dan 1 (TX) : digunakan untuk menerima (RX) dan mengirimkan (TX) TTL data serial. Pin ini terhubung ke pin yang sesuai dari FTDI USB to TTL Serial chip. Interupsi Eksternal 2 dan 3 : pin ini dapat dikonfigurasi untuk memicu interupsi pada nilai yang rendah. PWM : 3, 5, 6, 9, 10, dan 11 : menyediakan 8-bit output PWM dengan fungsi : analogWrite. SPI : 10 (SS), 11 (mosi), 12 (MISO), 13 (SCK) : pin ini mendukung komunikasi SPI menggunakan SPI library. LED : 13 : ini membangun LED terhubung ke digital pin 13. Ketika pin bernilai TINGGI, LED menyala, ketika pin RENDAH, LED dimatikan. Arduino Uno memiliki 6 input analog, masing-masing yang menyediakan 10 bit dari resolusi (yaitu 1024 nilai yang berbeda). Secara default mereka mengukur dari ground sampai 5 volt, meskipun mungkin untuk mengubah batas atas dari jangkauan mereka menggunakan pin Aref dan fungsi analogReference. Ada beberapa pin lainnya didalam board ini : Aref : Tegangan referensi untuk input analog.digunakan dengan analogReference. Reset : digunakan untuk me-reset mikrokontroler.biasanya digunakan untuk menambahkan tombol reset untuk perisai yang menahan salah satu pada board. 13 2.2.4. Komunikasi Arduino Uno memiliki sejumlah fasilitas untuk berkomunikasi dengan komputer, Arduino lain, atau mikrokontroler lainnya. Pada ATmega328 menyediakan (5V) komunikasi serial, yang tersedia pada pin digital 0 (RX) dan 1 (TX). Sebuah FTDI FT232RL pada saluran komunikasi serial board ini melalui USB dan driver FTDI (disertakan dengan perangkat lunak Arduino) menyediakan port com virtual untuk perangkat lunak pada komputer. Perangkat lunak Arduino termasuk monitor serial yang memungkinkan data tekstual sederhana yang harus dikirim ke dan dari board Arduino. RX dan TX LED pada board arduino akan berkedip ketika data sedang dikirim melalui chip FTDI dan koneksi USB ke komputer (tetapi tidak untuk komunikasi serial pada pin 0 dan 1), untuk komunikasi serial pada setiap pin digital. ATmega168 dan ATmega328 juga mendukung I2C (TWI) dan SPI komunikasi. 2.2.5. Pemrograman Arduino Uno dapat diprogram dengan perangkat lunak Arduino (download). Pilih "Arduino Uno atau ATmega328" dari Tools > menu board sesuai dengan mikrokontroler pada board sesuai tipe arduino yang dipakai. ATmega168 atau ATmega328 pada Arduino Uno dilengkapi dengan bootloader yang memungkinkan kita untuk meng-upload kode baru tanpa menggunakan programmer hardware eksternal. 14 2.2.6. Arduino Software Arduino Uno dirancang dengan cara yang memungkinkan untuk diatur ulang oleh perangkat lunak yang berjalan pada komputer yang saling terhubung. Perangkat lunak Arduino memungkinkan kita untuk meng-upload kode dengan hanya menekan tombol upload pada menu promt pada programmer Arduino. Ini berarti bahwa bootloader dapat memiliki waktu lebih pendek untuk mengupload data atau program. Seperti telah dijelaskan sebelumnya, bahwa pemrograman arduino dibangun dengan bahasa C yang sudah disederhanakan, sehingga lebih mudah dalam pemrogramannya. Gambar 2.4 Arduino software 15 Dalam arduino software, terdapat text editor untuk membaca kode, pesan area, toolbar yang berisi fungsi perintah, dan beberapa menu lainnya. Dengan ini, kita dapat berkomunikasi dengan hardware arduino dan mengupload program.untuk mengupload program, hanya perlu dengan satu kali tekan tombol upload.status area memberikan informasi umpan balik dari program dan error yang terjadi. 2.2.7. USB Perlindungan Arduino Uno memiliki polyfuse reset yang melindungi port USB komputer anda dari hubung singkat dan arus lebih. Meskipun kebanyakan komputer memberikan perlindungan internal mereka sendiri, sekering memberikan perlindungan tambahan. Jika lebih dari 500 mA diterapkan ke port USB, sekering otomatis akan memutus sambungan sampai hubung singkat atau arus lebih ditiadakan. 2.2.8. Karakteristik Fisik Panjang maksimum dan lebar PCB Arduino Uno adalah 2,7 dan 2,1 inci masing-masing dengan konektor USB dan jack power. Tiga lubang sekrup memungkinkan board terpasang ke permukaan atau alas dengan kuat. Jarak antara pin digital 7 dan 8 adalah 160 mil (0,16 "), bukan kelipatan genap dari jarak mil 100 dari pin lain . 16 2.3. Teori Dasar Seven Segmen Seven segment display adalah sebuah rangkaian yang dapat menampilkan angka-angka desimal maupun heksadesimal. Seven segment display biasa tersusun atas 7 bagian yang setiap bagiannya merupakan LED (Light Emitting Diode) yang dapat menyala. Jika 7 bagian diode ini dinyalakan dengan aturan yang sedemikian rupa, maka ketujuh bagian tersebut dapat menampilkan sebuah angka heksadesimal. Gambar 2.5 Ilustrasi seven segment Seven-segment display membutuhkan 7 sinyal input untuk mengendalikan setiap diode di dalamnya. Setiap diode dapat membutuhkan input HIGH atau LOW untuk mengaktifkannya, tergantung dari jenis seven-segmen display tersebut. Jika Seven-segment bertipe common-cathode, maka dibutuhkan sinyal HIGH untuk mengaktifkan setiap diodenya. Sebaliknya, untuk yang bertipe annide, dibutuhkan input LOW untuk mengaktifkan setiap diodenya. common- 17 Gambar 2.6 Seven segment common katoda dan common anoda Salah satu cara untuk menghasilkan sinyal-sinyal pengendali dari suatu seven segment display yaitu dengan menggunakan sebuah sevent-segment decoder. Sevensegment decoder membutuhkan 4 input sebagai angka berbasis heksadesimal yang dinyatakan dalam bahasa mesin (bilangan berbasis biner) kemudian sinyal-sinyal masukan tersebut akan “diterjemahkan” decoder ke dalam sinyal-sinyal pengendali seven-segment display. Sinyal-sinyal pengendali berisi 7 sinyal yang setiap sinyalnya mengatur aktif-tidaknya setiap LED. 18 Tabel 2.1 Kebenaran 2.4 Rangkaian Penyearah (Rectifier Circuit) Sebagian besar rangkaian elektronika membutuhkan tegangan DC untuk dapat bekerja dengan baik. Karena tegangan jala-jala adalah tegangan AC, maka yang harus dilakukan terlebih dahulu dalam setiap peralatan elektronika adalah mengubah atau menyearahkan (rectifying) tegangan AC ke DC. Pada umumnya, tegangan AC didekati dengan sinyal gelombang sinus, seperti tampak pada Gambar 2.7. Secara matematika, gelombang sinus dinyatakan oleh: v = Vp sin (t+θ) 19 dimana v = tegangan sesaat Vp = tegangan puncak Θ = sudut dalam derajat atau radian Gambar 2.7 Gelombang Sinus Beberapa peralatan elektronika mengandung sebuah transformator seperti tampak pada Gambar 2.8 untuk menaikkan atau menurunkan tegangan jala-jala. Besarnya penaikkan atau penurunan tegangan sebanding dengan rasio jumlah lilitan pada bagian primer dengan jumlah lilitan sekunder. 20 Gambar 2.8 Transformator 2.4.1 Rangkaian Penyerarah Setengah Gelombang Gambar 2.9 memperlihatkan rangkaian yang disebut penyearah setengah gelombang (half wave rectifier). Pada setengah siklus tegangan sekunder yang positif, dioda mengalami forward biased untuk setiap tegangan yang lebih dari 0.7 volt (tegangan offset). Ini menghasilkan tegangan lintas tahanan beban (R L ) yang mendekati bentuk setengah gelombang sinus. Pada setengah siklus negatif, dioda mengalami reverse biased, yang menyebabkan arus beban menjadi nol dan tegangan beban jatuh menjadi nol. Gambar 2.9 Rangkaian Penyerah Setengah Gelombang 21 Jika digunakan pendekatan dioda ideal, puncak tegangan yang disearahkan sama dengan puncak tegangan sekunder, seperti ditunjukkan pada Gambar 2.10(a). Sedangkan, jika digunakan pendekatan dioda offset, puncak tegangan yang disearahkan memiliki tegangan puncak keluaran yang lebih rendah dari tegangan puncak masukan, seperti tampak pada Gambar 2.10(b). (a) (b) Gambar 2.10 Tegangan Masukan dan Keluaran Penyerah Setengah Gelombang (a) Pendekatan Dioda Ideal dan (b) Pendekatan Dioda Offset 22 2.4.2 Rangkaian Penyearah Gelombang Penuh dengan Center Tap Trafo Nampak dari gambar diatas, bahwa penyearah setengah gelombang, belum menghasilkan tegangan DC yang baik. Oleh karena itu, diupayakan cara-cara lain untuk mendapatkan tegangan DC yang lebih baik. Gambar 2.11 menunjukkan sebuah rangkaian penyearah gelombang penuh dengan menggunakan Center Tap Trafo. Selama setengah siklus tegangan sekunder yang positif, dioda yang atas mengalami forward biased dan dioda yang bawah mengalami reverse biased. Sehingga, arus mengalir melalui dioda yang atas, ke tahanan beban, dan setengah belitan yang atas. Sebaliknya, selama setengah siklus tegangan sekunder yang negatif, arus akan mengalir melalui dioda yang bawah, ke tahanan beban, dan setengah belitan yang bawah. Gambar 2.11 Rangkaian Penyearah Gelombang Penuh dengan Center Tap Trafo Dalam kedua siklus diatas, tahanan beban mendapatkan polaritas yang sama, tanpa memperhatikan dioda mana yang konduksi. Sehingga, tegangan keluaran pada 23 beban berbentuk sinyal gelombang penuh yang disearahkan seperti terlihat pada Gambar 2.12 (a) (b) (c) Gambar 2.12 Penyearah Gelombang Penuh Center Tap Trafo (a) Pendekatan Dioda Offset (b) Pendekatan Dioda Ideal (c) Proses Penyearahan 24 2.4.3 Rangkaian Penyearah dengan Filter Kapasitor Keluaran penyearah rata-rata adalah tegangan DC yang memiliki denyut (ripple). Untuk mengubah denyut ini ke tegangan DC yang tetap, dibutuhkan sebuah penapis (filter). Gambar 2.13 memperlihatkan rangkain penyearah setengah gelombang dengan penapis menggunakan Kapasitor. Gambar 2.13 Rangkain Penyearah Setengah Gelombang dengan Filter Kapasitor Selama seperempat siklus pertama dari tegangan sumber, dioda di-forward biased. Pada saat itu, dioda menghubungkan sumber langsung melintas kapasitor, sehingga kapasitor diisi sampai tengangan puncak. Namun, setelah melewati puncak positif, dioda berhenti konduksi. Pada keadaan ini, kapasitor membuang muatannya melalui resistansi beban. Dengan rancangan yang baik, tetapan waktu pembuangan (t RC ) dapat dibuat jauh lebih besar daripada perioda T sinyal masuk. Oleh karena itu, kapasitor hanya kehilangan sebagian besar kecil muatannya. Kemudian, pada saat tegangan sumber mencapai puncaknya kembali, dioda menghantar sebentar dan mengisi kapasitor kembali sampai tegangan puncaknya. 25 Gambar 2.14 Penapisan sinyal DC menggunakan kapasitor. 2.5 Lampu Pilot Lampu pilot atau lampu indikator adalah komponen elektronika yang berfungsi untuk mengecek ada tidaknya arus. Biasanya di tandai dengan nyalanya 26 lampu tersebut, fungsi lampu pilot yaitu sebagai indikator. Komponen elektronika hampir semua pada bagian depannya dilengkapi dengan komponen yang disebut pilot lamp atau indikator lamp. Apapun peralatannya seperti power supply, panel listrik, inverter, perangkat elektronika, dll rata - rata dipastikan memiliki yang lampu indikator. Maksud dan tujuan dipasangnya pilot lamp atau indikator lamp ini adalah untuk memberikan tanda yang menyatakan bahwa aliran listrik dari PLN telah masuk. Selain itu kegunaan pilot lamp atau indikator lamp, juga memberikan penampilan yang sedikit lebih baik dan nilai seni dari peralatan tersebut. Pilot lamp atau indikator lamp ini dapat kita jumpai dengan berbagai jenis macam lampu. bentuknya disesuaikan dengan kebutuhan beberapa jenis pilot lamp atau indikator. Gambar 2.15 Lampu pilot dengan tegangan 220volt 2.6 Relay Dalam dunia elektronika, relay dikenal sebagai komponen yang dapat mengimplementasikan logika switching. Sebelum tahun 70an, relay merupakan otak 27 dari rangkaian pengendali. Baru setelah itu muncul PLC yang mulai menggantikan posisi relay, walaupun dalam dalam pemakaian kontak sederhana relay masih banyak digunakan. Relay yang paling sederhana yaitu relay elektromekanis yang memberikan pergerakan mekanis saat mendapatkan energi listrik. Secara sederhana relay elektromekanis ini dapat didefinisikan sebagai alat yang menggunakan gaya elektromagnetik untuk menutup atau membuka kontak saklar, dan saklar yang digerakkan (secara mekanis) oleh daya/energi listrik. Di bawah ini contoh relay yang banyak beredar di pasaran Gambar 2.16 Relay yang tersedia di pasaran Secara umum, relay digunakan untuk memenuhi fungsi – fungsi berikut : Remote control : dapat menyalakan atau mematikan alat dari jarak jauh Penguatan daya : menguatkan arus atau tegangan 28 2.6.1 Prinsip Kerja dan Simbol Relay terdiri dari coil dan kontak. coil adalah gulungan kawat yang mendapat arus listrik, sedang kontak adalah sejenis saklar yang pergerakannya tergantung dari ada tidaknya arus listrik di coil. Pada umumnya, relay hanya mempunyai satu kumparan, tapi relay dapat mempunyai beberapa kotak. Pada relay elektromekanis terdapat kontak diam dan kontak bergerak.sebuah kontak mempunyai 2 fungsi, yaitu sebagai Normally Open (NO) dan Normally Close (NC). Apabila diberikan tegangan pada kumparan, maka akan terjadi medan elektromagnetis, karena adanya medan magnit pada kumparan,maka akan menyebabkan kontak bergeser atau bergerak dari NO ke NC. Posisi kontak NO membuka jika tidak terdapat arus mengalir pada kumparan, dan akan menutup ketika arus melewati kumparan sebagai efek dari medan magnit. Posisi kontak NC menutupa jika tidak terdapat arus mengalir pada kumparan, dan akan membuka ketika arus melewati kumparan sebagai efek dari medan magnit. Secara sederhana prinsip kerja dari relay adalah ketika Coil mendapat energi listrik, akan timbul gaya elektromagnet yang akan menarik armature yang berpegas, dan contact akan menutup. 29 Gambar 2.17 Skema relay elektromekanik 2.6.2 Relay sebagai pengendali Salah satu kegunaan utama relay dalam dunia industri ialah untuk implementasi logika kontrol dalam suatu sistem. Sebagai “bahasa pemrograman” digunakan konfigurasi yang disebut ladder diagram atau relay ladder logic. Berikut ini beberapa petunjuk tentang relay ladder logic (ladder diagram): Diagram wiring yang khusus digunakan sebagai bahasa pemrograman untuk rangkaian kontrol relay dan switching. LD Tidak menunjukkan rangkaian hardware, tapi alur berpikir. LD Bekerja berdasar aliran logika, bukan aliran tegangan/arus. Relay Ladder Logic terbagi menjadi 3 komponen : Input pemberi informasi 30 Logic pengambil keputusan Output usaha yang dilakukan Sistem kendali dengan relay ini mempunyai input device (misalnya: berbagai macam sensor, switch) dan output device (misalnya : motor,pompa, lampu). Dalam rangkaian logikanya, masing-masing input, output, dan semua komponen yang dipakai mengikuti standard khusus yang unik dan telah ditetapkan secara internasional. 2.7. IC 74 HC 595 IC (Integrated Circuit) adalah nama lain chip. IC adalah piranti elektronis yang dibuat dari material semikonduktor. IC atau chip merupakan cikal bakal dari sebuah komputer dan segala jenis device yang memakai teknologi micro-controller. IC 74HC595 (8-bit serial-in/ serial or parallel-output shift register) ini memiliki 8-bit input serial dengan 8-bit output serial atau output paralel dan IC ini juga memiliki storage register yang mana mempunyai pin input pulsa clock yang terpisah dengan shift registernya. 74HC595 adalah shift register dengan input berupa clock, data dan latch. Berguna untuk menghemat penggunaan pin I/O pada MCU atau Arduino 31 Gambar 2.18 Konfigurasi Pin IC 74HC595 Tabel 2.2. Keterangan Pin IC 74HC595 Simbol Pin No Keterangan Q0 sampai Q7 15, 1 sampai 7 Output Data Paralel GND 8 Ground (0 V) Q7’ 9 Output Data Serial MR’ 10 Master Reset (aktif Low) SHCP 11 Input Clock Shift Register STCP 12 Input Clock Storage Register OE’ 13 Output Enable (aktif Low) DS 14 Input Data Serial VCC 16 Tegangan Positif 32 2.8 Sistem Kontrol Sistem Kontrol adalah proses pengaturan atau pengendalian terhadap satu atau beberapa besaran (variabel atau parameter), sehingga berada pada suatu harga atau range tertentu. Contoh variabel atau (pressure),aliran(flow),suhu(temperature), parameter ketinggian fisik, (level), adalah: pH, tekanan kepadatan (viscosity), kecepatan (velocity), dan lain-lain. 2.8.1 Tujuan Sistem Kontrol Tujuan utama dari sebuah sistem pengontrolan adalah untuk mendapatkan hasil optimal dari sebuah proses. Hal ini dapat diperoleh dengan mengacu pada seberapa efektif sistem kontrol itu dapat bekerja sesuai hasil yang diharapkan. Sebuah hasil kerja yang diharapkan dari sistem kontrol yaitu berhubunagan dengan pengukuran. Definisi-definisi dalam pengukuran Instrument : yaitu sebuah alat yang digunakan untuk menentukan nilai atau besaran suatu kuantitas atau variable Ketelitian (Accuracy) : yaitu harga terdekat dimana suatu pembacaan instrument mendekati harga sebenarnya dari variable yang diukur. 33 Ketepatan (Precision) : yaitu suatu ukuran kemampuan untuk mendapatkan hasil pengukuran yang serupa dengan memberikan suatu harga tertentu bagi sebuah variable. Sensitivitas (Sensitivity) : yaitu perbandingan antara sinyal keluaran atau respon instrument terhadap perubahan masukan atau variable yang diukur. Resolusi (Resolution) : yaitu perubahan terkecil masukan yang dapat direspon oleh instrument. Kesalahan (Error) : Penyimpangan variable yang diukur dari nilai sebenarnya. 2.9 ADC (Analog To Digital Converter) Sinyal digital semakin banyak digunakan dan hampir seluruh perangkat elektronika modern menggunakan sinyal digital dalam pengolahan data. Untuk mendapatkan sinyal digital, maka sinyal analog harus dikonfersikan terlebih dahulu. ADC adalah sebuah alat piranti yang berfungsi mengubah sinyal analog menjadi sinyal digital. ADC banyak digunakan pada pengukuran, komunikasi digital, ataupun pada industri yang banyak menggunakan kontrol dan biasanya digunakan sebagai perantara antara sensor dan sistem komputer sebagai output data dari sensor yang berbentuk digital. ADC (Analog to Digital Converter) mempunyai 2 karakter yaitu kecepatan sampling dan resolusi. kecepatan sampling suatu ADC menyatakan seberapa sering sinyal analog dikonversikan ke bentuk sinyal digital pada selang waktu tertentu. 34 Kecepatan sampling biasanya dinyatakan dalam sample per second (SPS). sedangkan resolusi adalah seberapa detail kemampuan dari ADC dalam pembacaan. Arduino Uno menggunakan mikrokontroler ATmega328, dimana pada mikrokontroler ini sudah terdapat 6 buah port untuk ADC. 2.10 Bahasa C Bahasa C merupakan pengembangan dari bahasa BCPL yang dikembangkan oleh Martin Richards pada tahun 1967.Selanjutnya bahasa ini memberikan ide kepada Ken Thompson yang kemudian mengembangkan bahasa yang disebut bahasa B pada tahun 1970. Perkembangan selanjutnya dari bahasa B adalah bahasa C oleh Dennis Ricthie sekitar tahun 1970-an di Bell Telephone Laboratories Inc. (sekarang adalah AT&T Bell Laboratories). Bahasa C pertama kali digunakan dikomputer Digital Equipment Corporation PDP-11 yang menggunakan system operasi UNIX. Beberapa alasan mengapa bahasa C banyak digunakan, diantaranya adalah sebagai berikut : Bahasa C tersedia hampir di semua jenis komputer. Kode bahasa C sifatnya portabel. Bahasa C hanya menyediakan sedikit kata – kata kunci. Proses executable program bahasa C lebih cepat. Dukungan Pustaka yang banyak. C adalah bahasa yg terstruktur. 35 Selain bahasa tingkat tinggi, C juga dianggap bahasa tingkat menengah. Bahasa C adalah Kompiler.