Penganalan
Mikrokontroler
Dalam Kehidupan yang modern ini berbagai kegiatan yang dilakukan manusia tidak
lepas dari benda-benda yang memiliki sistem canggih dan dapat membantu atau
bahkan menggantikan peran manusia dalam pekerjaan sehari-hari. Manusia terus
menciptakan alat yang dapat membantu kegiatan dan kebutuhan dalam kehidupan.
Sebagai contoh adalah AC (Air Conditioner), Kulkas, Drone, dll.
Tentunya kita tidak asing dengan teknologi sekarang yang bernama Drone. Drone
merupakan salah satu contoh teknologi canggih yang diciptakan manusia untuk
membantu kebutuhan seperti merekam video, mengambil gambar, atau sekedar
mengamati permukaan bumi dari sisi yang tidak dapat dilakukan secara manual,
yaitu dari atas.
Mungkin bagi para pembaca, sempat terbesit pertanyaan “Gimana sih cara buat
drone?, cara kerjanya drone gimana, kok bisa seimbang ya pas diterbangin?,
berapa sih sebenernya harga buat bikin drone? Kapan aku punya pacar ya?”. Oke,
pertanyaan tersebut mungkin bisa pembaca temui jawabannya sendiri setelah
membaca modul ini. Dalam mengontrol sesuatu yang rumit seperti mengatur
pergerakan motor dari drone kita dapat menggunakan suatu teknologi bernama
Mikrokontroller. Apa itu mikrokontroller? Mari kita bahas perlahan lahan.
Bagaimana? Sudah cukup membingungkan? Jangan khawatir kita akan bahas satu
per satu dan perlahan-lahan dari beberapa hal yang mimbingungkan dalam
penjelasan diatas.
Seperti yang telah disebutkan bahwa mikrokontroller adalah sebuah chip (bagi yang
belum tau chip itu apa, bentuknya seperti Gambar 1.1) yang berfungsi sebagai
pengontrol rangkaian elektronik. Pertanyaannya adalah bagaimana bisa
mikrokontroller dapat mengontrol rangkaian elektronik?
II. Jika Mikrokontroller diibaratkan sebuat perusahaan
Kita akan memulai dari hal umum terlebih dahulu, seperti pada Gambar 1.1 Chip
mikrokontroller terdiri dari badan utama yang berwarna hitam dan memiliki kaki
yang cukup banyak. Jika diibaratkan bahwa mikrokontroller adalah sebuah
perusahaan besar, maka badan utama yang berwarna hitam adalah bangunan yang
menjadi pusat proses dari perusahaan seperti input barang, penyimpanan barang
(gudang), Bagian pembuatan barang dari mentah hingga jadi, pengemasan barang,
sortir barang, dan sejenisnya. Kemudian Kaki-kaki atau pin yang banyak dapat
diibaratkan menjadi pintu keluar dan masuk dari tiap proses, misalkan pintu 1
adalah pintu input barang yang diminta oleh produsen, pintu 2 adalah pintu output
dari hasil produksi barang, pintu 3 adalah pintu output jika akan mengambil barang
dari gudang.
Gambar
1.3 Ilustrasi
Gambar 1.5 ATMega328 yang menjadi chip mikrokontroller pada Arduino Uno
MCS-51
Mikrokonktroler ini termasuk dalam keluarga mikrokonktroler CISC.
Sebagian besar instruksinya dieksekusi dalam 12 siklus clock.
Mikrokontroler ini berdasarkan arsitektur Harvard dan meskipun awalnya
dirancang untuk aplikasi mikrokontroler chip tunggal, sebuah mode
perluasan telah mengizinkan sebuah ROM luar 64KB dan RAM luar 64KB
diberikan alamat dengan cara jalur pemilihan chip yang terpisah untuk akses
program dan memori data. Salah satu kemampuan dari mikrokontroler 8051
adalah pemasukan sebuah mesin pemroses boolean yang mengijikan operasi
logika boolean tingkatan-bit dapat dilakukan secara langsung dan secara
efisien dalam register internal dan RAM. Karena itulah MCS51 digunakan
dalam rancangan awal PLC (programmable Logic Control).
PIC
ARM
ARM adalah prosesor dengan arsitektur set instruksi 32bit RISC (Reduced
Instruction Set Computer) yang dikembangkan oleh ARM Holdings. ARM
merupakan singkatan dari Advanced RISC Machine (sebelumnya lebih
dikenal dengan kepanjangan Acorn RISC Machine). Pada awalnya ARM
prosesor dikembangkan untuk PC (Personal Computer) oleh Acorn
Computers, sebelum dominasi Intel x86 prosesor Microsoft di IBM PC
kompatibel menyebabkan Acorn Computers bangkrut.
Gambar 1.6 Chip ARM Cortex-M4 yang digunakan dalam STM32F405 (Bluepill)
Arduino juga merupakan platform hardware terbuka yang ditujukan kepada siapa
saja yang ingin membuat peralatan elektronik interaktif berdasarkan hardware dan
software yang fleksibel dan mudah digunakan. Mikrokontroler diprogram
menggunakan bahasa pemrograman arduino yang memiliki kemiripan syntax
dengan bahasa pemrograman C. Karena sifatnya yang terbuka maka siapa saja
dapat mengunduh skema hardware arduino dan menggunakannya.
Kedua, Karena Arduino Terjangkau. Saya cek dari harga, kemudian saya
bandingkan dengan fasilitas yang ada di dalam Arduino. Dan saya pikir lagi, “Harga
segini ternyata bisa beli ginian ya, haha”. Pokonya murah deh…
Kelima, Karena Arduino Memiliki Banyak Library Gratis. Library ini berfungsi
untuk menyingkat pemograman, sehingga kamu nggak perlu pusing lagi. Dan
tersedia berbagai macam, ada yang untuk LCD, Servo, Sensor, dan sebagainya.
Yang pasti Librarynya gratis… Cihuyyyy
Ketujuh, Karena Arduino Open Source. Tidak hanya secara software saja yang
bisa kamu utak-atik, tapi juga secara hardware. Kamu bahkan bisa membuat
Arduino buatan kamu sendiri, dan malah pihak Arduino sendiri juga memberikan
skemanya (arduino.cc). Dan karena Open Source juga, Arduino menjadi
berkembang sangat cepat diseluruh dunia.
Kedelapan, Karena Komunitas Arduino Banyak. Kamu bisa gabung dengan grup
yang ada difacebook, kamu bisa gabung dengan di media sosial lainnya juga.
Komunitas-komunitas ini membuat kamu tidak pusing saat mau bertanya, atau
mencari referensi untuk belajar. Karena di Google pun, banyak contoh-contoh
projek Arduino yang telah dibuat. Di youtube banyak video tutorialnya. Dan di
Kelas Robot, kamu bisa belajar Arduino dan Robot juga …
A.Arduino Uno
Jenis yang ini adalah yang paling banyak digunakan. Terutama untuk pemula
sangat disarankan untuk menggunakan Arduino Uno. Dan banyak sekali referensi
yang membahas Arduino Uno. Versi yang terakhir adalah Arduino Uno R3
(Revisi 3), menggunakan ATMEGA328 sebagai Microcontrollernya, memiliki 14
pin I/O digital dan 6 pin input analog. Untuk pemograman cukup menggunakan
koneksi USB type A to To type B. Sama seperti yang digunakan pada USB printer.
B. Arduino Due
Berbeda dengan saudaranya, Arduino Due tidak menggunakan ATMEGA,
melainkan dengan chip yang lebih tinggi ARM Cortex CPU. Memiliki 54 I/O pin
digital dan 12 pin input analog. Untuk pemogramannya menggunakan Micro
USB, terdapat pada beberapa handphone.
C. Arduino Mega
Mirip dengan Arduino Uno, sama-sama menggunakan USB type A to B untuk
pemogramannya. Tetapi Arduino Mega, menggunakan Chip yang lebih tinggi
ATMEGA2560. Dan tentu saja untuk Pin I/O Digital dan pin input Analognya
lebih banyak dari Uno.
D. Arduino Nano
Sepertinya namanya, Nano yang berukulan kecil dan sangat sederhana ini,
menyimpan banyak fasilitas. Sudah dilengkapi dengan FTDI untuk pemograman
lewat Micro USB. 14 Pin I/O Digital, dan 8 Pin input Analog (lebih banyak dari
Uno). Dan ada yang menggunakan ATMEGA168, atau ATMEGA328.
E. Arduino Mini
Fasilitasnya sama dengan yang dimiliki Nano. Hanya tidak dilengkapi dengan
Micro USB untuk pemograman. Dan ukurannya hanya 30 mm x 18 mm saja.
F. Arduino Esplora
Rekomendasi bagi kamu yang mau membuat gadget sepeti Smartphone, karena
sudah dilengkapi dengan Joystick, button, dan sebagainya. Kamu hanya perlu
tambahkan LCD, untuk lebih mempercantik Esplora.
DAFTAR PUSTAKA
http://www.yansuwitna.net/2017/01/pengenalan-arduino.html
https://elektronika-dasar.web.id/pengertian-dan-kelebihan-mikrokontroler/
https://kelasrobot.com/8-alasan-mengapa-harus-pilih-arduino/
BAB 2
Elektronika
Komponen Elektronika biasanya sebuah alat berupa benda yang menjadi
bagian pendukung suatu rangkaian elektronik yang dapat bekerja sesuai dengan
kegunaannya. Mulai dari yang menempel langsung pada papan rangkaian baik
berupa PCB, CCB, Protoboard maupun Veroboard dengan cara disolder atau tidak
menempel langsung pada papan rangkaian (dengan alat penghubung lain,
misalnya kabel).
Komponen elektronika ini terdiri dari satu atau lebih bahan elektronika,
yang terdiri dari satu atau beberapa unsur materi dan jika disatukan, dipanaskan,
ditempelkan dan sebagainya akan menghasilkan suatu efek yang dapat
menghasilkan suhu atau panas, menangkap atau menggetarkan materi, merubah
arus, tegangan, daya listrik dan lainnya.
Cara menggunakan
1. Mengukur tegangan DC
o Atur Selektor pada posisi DCV.
o Pilih skala batas ukur berdasarkan perkiraan besar tegangan yang akan di cek, jika
tegangan yang di cek sekitar 12Volt maka atur posisi skala di batas ukur 50V.
o Untuk mengukur tegangan yang tidak diketahui besarnya maka atur batas ukur pada
posisi tertinggi supaya multimeter tidak rusak.
o Hubungkan atau tempelkan probe multimeter ke titik tegangan yang akan dicek, probe
warna merah pada posisi (+) dan probe warna hitam pada titik (-) tidak boleh terbalik.
o Baca hasil ukur pada multimeter.
2. Mengukur tegangan AC
o Atur Selektor pada posisi ACV.
o Pilih skala batas ukur berdasarkan perkiraan besar tegangan yang akan di cek, jika
tegangan yang di cek sekitar 12Volt maka atur posisi skala di batas ukur 50V.
o Untuk mengukur tegangan yang tidak diketahui besarnya maka atur batas ukur
pada posisi tertinggi supaya multimeter tidak rusak.
o Hubungkan atau tempelkan probe multimeter ke titik tegangan yang akan dicek.
Pemasangan probe multimeter boleh terbalik.
o Baca hasil ukur pada multimeter.
Gambar
2. SAKLAR
Simbol
Gambar
3. KAPASITOR
Kondensator atau sering disebut sebagai kapasitor adalah suatu alat yang
dapat menyimpan energi di dalam medan listrik, dengan cara mengumpulkan
ketidakseimbangan internal dari muatan listrik. Kondensator memiliki satuan yang
disebut Farad dari nama Michael Faraday.
Kondensator diidentikkan mempunyai dua kaki dan dua kutub yaitu
positif dan negatif serta memiliki cairan elektrolit dan biasanya
berbentuk tabung.
Lambang kondensator (mempunyai kutub) pada skema elektronika.
Sedangkan jenis yang satunya lagi kebanyakan nilai kapasitasnya lebih
rendah, tidak mempunyai kutub positif atau negatif pada kakinya,
kebanyakan berbentuk bulat pipih berwarna coklat, merah, hijau dan
lainnya seperti tablet atau kancing baju.
KONDENSATOR/KAPASITOR POLYESTER
Pada dasarnya sama saja dengan kondensator keramik begitu juga cara
menghitung nilainya. Bentuknya persegi empat seperti permen. Biasanya
mempunyai warna merah, hijau, coklat dan sebagainya. Polister film adalah bahan
yang digunakan untuk pembuatan kapasitor ini. Kapasitor ini memiliki toleransi
yang kecil sekitar ±5% sampai ±10% dan juga tidak memiliki kutub.
B. KONDENSATOR ELEKTROLIT
Simbol
Gambar
Kondensator elektrolit atau Electrolytic Condenser (sering disingkat
Elco) adalah kondensator yang biasanya berbentuk tabung, mempunyai dua kutub
kaki berpolaritas positif dan negatif, ditandai oleh kaki yang panjang positif
sedangkan yang pendek negatif atau yang dekat tanda minus ( - ) adalah kaki
negatif. Nilai kapasitasnya dari 0,47 µF (mikroFarad) sampai ribuan mikroFarad
dengan voltase kerja dari beberapa volt hingga ribuan volt.
C. KONDENSATOR VARIABEL
Simbol
Gambar
4. RESISTOR
Simbol
Gambar
Resistor adalah komponen elektronik dua saluran yang didesain untuk
menahan arus listrik dengan memproduksi penurunan tegangan diantara kedua
salurannya sesuai dengan arus yang mengalirinya, berdasarkan hukum Ohm:
Gambar
Gambar
Gambar
D. TERMISTOR
Simbol
Gambar
5. DIODA
Dioda adalah komponen elektronik yang terbuat dari unsur semikonduktor. Bahan
ini adalah silikon atau germanium. Dioda silikon bekerja pada tegangan 0.6 VDC
dan dioda germanium bekerja pada tegangan 0,2 VDC.
Contoh dioda : IN 4148, IN4002, IN 4003, dll.
Sifat dioda :
• Jika diberi arah maju (tegangan positif => anoda
dan tegangan negatif => katoda) akan
menghantarkan arus dan sebaliknya,
Fungsi Dioda :
• Sebagai penyearah
• Sebagai pengaman rangkaian dari kemungkinan terbaliknya polaritas
A. DIODA CAHAYA
Simbol
Gambar
Gambar
Dioda Zener adalah dioda yang memiliki karakteristik menyalurkan arus
listrik mengalir ke arah yang berlawanan jika tegangan yang diberikan melampaui
batas "tegangan rusak" (breakdown voltage) atau "tegangan Zener". Ini berlainan
dari dioda biasa yang hanya menyalurkan arus listrik ke satu arah.
Dioda yang biasa tidak akan mengijinkan arus listrik untuk mengalir secara
berlawanan jika dicatu-balik (reverse-biased) di bawah tegangan rusaknya. Jika
melampaui batas tegangan rusaknya, dioda biasa akan menjadi rusak karena
kelebihan arus listrik yang menyebabkan panas. Namun proses ini adalah reversibel
jika dilakukan dalam batas kemampuan. Dalam kasus pencatuan-maju (sesuai
dengan arah gambar panah), dioda ini akan memberikan tegangan jatuh (drop
voltage) sekitar 0.6 Volt yang biasa untuk dioda silikon. Tegangan jatuh ini
tergantung dari jenis dioda yang dipakai.
Sebuah dioda Zener memiliki sifat yang hampir sama dengan dioda biasa,
kecuali bahwa alat ini sengaja dibuat dengan tengangan rusak yang jauh dikurangi,
disebut tegangan Zener. Sebuah dioda Zener memiliki p-n junction yang memiliki
doping berat, yang memungkinkan elektron untuk tembus (tunnel) dari pita valensi
material tipe-p ke dalam pita konduksi material tipe-n. Sebuah dioda zener yang
dicatu-balik akan menunjukan perilaku rusak yang terkontrol dan akan melewatkan
arus listrik untuk menjaga tegangan jatuh supaya tetap pada tegangan zener.
Sebagai contoh, sebuah diode zener 3.2 Volt akan menunjukan tegangan jatuh pada
3.2 Volt jika diberi catu-balik. Namun, karena arusnya tidak terbatasi, sehingga
dioda zener biasanya digunakan untuk membangkitkan tegangan referensi, atau
untuk menstabilisasi tegangan untuk aplikasi-aplikasi arus kecil.
Pemakaian
Dioda Zener biasanya digunakan secara luas dalam sirkuit elektronik.
Fungsi utamanya adalah untuk menstabilkan tegangan. Pada saat disambungkan
secara parallel dengan sebuah sumber tegangan yang berubah-ubah yang dipasang
sehingga mencatu-balik, sebuah dioda zener akan bertingkah seperti sebuah
kortsleting (hubungan singkat) saat tegangan mencapai tegangan rusak diode
tersebut. Hasilnya, tegangan akan dibatasi sampai ke sebuah angka yang telah
diketahui sebelumnya.
Sebuah dioda zener juga digunakan seperti ini sebagai regulator tegangan
shunt (shunt berarti sambungan parallel, dan regulator tegangan sebagai sebuah
kelas sirkuit yang memberikan sumber tegangan tetap.
Cara Pengujian
1. Dengan jangkah OHM x1k atau x100 penyidik merah ditempel pada katoda (ada
tanda gelang) dan hitam pada anoda, jarum harus ke kanan.
2. Penyidik dibalik ialah merah ke anoda dan hitam ke katoda, jarum harus tidak
bergerak. Bila tidak demikian berarti kemungkinan diode rusak.
6. LOUDSPEAKER
Simbol
Gambar
Pengeras suara Inggris loud speaker atau speaker saja) adalah transduser
yang mengubah sinyal elektrik ke frekuensi audio (suara) dengan cara
menggetarkan komponennya yang berbentuk selaput.
Membuat suara
Pada dasarnya, speaker merupakan mesin penterjemah akhir, kebalikan dari
mikrofon. Speaker membawa sinyal elektrik dan mengubahnya kembali menjadi
getaran untuk membuat gelombang suara. Speaker menghasilkan getaran yang
hampir sama dengan yang dihasilkan oleh mikrofon yang direkam dan dikodekan
pada tape, CD, LP, dan lain-lain. Speaker tradisional melakukan proses ini dengan
menggunakan satu drivers atau lebih.
7. TRANSISTOR
Transistor adalah alat semikonduktor yang dipakai sebagai penguat,
sebagai sirkuit pemutus dan penyambung (switching), stabilisasi tegangan,
modulasi sinyal atau sebagai fungsi lainnya. Transistor dapat berfungsi semacam
kran listrik, dimana berdasarkan arus inputnya (BJT) atau tegangan inputnya (FET),
memungkinkan pengaliran listrik yang sangat akurat dari sirkuit sumber listriknya.
PNP P-channel
NPN N-channel
BJT JFET
1. Cara kerja UJT (Uni Junktion Transistor) adalah seperti switch, UJT kalau
masih bisa on off berarti masih baik.
2. Jangkah pada 10 VDC dan potensio pada minimum, tegangan harus kecil.
3. Setelah potensio diputar pelan-pelan jarum naik sampai posisi tertentu dan
kalau diputar terus jarum tetap disitu.
4. Bila jarum diputar pelan-pelan ke arah minimum lagi, pada suatu posisi
tertentu tiba-tiba jarum bergerak ke kiri dan bila putaran potensio diteruskan
sampai minimum jarum tetap disitu. Bila peristiwa tersebut terjadi, maka
UJT masih baik.
NPN
PNP
8. AMPLIFIER
OPERASIONAL AMPLIFIER
Prinsip Dasar
Suatu amplifier dapat dikatagorikan operasional jika
memenuhi tiga karakteristik utama, yakni:
1. Very high gain (200.000 kali)
2. Very high input impedance
3. Very low output impedance
Differential amplifier memiliki respon frekuensi yang sangat lebar dan input impedance
yang sangat tinggi. Voltage amplifier memberikan penguatan yang sangat tinggi dan
output amplifier memberikan output impedance yang sangat rendah sehingga dapat
mengeluarkan arus listrik yang besar terhadap beban.
Konfigurasi
Tidak seperti amplifier konvesional, OpAmp mempunyai dua terminal masukkan, yakni:
inverting input dan noninverting input yang masing-masing
ditandai dengan "+" dan "-".
1. Inverting Konfiguration
Jika signal dimasukkan di antara terminal inverting input
dan bumi sementara terminal noninverting input dibumikan
maka signal keluaran akan berlawanan fasa dengan signal
masukkan.
2. Noninverting Konfiguration
Sebaliknya jika signal dimasukkan di antara terminal
noninverting input dan bumi sementara terminal inverting
input dibumikan maka signal keluaran sefasa dengan signal
masukkan.
INVERTING AMPLIFIER
Langkah percobaan:
1. Buat rangkaian sebagaimana gambar-1
2. R1=2K2, Rf=1M
3. Beri masukan sinyal input berupa sinus soida
sebesar 0,5 Volt RMS
4. Atur penahan Rf mulai dari 1M sampe
dengan 0 ohm (sesuai tabel pengukuran)
5. Amati bentuk sinyak input dan outputnya
6. Amati tegangan AC outputnya
7. Buat kurva R-V sebagaimana table
pengamatan.
Practice Make Perfect
SAKLAR DENGAN LDR
DC 6V
Percobaan-a:
50k
220
1. buat rangkaian seperti pada gambar
LED
2. Hubungkan ke sumber baterey
4K7
3. Tutup LDR dan atur potensio agar LED menyala
C
4. Buka tutup LDR atur potensio agar LED mati (bila B
C1061
sulit padam seter pake lampu hp)
E
LDR
GND
DC 6V
Percobaan-b:
50k
220
GND
BAB 3
Pengetahuan Dasar
Arduino
A. PWM (Pulse Width Modulation)
Secara umum, PWM adalah cara memanipulasi lebar sinyal atau
tegangan yang dinyatakan dalam suatu perioda, yang dapat digunakan untuk
mengontrol daya keluaran dari mikrokontroler. Sinyal PWM merupakan
sinyal digital yang amplitude / lebarnya tetap tetapi mempunyai lebar pulsa
HIGH dan LOW yang berbeda – beda dalam satu perioda. Seperti pada
Gambar berikut.
Keterangan :
D = Duty Cycle
sL= sinyal Low
sH = sinyal High
sTotal= sinyal total dalam satu perioda
Vout = tegangan keluaran
V in = Tegangan masukan
12
}
13
B. Komunikasi Serial
Kemampuan untuk bisa melakukan komunikasi data antara 2 atau
lebih peralatan elektronik adalah hal yang sangat penting yang harus
dimiliki oleh sebuah microcontroller. Dan yang lebih penting lagi,
kemampuan komunikasi tersebut tidak boleh sampai mengurangi fungsi
dari microcontroller itu sendiri. Ada 2 jenis komunikasi data yang bisa
dilakukan oleh microcontroller, yaitu komunikasi parallel dan
komunikasi serial. Komunikasi parallel memiliki kelebihan dari sisi
kecepatan transfer data, namun efisiensi penggunaan pin dari
microcontroller juga menjadi berkurang.
Komunikasi serial yang dimiliki oleh Arduino bisa kita manfaatkan
untuk berkomunikasi dengan Personal Computer, Bluetooth Modul, atau
bahkan dengan Arduino yang lain. Yang perlu menjadi catatan utama
adalah, jika port dari Arduino Microcontroller sudah difungsikan sebagai
sarana komunikasi serial, maka port tersebut tidak dapat difungsikan
sebagai port input/output digital.
Jawab :
Program
int led1 = 13;
int led2 = 12;
int led3 = 11;
int out;
void setup()
{
Serial.begin(9600);
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
}
void loop()
{
if (Serial.available()>0)
{
int baca = Serial.read();
if (baca =='a')
{
out=1;
}
if (baca =='b')
{
out=2;
}
if (baca =='c')
{
out=3;
}
if(out==1)
jalan: //LED akan berjalan running
{
digitalWrite(led1, HIGH);
delay(500);
digitalWrite(led1, LOW);
delay(500);
digitalWrite(led2, HIGH);
delay(500);
digitalWrite(led2, LOW);
delay(500);
digitalWrite(led3, HIGH);
delay(500);
digitalWrite(led3, LOW);
delay(500);
Serial.println("LED running");
loop();
goto jalan;
}
if(out==2)
start: // LED akan berjalan
flip flop
{
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, HIGH);
delay(500);
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
delay(500);
Serial.println("LED flip flop");
loop();
goto start;
}
if(out==3)
stop: // LED akan mati
{
digitalWrite(led1,LOW);
digitalWrite(led2,LOW);
digitalWrite(led3,LOW);
Serial.println("LED mati");
loop();
goto stop;
}
}
}
3. Buka Aplikasi Arduino, kemudian buat program sesuai perintah di atas. atau
tinggal copas program yang sudah saya buat.
4. Pastikan port berada pada serial port COM5.
5. Upload program sampai tertera tulisan Done Uploading.
C. Delay
delay( )
delay(500);
Timer Register
Untuk dapat melakukan manipulasi timer pada Arduino terlebih
dahulu harus mengetahui fungsi dari masing-masing register yang terkait
timer. Salah satu register timer yang paling penting ialah TCCRx
(Timer/Conter Control Register), dengan x adalah nomor, berikut ini adalah
register apa saja yang digunakan untuk timer.
TCCRx (Timer/Conter Control Register), dimana prescaler dapat
dikonfigurasi disini sekaligus mode operasi timer
TCNTx (Timer/Counter Register), dimana nilai timer disimpan,
merupakan register pencacah mulai dari 0 hingga nilai maximum
OCRx (Output Compare Register), untuk membandingkan OCR yag
diberikan dengan nilai TCNT
ICRx (Input Capture Register), hanya tersedia untuk timer 16 bit,
menerima data timer
TIMSKx (Timer/Counter Interrupt Mask Register), digunakan
untuk menjalankan atau mematikan timer interrupt
TIFRx (Timer/Counter Interrupt Flag Register), menandakan timer
interrupt hasil operasi timer
void setup()
{
pinMode(13, OUTPUT);
Timer1.initialize(100000); // 100.000 ms ( 0.1 sec )
Timer1.attachInterrupt( LedBlink);
}
void loop()
{
/// --------------------------
/// ISR Timer Routine , nama fungsi bisa custom
/// --------------------------
void LedBlink()
{
digitalWrite( 13, digitalRead( 13 ) ^ 1 );
}
2. Memakai Timer tanpa menggunakan Library
void setup()
{
pinMode(13, OUTPUT);
// initialize timer1
noInterrupts(); // disable all interrupts
TCCR1A = 0;
TCCR1B = 0;
void loop()
{
E. Interrupt
Interrupt pada Arduino adalah suatu keadaan dimana saat pemicu
program interrupt dipicu baik secara eksternal ataupun internal, program
interrupt akan menghentikan sejenak program yang sedang dijalankan oleh
arduino dan melaksanakan program interrupt tersebut.
Interrupt dapat digunakan pada Arduino dengan menambahkan
program berikut pada program yang ingin kita berikan fungsi interrupt.
Keterangan :
attachInterrupt memiliki maksud bahwa kita akan memasang interrupt
pin = nomor pin interput yg digunakan
fungsi = fungsi yg akan dieksekusi
Mode = mode deteksi pin yg digunakan
Pin Analog Input pada Arduino Uno. Pin A0-A5 tersebut terhubung
dengan ADC (Analog to Digital Converter).
Keterangan :
pin = nomor pin digital PWM (bertanda ~) pada Arduino yang
akan dihasilkan sinyal PWM.
Pin Digital I/O pada Arduino Uno. Pin 3,5,6,9,10, dan 11 dapat
menghasilkan sinyal PWM.
1
2 // pin digital nomor 2 telah terpasang sebuah pushbutton. Beri nama
3 pushbutton ini ‘tombol’
4 int tombol = 2;
5
void setup() {
6 // mulai komunikasi serial dengan baud rate 9600 bits per second
7 Serial.begin(9600);
8 // jangan lupa deklarasikan tombol sebagai input
9 pinMode(tombol, INPUT);
10 }
11
void loop() {
12 // baca state tombol
13 int keadaanTombol = digitalRead(tombol);
14 // print state tombol melalui serial
15
16 if (keadaanTombol == 1) {
17 } Serial.println("Tombol ditekan");
else {
18 Serial.println("Tombol tidak ditekan");
19 }
20
21 delay(100); // delay 100 milisekon
22}
23
1
void setup() {
2
// definisikan pin 13 sebagai output
3 pinMode(13, OUTPUT);
4 }
5 void loop() {
https://www.sinauarduino.com/artikel/tutorial-pwm-pada-arduino/
http://kl301.ilearning.me/2015/05/19/pelajari-tentang-pwm-2/
https://masodha.com/belajar-arduino/
https://www.cronyos.com/interrupt-arduino/
https://www.arduino.cc/reference/en/language/functions/external-
interrupts/attachinterrupt/
https://www.nyebarilmu.com/komunikasi-serial-arduino-uno-via-komputer/
https://www.sinauarduino.com/artikel/dasar-input-dan-output-pada-arduino/
https://www.nyebarilmu.com/penjelasan-tentang-input-output-arduino/
BAB 4
Basic Project Arduino
Setelah mengetahui apa itu mikrokontroler dan bagaimana cara kerjanya, selanjutnya
adalah bagaimana pengaplikasian dari mikrokontroller tersebut. Namun sebelum
memasuki ke dalam pengaplikasian yang rumit seperti drone atau alat elektronik lainnya,
lebih baik kita melakukan aplikasi mikrokontroller ke dalam project yang sederhana
dahulu atau biasa disebut basic project.
a. BLINK LED
Project sederhana untuk blink LED dapat dibuat dengan alat dan bahan yang
sederhana dan mudah untuk didapatkan. Project ini akan membuat kita semakin
mengerti tentang cara penggunaan mikrokontroller seperti Arduino yang akan
digunakan untuk project kali ini. Hasil dari project ini yaitu akan membuat led kedap-
kedip.
LED
Resistor
Kabel Jumper
BreadBoard
Arduino
Untuk kode dari program yang akan di upload ke Arduino, akan diberikan
contoh dari kode yang sudah ada yaitu sebagai berikut.
Pin LED yang
terhubung ke
Arduino
Konfigurasi Pin
pada Arduino
Kode program di atas terdiri dari beberapa bagian yang mengatur kinerja
dari mikrokontroller yang digunakan yaitu Arduino, dan masing-masing bagian
dari kode program ini memiliki fungsi dan kerjanya masing-masing. Untuk
mengetahui bagaimana cara kerja dari kode program tersebut, maka akan di
jelaskan perbagian dari program tersebut.
Motor Servo
Motor servo adalah motor yang dapat bergerak dengan parameter sudut yang
dapat digunakan dalam alat pengerak pada robot. Motor servo ini juga memiliki
kemampuan untuk membaca sudut dengan presisi. Untuk mengakses motor
servo ini dibutuhkan suatu library yaitu servo.h yang berisi data-data untuk
menggerakan servo. Pada motor servo ini, terdapat 3 kabel. Masing-masing kabel
tersebut mempunyai fungsinya masing-masing. Berikut merupakan fungsi fungsi
dari kabel pada motor servo bedasarkan warnanya.
Motor servo ini banyak di aplikasikan ke bagian penggerak robot karena mudah
untuk mengaksesnya dan juga konfigurasi bedasrkan sudut yang tidak terlalu
rumit. Contoh dari aplikasi simple dari motor servo dapat dilakukan yaitu seperti
menggerakan servo dengan potensiometer. Alat yang dibutuhkan untuk
merangkai project ini adalah.
Arduino
Kabel jumper
Potensiometer
Motor Servo
Pada
Library servo
Instruksi kerja
untuk Arduino
Pada kode program di atas, terdapat pemasukan untuk library servo dengan
menggunakan “#include”. Lalu selanjutnya terdapat pembuatan variabel untuk
servo yang digunakan dan juga konfogurasi pin analog yang akan terhubung ke
output dari potensiometer serta pembuatan variabel lain yang akan digunakan
untuk parameter sudut motor servo. Konfigurasi lainnya adalah konfigurasi pin
PWM yang nantinya terhubung ke kabel data untuk servo menggunakan “attach”.
Pada bagian fungsi utama dari kode program disana, terdapat fungsi map yaitu
fungsi yang akan mengubah skala pembacaan potensiometer yaitu dari 0 sampai
1023 menjadi skala sudut maks dari servo yang digunakan, pada servo ini dari 0
sampai 180. lalu untuk menggerakan servo menggunakan perintah “write” yang
parameternya merupakan variabel potensiometer yang diubah sebelumnya.
Motor DC
Motor DC merupakan aktuator yang akan mengubah listrik DC menjadi fenomena
fisis. Motor DC sudah sering kita lihat, kita sering melihatnya pada mainan mobil,
kipas kecil, dan masih banyak lagi. Motor DC juga dapat digunakan dalam robot
contohnya sebagai bagian penggerak untuk roda atau semacamnya. Biasanya,
untuk dapat mengendalikan maju atau mundurnya motor dc kita harus
menggunakan suatu rangkaian kontroller untuk motor DC yang disebut Motor
Driver.
Arduino dapat digunakan sebagai pusat kontrol untuk motor DC yang nanti akan
melewati Motor Diver untuk memproses perintah yang masuk yaitu apakah
motor itu harus bergerak maju atau mundur. Lalu motor driver yang sudah
memproses data yang masuk itu akan menggerakan motor DC sesuai dengan
arahan dari Arduino. Contoh dari rangkaian motor DC dapat dilihat di bawah ini.
Pada rangkaian diatas, arduino akan mengirimkan data digital (0 atau 1) ke motor
driver untuk dapat menggerakan motor DC. Berikut merupakan data tentang
input yang diberikan ke motor driver dan arah dari motor DC dengan
perumpamaan pin 5 sebagai A dan pin 2 sebagai B.
A B GERAK
0 0 Diam
0 1 Maju
1 0 Mundur
1 1 Diam (Terkunci)
Selain arah gerak, motor driver juga dapat mengatur kecepatan dengan cara
menghubungkannya ke pin PWM seperti rangkaian di atas yang terhubung ke pin
9. Untuk mengatur semua itu maka perlu adanya kode program yang sesuai untuk
memberi instruksi ke Arduino. Berikut merupakan contoh dari kode program.
Konfigurasi Pin Arduino
yang terhubung ke
motor driver
Fungsi yang
menjalankan motor DC
(arah dan kecepatan)
A. Latar Belakang
Pin analog pada Arduino (dan mikrokontroller lain pada umumnya) dapat
digunakan untuk input dan output digital. Hanya saja pin analog memiliki fitur untuk
dapat mengubah sinyal analog yang masuk menjadi nilai digital yang mudah diukur.
Pin digital hanya dapat mengenali sinyal 0 volt sebagai nilai LOW dan 5 volt sebagai
nilai HIGH. Sedangkan Pin analog dapat mengenali sinyal pada rentang nilai voltase
tersebut. Hal ini sangat berguna ketika kita hendak mengukur sesuatu dari sensor dan
menggunakan nilai masukan tersebut untuk keperluan lain.
Fungsi yang kita gunakan untuk membaca nilai analog pada Arduino adalah
analogRead([nomorPin]). Kita juga akan menggunakan potensiometer sebagai input
analognya. Alat dan Bahan
C. Cara Kerja
1. Pengkabelan
Potensiometer adalah kenop yang menghasilkan resistansi/hambatan
variabel. Potensiometer memiliki 3 kaki (ada yang memiliki lebih dari 3 kaki, tapi
biasanya kelipatan 3 dan pada dasarnya ada 3 jenis kaki), yakni dua kaki terluar
yang masing-masing dihubungkan dengan 5V dan GND, dan kaki tengah yang
menghasilkan keluaran nilai analog. Pada rangkaian di atas, kaki tengah
potensiometer dihubungkan ke pin A5. Pin A5 akan menerima sinyal voltase
dengan besaran sesuai dengan putaran kenop potensiometer. Semakin dekat
putaran ke arah 5V, maka nilai resistansi akan semakin kecil sehingga nilai
voltase yang keluar akan semakin besar mendekati 5V. Begitu pula
sebaliknya. Sinyal tersebut akan dikonversi ke nilai angka dan ditampilkan pada
jendela Serial Monitor.
2. Program
Upload kode program. Pastikan Kamu sudah mengeset board dengan Arduino
Uno dan memilih port yang sesuai dengan koneksi USBmu. Setelah proses
upload berhasil, buka jendela Serial Monitor dengan memilih menu Tools >
Serial Monitor atau mengklik tombol Serial Monitor yang ada di sebelah
kanan atas jendela Arduino IDE. Kamu dapat mengamati nilai analog yang
masuk dan melihat perubahannya sambil memutar-mutar kenop potensiometer.
Hasilnya akan menjadi seperti ini
Program LCD
A. Latar Belakang
Pada percobaan ini, kita akan menggunakan LCD 16x2. LCD (Liquid Crystal Display)
16x2 adalah jenis media tampilan atau Display dari bahan cairan kristal sebagai penampil
utama.LCD 16x2 dapat menampilkan sebanyak 32 karakter yang terdiri dari 2 baris dengan
tiap baris menampilkan 16 karakter.Pada Arduino untuk mengendalikan LCD Karakter
16x2 untuk librarynya secara default sudah ada librarynya yaitu LiquidCrystal.h. LCD ada
bermacam-macam ukuran 8x1, 16x1, 16x2, 16x4, 20x4. Untuk mengendalikan atau
mengontrol macam-macam LCD Karakter di atas dapat menggunakan cara yang hamper
sama dengan percobaan ini, perbedaannya hanya pada inisialisasi jumlah kolom dan baris.
LCD 16×2 dapat dengan mudah didapatkan ditoko elektronik terdekat.
Keterangan :
Arduino Uno
Komputer + Software IDE Arduino
LCD 16×2
Potensiometer 10k ohm
Kabel Jumper
Resistor
C. Cara Kerja
1. Pengkabelan
2. Program
Detail Fungsi Pemrograman Arduino Untuk Kontrol LCD yang sering di
gunakan.
LiquidCrystal lcd(RS,E,D4,D5,D6,D7)
contohnya :
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
lcd.begin(Kolom,Baris);
contohnya untuk 16x2 :
lcd.begin(16, 2);
4. Clear display
Lcd.clear();
setCursor(Kolom,Baris)
Contoh :
lcd.setCursor(0,0);
Set posisi awal kursor di awali dengan kolom 0 dan baris 1
lcd.setCursor(0,1);
lcd.print("labelektronika");
Akses Sensor
A. Latar Belakang
Keterangan :
data : data Analog Out dengan output tegangan analog sebesar 10 mV/1°C
Artinya jika terbaca tegangan Vout = 50 mV, maka suhu kenaikannya
yang tebaca yaitu 5°Celcius
VCC : Tegangan kerja masukan yaitu berkisar antara 3.3 – 5 vdc
GND : Ground
Memiliki akurasi atau ketepatan kalibrasi yaitu 0.5ºC (suhu normal 25 ºC)
Dapat dikalibrasi langsung dalam celcius, dikarenakan memiliki
sensitivitas yang linier antara suhu yang akan dideteksi dan tegangan
keluaran yaitu 10 mV/ºC
Pengukuran suhu yang dapat dilakukan yaitu antara -55 ºC – 150 ºC.
Tegangan kerja secara datasheet yaitu 4 – 30 volt, tetapi disarankan
menggunakan 5vdc
Bekerja pada arus rendah : kurang dari 60 µA.
Selft low heating yang artinya memiliki pemanasan sendiri yaitu kurang
dari 0,1 ºC pada udara diam.
Pada beban 1mA memiliki impedansi keluaran yang rendah yaitu 0,1 W.
Ketidaklinieran akan pembacaan suhu yaitu hanya sekitar ± ¼ ºC
Arduino Uno
Komputer + Software IDE Arduino
Sensor suhu LM35
Breadboard
Kabel Jumper
C. Cara Kerja
A. Pengkabelan
B. Program
Untuk mengetahui akan berfungsinya rangkaian sensor suhu LM35, dapat
dilakukan perlakuan menaikan suhu dengan memanasinya dengan mendekatkan
korek api dan menurunkan suhu dengan mendekatkan sensor dengan es batu.
- 5V Arduino
- GND
Pertama motor akan berputar mengikuti besar nilai/duty cycle, duty cycle sendiri
merupakan gelombang digital dengan batasan 8 bit = 0 – 255 yang menunjukkan besar
persentasi gelombang digital yang dihasilkan, tanda minus (-) menunjukkan arah putaran
yang berlawanan. Fungsi analogWrite ini hanya dapat digunakan pada pin-pin digital yang
terdapat tanda ‘~’ disebelah pin di arduino.
Kemudian sensor ultrasonic HC-SR04 akan menghitung jarak benda yang terdapat
dihadapan sensor ini dengan memasukkan rumus distance = (duration/2)/29.1 yang berarti
jarak (cm) = rata-rata waktu dibagi konstanta sensor ultrasonic HC-SR04. Jika terdapat
benda pada jarak >= 300 cm kecepatan motor akan berkurang dengan memainkan nilai duty
cycle dan fungsi speaker/buzzer akan hidup selama 500 ms dengan nilai frekuensi 1000
khz, begitu seterusnya kecepatan motor akan berkurang hingga jarak < 100 cm motor akan
berhenti dan buzzer akan berbunyi panjang selama 3000 ms sebagai penanda bahwa jarak
benda sudah sangat dekat dengan sensor. Dengan begitu dapat dikombinasikan beberapa
komponen elektronik tersebut menjadi sebuah project parking mundur otomatis berbasis
arduino/auto handling reverse-parking.
Daftar Pustaka
Fajar Wicaksono Mochamad, S.Kom., M.Kom Hidayat, S.Kom., M.T. “Mudah Belajar
Mikrokontroler Arduino”. November 2017. INFORMATIKA, Bandung.
https://www.sinauarduino.com/artikel/tutorial-pwm-pada-arduino/.
http://www.ardumotive.com/how-to-use-a-buzzer-en.html.
Example Project For Arduino : GreenHouse
GreenHouse atau project pemantauan keadaan pada suatu rumah kaca merupakan
sebuah project berbasis Arduino dan Wifi module dengan menggunakan sensor
suhu,tekanan dan kelembapan sebagai komponen utama untuk memantau tingkat keadaan
pada suatu rumah kaca. Berikut komponen-komponen yang dibutuhkan :
1. Wemos D1 MINI
2. Breadboard (1 buah)
- 3.3V wemos
- GND
- pin D1 (SCL)
- pin D2 (SDA)
Berikut source code project arduino tersebut :
Penjelasan Program & Cara Kerja Alat :
Dari source code diatas, bisa dilihat bahwa kita menggunakan 4 header. Dimana 2
header nya hanya bisa di compile pada board esp8266 yaitu ESP8266WiFi.h dan
FirebaseArduino.h . Untuk Define firebase, kita harus membuat project firebase dan
menyalakan fungsi RealTime Database. Disana akan ada link yang ujung firebaseio.com,
link tersebut lah yang kita define. Untuk 2 define selanjutnya adalah SSID wifi dengan
password nya. Pada bagian Setup(), kita menginisiasi BME,Serial,Wifi dan Firebase. Pada
program utama nya kita hanya memanggil fungsi untuk membaca nilai sensor, kemudian
nilai nya dimasukkan ke kalman filter dan nilai keluaran dari kalman filter yang akan kita
kita upload ke firebase. Untuk pemanggilan fungsi untuk print data ke Serial monitor dan
fungsi untuk upload ke firebase kita menggunakan millis() agar data dikirim memiliki delay
1000ms tanpa menghentikan kerja sistem yang lain. Hal ini dilakukan agar tidak ada error
pada saat perhitungan kalman filter. Cara kerja alat nya adalah membaca suhu,tekanan dan
kelembapan udara di sekitar sensor dan data nya akan di upload ke Realtime Database
Firebase yang nanti bisa kita koneksikan dengan berbagai macam device seperti android
apps, website dan lainnya
Example Project Arduino : Sistem SONAR dan RADAR.
Sistem pengindraan jarak jauh seperti SONAR dan RADAR biasa digunakan di
dunia militer untuk mengetahui posisi suatu benda di medan pertempuran. Pada
example project kali ini kita akan belajar membuat prototype(purwarupa) suatu
system yang menyerupai dengan kedua system di atas. Alat dan Bahan yang
dibutuhkan :
1. Arduino
2. Breadboard
4. Kabel Jumper
5. Motor Servo
Rangkaian skematik yang dibentuk :
long duration;
int distance;
Servo myServo; // Creating a servo object for controlling the servo moto
r
void setup() {
void loop() {
delay(20);
Serial.print(",");
myServo.write(b);
delay(20);
distance = Distance();
Serial.print(b);
Serial.print(",");
Serial.println(distance);
delayMicroseconds(2);
delayMicroseconds(10);
digitalWrite(9, LOW);
return distance;
tzaroon , “Sonar Radar System Using Arduino, Servo & Ultrasonic (HC-SR04)”
https://www.instructables.com/id/Sonar-Radar-System-Using-Arduino-Servo-
Ultrasonic-/
KALMAN FILTER
Filter digital adalah semua filter elektronik yang bekerja dengan
menerapkan operasimatematika digital atau algoritma pada suatu pemrosesan
sinyal. Salah satu batasan utama pada filter digital adalah dalam hal keterbatasan
kecepatan pemrosesan/waktu komputasiyang sangat tergantung dengan
kemampuan mikrokontroler atau komputer yang digunakan
Kalman Filter(KF) adalah suatu metode estimasi variabel keadaan dari
sistem dinamik stokastik linear diskrit yang meminimumkan kovariansi error
estimasi. Metode KF pertama kali diperkenalkan oleh Rudolph E. Kalman pada
tahun 1960 lewat papernya yang terkenal tentang suatu penyelesaian rekursif pada
masalah filtering data diskrit yang linear (Welch & Bishop, 2006). KF merupakan
suatu pendekatan teknis untuk menaksir fungsi parameter dalam peramalan deret
berkala (time series). Keunggulan metode KF adalah kemampuannya dalam
mengestimasi suatu keadaan berdasarkan data yang minim. Data minim yang
dimaksud adalah data pengukuran (alat ukur) karena KF merupakan suatu metode
yang menggabungkan model dan pengukuran. Data pengukuran terbaru menjadi
bagian penting dari algoritma KF karena data mutakhir akan berguna untuk
mengoreksi hasil prediksi, sehingga hasil estimasinya selalu mendekati kondisi
yang sebenarnya (Masduqi,2008).
Gambar diatas adalah bagan cara kerja dari Kalman Filter. 2 kotak merah
diatas adalah suatu nilai awal untuk error estimasi dan nilai awal estimasi yang
bisa kita isi berapa pun karena nanti kedua nilai tersebut akan berubah sejalan
dengan iterasi kalman filter, selain dua nilai tersebut masih ada 1 konstanta Error
pembacaan yang biasanya terdapat pada datasheet. Lingkaran merah adalah nilai
inputan dari pembacaan sensor.
Ini adalah variabel-variabel yang akan kita gunakan pada proses iterasi dan step
cara kerja Kalman Filter.
*pada step 1 EEST nya adalah EESTt-1
Ini adalah 3 perhitungan yang dilakukan terus menerus oleh kalman filter.
Dimana setelah step ke 3 selesai dilakukan, maka akan mengulang perhitungan ke
step 1 kembali. Yang harus diperhatikan saat kembali ke step 1 adalah
𝐸𝐸𝑆𝑇𝑡 𝑎𝑘𝑎𝑛 𝑚𝑒𝑛𝑗𝑎𝑑𝑖 𝐸𝐸𝑆𝑇𝑡−1