Kategori
IoT

Mikrocontroller

atu atau lebih Inti Prosesor (CPU), Memori (RAM dan ROM) serta perangkat INPUT dan OUTPUT yang dapat diprogram.

Pengertian

Mikrokontroler adalah sebuah komputer kecil yang dikemas dalam bentuk chip IC (Integrated Circuit) dan dirancang untuk melakukan tugas atau operasi tertentu. Pada dasarnya, sebuah IC Mikrokontroler terdiri dari satu atau lebih Inti Prosesor (CPU), Memori (RAM dan ROM) serta perangkat INPUT dan OUTPUT yang dapat diprogram.

Dalam pengaplikasiannya, Pengendali Mikro yang dalam bahasa Inggris disebut dengan  Microcontroller  ini digunakan dalam produk ataupun perangkat yang dikendalikan secara otomatis seperti sistem kontrol mesin mobil, perangkat medis, pengendali jarak jauh, mesin, peralatan listrik, mainan dan perangkat-perangkat yang menggunakan sistem tertanam lainnya.

Penggunaan Mikrokontroler ini semakin populer karena kemampuannya yang dapat mengurangi ukuran dan biaya pada suatu produk atau desain apabila dibandingkan dengan desain yang dibangun dengan menggunakan mikroprosesor dengan memori dan perangkat input dan output secara terpisah.

Sebelumnya, microcontroller berbentuk IC EPROM (Erasable Programmable Read-Only Memory) yang dikembangkan pertama kali oleh Intel pada tahun 1971. EPROM memiliki sebuah jendela berbahan kaca yang berguna untuk proses penghapusan data. Untuk menghapus data, kita memaparkan chip ini ke sinar ultraviolet selama 20-30 menit dalam keadaan tertentu atau satu minggu lamanya jika dipaparkan dibawah siang matahari. Keadaan itu membuat pengembangan microcontroller berteknologi EPROM berjalan sangat pelan dengan biaya yang mahal.

EPROM

Oleh sebab itu, dikembangkanlah microcontroller berbasis EEPROM (Electronically Erasable Programmable Read-Only Memory) yang penghapusannya dapat dilakukan secara elektronik sehingga dapat mempercepat proses keseluruhan. Proses pengembangan peralatan berbasis EPROM maupun EEPROM membutuhkan banyak peralatan dan keahlian programming yang tinggi sehingga agak mustahil untuk memilikinya di rumah dan menjadikannya sebagai hobi karena biaya yang mahal dan waktu yang lama. Pengembangan peralatan microcontroller berbasis EPROm dan EEPROM lebih cocok untuk mereka yang bergeak dalam kegiatan industri.

Perlu diketahui, karena sifatnya yang erasable atau dapat dihapus, Toshiba mengembangkan EEPROM menjadi flash memory pada tahun 1980 dengan tujuan memperbesar kapasitas penyimpangan memori sekaligus mempercepat proses membaca (read), menulis (write) dan menghapus (erase). Prinsip teknologi EEPROM yang dikembangkan oleh Toshiba ini masih dapat ditemukan hingga saat ini, contohnya berupa flash disk, SD card, bahkan solid-state drive yang kapasitasnya semakin besar dan semakin cepat.

Perkembangan ilmu pengetahuan mengantar kita ke era microcontroller berjenis AVR yang berupa sebuah single-chip dengan flash memory on-board untuk menyimpan program. Namun demikian masih diperlukan sebuah proses untuk membangun sebuah supporting circuitry atau rangkaian elektronik terlebih dahulu sebelum menggunakan microcontroller ini. Kabar baik datang pada tahun 2005 yang lalu, Arduino muncul pertama kali sebagai microcontroller yang lebih bersahabat.

Arduino menggunakan chip AVR yang sudah terintegrasi dengan komponen lainnya dalam sebuah circuitry board sehingga lebih praktris dan dapat langsung digunakan. Arduino memiliki USB port yang sangat mudah untuk dihubungkan dengan komputer.

Arduino UNO

Selain perangkat keras, Arduino juga dikembangkan software untuk memprogramnnya. Bahasa pemrograman tersebut berbasis C/C++ yang dikemas dalam sebuah software bernama Arduino IDE. Software ini diinstall di dalam komputer terlebih dahulu agar Arduino dapat dikenali. Bahasa pemrograman Arduino menggunakan bahasa yang berlevel tinggi dan memiliki struktur yang jelas seheingga bisa dibaca dan mudah dimengerti oleh manusia. Sejak itu, microcontroller lebih terbuka bagi banyak kalangan, terutama dari pelajar dan penghobi karena harga hardware yang lebih terjangkau dan bahasa pemrograman yang lebih sederhana dibandingkan era sebelumnya. Setelah program ditulis dalam Arduino IDE, proses transfer program ke chip AVR di Arduino dilakukan melalui mekanisme compiling program. Arduino dipasarkan tanpa perangkat jaringan (netwrok). Add-on board yang disebut shield perlu ditambahkan agar Arduino dapat dihubungkan dengan network berbasis kabel (LAN) maupun wireless (WLAN).

Pada masa ini, wireless network adalah kebutuhan yang dasar untuk hal-hal yang berhubungan dengan Internet of Things (IoT), namun Arduino yang difavoritkan banyak kalangan tersebut tidak memilikinya sehingga untuk menambahkannya kita perlu menambah biaya lagi untuk membeli shield wireless. Harga shiled ini lebih mahal dari board Arduino itu sendiri. Untuk menjawab tingginya harga shield wifi, ESP8266 muncul sebagai solusi perbandingan harga yang lebih murah untuk low-cost wireless Arduino.

NodeMCU (ESP8266)

Hingga pada suatu titik ESP8266 pun dapat berdiri sendiri dan kompatibel dengan bahasa pemrograman Arduino. Dalam kurun waktu kurang dari satu tahun sejak kemunculannya, ESP8266 menjadi sangat populer karena tiga hal utama. Pertama, dapat diprogram sama seperti Arduino, artinya library untuk Arduino dapat digunakan langsung untuk ESP8266. Kedua, dilengkapi, dengan wifi on board sehingga tidak memerlukan biaya tambahan. Ketiga, untuk kelebihan itu, dimensi ukuran dan harga ESP8266 adalah seperlima dari Arduino.

Ketiga kelebihan ini yang membuat ESP8266 sangat mudah diterima oleh semua kalangan melebihi Arduino.

Berikut merupakan antara Arduino, ESP8266 dan ESP32.

Meskipun ESP8266 menguasai segmen pasar microcontroller berharga rendah atau low cost microcontroller, namun belum dapat menggantikan Arduino sepenuhnya karena popularitas yang dimiliki Arduino di kalangan pengembang maupun pengguna baru sangat tinggi. Meskipun keunggulan spesifikasi hardware ESP8266 sudah diatas Arduino, namun dari sisi software, pengalman pemrograman ESP8266 masih sama dengan Arduino karena program yang dijalankan harus melalui proses compiling.

Proses compiling adalah sebuah tahapan multi proses yang terdiri dari 4 tahap, yaitu pre-processing, compiling, assembly, dan linking. Proses compiling ini akan menterjemahkan bahasa pemrograman yang ditulis oleh manusia menjadi bahasa yang dimengerti dan digunakan oleh microcontroller. Proses compiling membutuhkan waktu, bahkan untuk sebuah program sederhana seperti menulis “hello world” atau membuat LED berkedip. Proses compiling yang berulang-ulang juga membutuhkan banyak waktu dan biaya. Proses compiling Arduino di dalam ESP8266 tidak bisa dipisahkan karena bahasa Arduino yang berbasai C/C++.

Salah satu bahasa program yang tidak memerlukan proses compiling adalah bahasa Python. Python dikategorikan sebagai bahasa yang diterjemahkan (interpreted). Artinya syntax (perintah) Python dapat langsung dimengerti oleh bahasa prosesor komputer karena diterjemahkan secara langsung dari bahasa yang dipahami manusia ke bahasa komputer. Python telah digunakan secara luas sebagai bahasa berlevel tinggi hingga pada tahun 2012 Python ditemukan dapat digunakan sebagai bahasa berlevel rendah melalui implementasinya dalam SBC (Single Board Computer) Raspberry Pi.

Raspberry Pi

Raspberry Pi menggunakan Python sebagai bahasa pemrograman utama untuk mengendalikan hal-hal fisik seperti membaca sensor, mengkontrol peralatan dan robotika. Karena Python bahasa yang interpreted maka penggunaanya membutuhkan sistem komputasi dengan kapasitas memory yang besar (bersatuan Megabyte atau Gigabyte) yang hanya bisa didapatkan dalam sebuah SBC atau PC ( Personal Computer)

Baca lebih lanjut tentang : MicroPython

Diagram Blok dan Struktur Mikrokontroler

Berikut ini adalah Diagram Blok dan Struktur Mikrokontroler beserta penjelasan singkat tentang bagian-bagian utamanya.

1. CPU

CPU adalah otak mikrokontroler. CPU bertanggung jawab untuk mengambil instruksi (fetch), menerjemahkannya (decode), lalu akhirnya dieksekusi (execute). CPU menghubungkan setiap bagian dari mikrokontroler ke dalam satu sistem. Fungsi utama CPU adalah mengambil dan mendekode instruksi. Instruksi yang diambil dari memori program harus diterjemahkan atau melakukan decode oleh CPU tersebut.

2. Memori (Penyimpanan)

Fungsi memori dalam mikrokontroler sama dengan mikroprosesor. Memori Ini digunakan untuk menyimpan data dan program. Sebuah mikrokontroler biasanya memiliki sejumlah RAM dan ROM (EEPROM, EPROM dan lain-lainnya) atau memori flash untuk menyimpan kode sumber program (source code program).

3. Port INPUT / OUTPUT paralel

Port Input / Output paralel digunakan untuk mendorong atau menghubungkan berbagai perangkat seperti LCD, LED, printer, memori dan perangkat INPUT/OUTPUT lainnya ke mikrokontroler.

4. Port Serial (Serial Port)

Port serial menyediakan berbagai antarmuka serial antara mikrokontroler dan periferal lain seperti port paralel.

5. Pengatur Waktu dan Penghitung  (Timer dan Counter)

Timer dan Counter adalah salah satu fungsi yang sangat berguna dari Mikrokontroler. Mikrokontroler mungkin memiliki lebih dari satu timer dan counter. Pengatur waktu (Timer) dan Penghitung (Counter) menyediakan semua fungsi pengaturean waktu dan penghitungan di dalam mikrokontroler. Operasi utama yang dilakukan di bagian ini adalah fungsi jam, modulasi, pembangkitan pulsa, pengukuran frekuensi, osilasi, dan lain sebagainya. Bagian ini juga dapat digunakan untuk menghitung pulsa eksternal.

6. Analog to Digital Converter atau Pengonversi Analog ke Digital (ADC)

Konverter ADC digunakan untuk mengubah sinyal analog ke bentuk digital. Sinyal input dalam konverter ini harus dalam bentuk analog (misalnya Output dari Sensor) sedangkan Outputnya dalam bentuk digital. Output digital dapat digunakan untuk berbagai aplikasi digital seperti layar digital pada Perangkat pengukuran.

7. Digital to Analog Converter atau Pengonversi Digital ke Analog (DAC)

DAC melakukan operasi pembalikan konversi ADC. DAC mengubah sinyal digital menjadi format analog. Ini biasanya digunakan untuk mengendalikan perangkat analog seperti motor DC dan lain sebagainya.

8. Kontrol Interupsi (Interrupt Control)

Kontrol interupsi atau Interrupt Control digunakan untuk menyediakan interupsi (penundaan) untuk program kerja. Interrupt dapat berupa eksternal (diaktifkan dengan menggunakan pin interrupt) atau internal (dengan menggunakan instruksi interupsi selama pemrograman).

9. Blok Fungsi Khusus (Special Functioning Block)

Beberapa Mikrokontroler yang hanya dapat digunakan untuk beberapa aplikasi khusus (misalnya sistem Robotik), pengontrol ini memiliki beberapa port tambahan untuk melakukan operasi khusus tersebut yang umumnya dinamakan dengan Blok Fungsi Khusus.

Ciri Khas Mikrokontroler

Suatu peralatan atau perangkat elektronik tentunya memiliki ciri khas tertentu yang membedakannya dengan perangkat lain. Berikut beberapa ciri mikrokontroler

  1. Kemampuan CPU Yang Tidak Terlalu Tinggi
    Berbeda dengan CPU, umumnya mikrokontroler sederhana hanya dapat melakukan atau memproses beberapa perintah saja, meskipun saat ini telah banyak dibuat mikrokontroler dengan spesifikasi yang lebih canggih tapi tentunya belum dapat menyamai kemmapuan CPU dalam memproses data dari perangkat lunak.
  2. Mikrokontroler Memiliki Memori Internal Yang Kecil
    Tentu bagi Anda yang sering melihat mikrokontroler, maka dapat melihat jumlah memori internal dari mikrokontroler terbilang kecil. Umumnya sebuah mikrokontroler hanya berisikan ukuran Bit, Byte atau Kilobyte.
  3. Mikrokontroler dibekali Memori Non-Volatile
    Dengan adanya memori non-volatile pada mikrokontroler maka perintah yang telah dibuat dapat dihapus ataupun dibuat ulang, selain itu dengan penggunaan memori non-volatile maka memngkinkan data yang telah disimpan dalam mikrokontroler tidak akan hilang meskipun tidak disuplai oleh power supply (Catu daya).
  4. Perintah Relatif Sederhana
    Dengan kemampuan CPU yang tidak terlalu tinggi maka berimbas pada kemampuan dalam melakukan pemrosesan data yang tidak tingi pula. Meskipun begitu, mikrokontroler terus dikembangkan menjadi canggih contohnya mikrokontroler yangdigunakan untuk melakukan pengolahan sinyal dan sebagainya.
  5. Program/Perintah Berhubungan Langsung Dengan Port I/O
    Salah satu komponen utama mikrokotroler adalah Port I/O, Port input maupun output I/O memiliki fungsi utama sebagai jalan komunikasi. Sederhanya Port I/O membangun komunikasi antara  piranti masukan dan piranti keluaran.

Jenis-jenis Mikrokontroler

Berikut merupakan jenis-jenis mikrokontroler

  1. Mikrokontroler AVR (Vegard’s Risc Processor)
    Mikrokontroler AVR adalah mikrokontroler RISC 8 bit, jenis mikrokontroler yang paling banyak digunakan dalam bidang elektronika dan instrumentasi.
    Ini adalah jenis mikrokontroler yang dieksekusi dalam 1 siklus clock, adapun jenis mikrokontroler AVR dibagi kedalam 4 kelas yaitu keluarga ATMega, keluarga AT90Sxx, keluarga ATTiny dan AT86RFxx, pengelompokan ini didasarkan pada penggunaan atau fungsinya, memori dan peripheral.
  2. PIC
    PIC adalah bagian dari mikrokontroler tipe RISC, awalnya PIC dibuat dengan mengunakan teknologi General Intstrumen 16 bit CPR yakni CP1600 dengan tujuan pembuatan yakni  demi meningkatkan performa sistem I/O.
    PIC saat ini telah dilengakapi dengan komunikasi serial dan EPROM, kernel motor dll, selain itu juga dilengkapi dengan memori program dari 512 word sampai 32 word. 1 word sama dengan 1 intruksi menurut bahasa assembly yang bermacam-macam dari 12 – 16 bit yang mana tergantung dari PICMicro. Untuk melihat berbagai jenis chip dari PICMicro coba kunjungi www.microchip.com.
    PIC termasuk jenis mikrokontroler yang lumayan populer dikalangan para developer karena harganya yang relatif murah, disamping itu ketersediaan database aplikasi yang melimpah, pengunaannya yang umum digunakan serta dapat diprogram ulang melalui serial port pada komputer.
  3. Mikrokontroler AT89S52
    Mikrokontroler AT89S52 adalah versi pengembangan dari mikrokontroler AT89C51. Kelebihan yang dimiliki mikrokontroler AT89S52 yakni adanya flash memori 8K bytes, kapasitas RAM 256 byte dengan 2 data pinter 16 bit.
  4. Mikrokontroler ATmel91 Series
    Jenis kelompok Mikrokontrolerr Atmel lain yang umumnya terdapat dipasaran yaitu AT90, Tiny & Mega series – AVR, Atmel AVR32, Atmel AT89 series, dam MARC4.
  5. MCS51 Series
    Beberapa tipe Mikrokontroler MCS51 series yaitu : 8031 – tidak memiliki ROM internal, 8051 – 4K ROM internal, 8751 – 4K EPROM/OTP, 8951 – 4K EPROM/MTP, ukuran ROM; ’51(4K),’52(8K), ’54(16K), ’58(32K), 80C51 – In System Programmable (ISP), 89C2051 – kemasan20-pin

Keunggulan dan Kelemahan Mikrokontroler

Keunggulan atau Kelebihan utama dari mikrokontroler :

  • Mikrokontroler bertindak sebagai mikrokomputer tanpa harus ada komponen digital tambahan lainnya
  • Dapat mengurangi biaya dan ukuran sistem karena integrasi yang lengkap dalam sebuah mikrokontroler.
  • Penggunaan mikrokontroler sederhana dan mudah untuk memecahkan masalah dan pemeliharaan sistem.
  • Sebagian besar pin dapat diprogram oleh pengguna untuk melakukan berbagai fungsi.
  • Mudah menghubungkan port RAM, ROM dan I / O tambahan.
  • Waktu yang diperlukan untuk melakukan operasi rendah.

Kekurangan dari Mikrokontroler :

  • Mikrokontroler memiliki arsitektur yang lebih kompleks daripada mikroprosesor.
  • Hanya melakukan eksekusi dalam jumlah terbatas dalam waktu yang bersamaan.
  • Kebanyakan hanya digunakan dalam peralatan-peralatan mikro.
  • Tidak dapat terhubung dengan perangkat yang berdaya tinggi secara langsung.

Fungsi Mikrokontroler

Berikut ini beberapa fungsi penting Mikrokontroler yaitu :

  • Mikrokontroler Sebagai Timer / Pewaktu
  • Mikrokontroler Sebagai Pembangkit Osilasi
  • Mikrokontroler Sebagai Flip –  Flop
  • Mikrokontroler Sebagai ADC ( Analog Digital Converter )
  • Mikrokontroler Sebagai Counter
  • Mikrokontroler Sebagai Decoder dan Encoder

Perbedaan Mikrokontroler dan Mikroprosesor (CPU)

Pada dasarnya perbedaan mikrokontroler dan mikroprosesor ada pada kata “kontroler” pada mikrokontroler dan “Prosesor” pada mikroprosesor. Dari perbedaan kata ini saja kita sudah tahu apa perbedaan dasar antara mikrokontroler dan mikroprosesor.

Dari perbedaan dua kata tersebut maka dapat kita asumsikan perbedaan dasar dari mikrokontroler dan mikroprosesor. Mikrokontroler berarti Pengedali Kecil lalu mikroprosesor berarti  Pengolah Kecil.

Pertanyaannya apa yang diolah atau dikendalikan ? tentu saja adalah program/data atau perintah yang diberikan/dimasukkan, dari sini tentunya sudah bisa didapat gambaran sederhana perbedaan dari kedua perangkat tersebut.

Perbedaan Mikrokontroler dan Mikroprosesor Berdasarkan Fungsinya

Jika ditinjau lebih dalam berdasarkan fungsinya, mikroprosesor atau umumnya dikenal lebih luas dengan nama Central Processing Unit (CPU), berguna dalam pengambilan dan kalkulasi data, melakukan perhitungan serta manipulasi data, dan menyimpan hasil pemrosesan atau perhitungan dari data tersebut sehingga dapat diperlihatkan hasilnya pada monitor.

Adapun mikrokontroler sendiri berguna dalam mengontrol perangkat atau sistem berdasarkan data yang tersimpan  pada Read Only Memory (ROM).

Perbedaan Mikrokontroler dan Mikroprosesor Berdasarkan Komponen Pembentuknya

Mikrokontroler dibangun dari beberapa komponen berikut yaitu Central Processing Unit (CPU) : ALU, CU dan Register, RWM, ROM, I/O seri, I/O paralel, counter-timer, serta rangkaian clock dalam 1 chip tunggal.

Gambar Blok Diagram MIkrokontroler

Mikroprosesor atau CPU dibangun dari 3 komponen utama yaitu Arithmetic Logic Unit (ALU), Register Unit (RU), Control Unit (CU). 

  1. Arithmetic Logic Unit (ALU), sesuai dengan namanya ALU memiliki fungsi utama dalam melakukan operasi logic dan matematika. Pengolahan operasi matematika sederhana (KALIBATAKU) yaitu perkalian, pembagian,penjumlahan dan penguragan,serta operasi logic (Logika) meliputi logic AND, NOT, OR dan lainnya.
  2. Control Unit (CU), CU memiliki fungsi utama menerima intruksi yang berasal dari memori dan melakukan ekstruksi. Perlu dicatat memori bukan merupakan bagian dari mikroprosesor melainkan bagian dari mikrokontroler.
  3. Register, register pada dasarnya adalah tempat penampungan sementara data yang akan di ekesekusi sebelum diproses oleh ALU.
Gambar Blok Diagram Mikroprosesor (CPU)

Perhatikan Tabel berikut ini yang menggambarkan Perbedaan Mikroprosesor dan Mikrokontroler

Gambar Perbedaan Mikroprosesor dan Mikrokontroler

Baca lebih lanjut tentang : NodeMCU

Baca lebih lanjut tentang : Sensor IoT

Ref : [1][2][3][4][5]