PRAKTIKUM MIKROKONTROLER
Dosen : GAGUK FIRASANTO. S.T., M.T.
DISUSUN OLEH :
NENGAH MUKTI
NIM : 191010100358
C. Arduino Ide
Arduino IDE atau arduino integrated development environment merupakan suatu
applikasi yang dapat di terapkan pada windows, linux atau macOS. Pada sebuah
software arduino mempunyai beberapa jenis menu, yaitu file, sketch, edit, help dan
tools.
1. File. Menu file terdiri dari pembuatan program baru atau new sketch, membuka
preference, danyang lainnya.
2. Edit. Pada menu edit terdiri dari beberapa pilihan yaitu copy, paste, select atau cut.
3. Sketch. Pada menu sketch terdapat verify yang di gunakan untuk memverifikasi
program sebelum program tersebut di up load.
4. Help. di gunakan untuk mencari informasi atau langkah-langkah pada arduino.
5. Tools. Menu tools di fungsikan untuk memilih arduino yang di gunakan ataupun port
yang terhubung pada komputer.
Pada gambar berikut menampilkan sebuah arduino IDE ARDUINO yang terdiri dari
file, edit, sketch, tools dan help. Pada pojok kanan atas terdapat menu serial monitor
yang berfungsi untuk melihat data-data yang di kirimkan oleh hasil actuator, sebgai
contoh data suhu ataupun yang lainnya. Kemudian di pojok kanan bawah terdapat
tampilan COM yang artinya port berapa yang sedang di gunakan oleh arduino.
1.2 TUGAS MEMBUAT PROGRAM LED BLINK.
Pada Praktikum Mikrokontroler di modul 1 ini adalah membuat lampu LED blink atau
LED hidup dan mati secara berulang (berkedip-kedip). Berikut adalah langkah langkah
dalam praktikum modul 1 ini
A. Mempersiapkan perlengkapan
Langkah pertama, mempersiapkan peralatan untuk praktikum yang terdiri dari :
1) Arduino ATMEGA 2560
2) Protoboard
3) Kabel Jumper (Male to Male)
4) Lampu LED
5) Resistor 220 Ω
6) USB kabel
B. Membuat rangkaian
Langkah selanjutnya adalah membuat rangkaian Mikrokontroler
/*
Program untuk membuat lampu berkedip
*/
int led = 13;
void setup(){
pinMode(led, OUTPUT);}
void loop(){
// Hidupkan LED
digitalWrite(led, HIGH);
delay(200); // Tunggu selama 200 millisecon (0.2 detik)
// Padamkan LED
digitalWrite(led, LOW);
delay(200); // Tunggu selama 200 millisecon (0.2 detik)
}
A. Analog Input
Analog input di gunakan untuk menerima data atau sinyal dari sebuah sensor yang
hanya berupa sinyal analog. Analog input pada arduino UNO mempunyai 6 pin analog
input, yaitu A0 sampai A5. Sinyal analog input bisa di terima dari sensor suhu LM 35,
sensor suara, sensor api ataupun sensor yang lainnya selama sensor tersebut data
keluarannya berupa analog. Sinyal analog input bersifat terus menerus atau kontinyu,
artinya nilai yang masuk di mulai dari 0 hingga 5v yang berbeda dengan sinyal digital.
Pin analog juga bisa menggunakan resistor pul-up yang dapat di sambungkan dengan
sensor suhu DHT 11 misalnya. Sebagai contoh pada perintah pada arduino yaitu pin
Mode (A0, INPUT PULLUP); yang artinya di butuhkan sebuah resistor untuk di
sambungkan dengan sensor.
Analog
Input
B. Digital Input
Semua pin pada Arduino, baik pin digital maupun pin analog, dapat digunakan
sebagai pin digital. digital input merupakan sebuah pin yang yang berfungsi untuk
menerima sebuah parameter dalam bentuk digital, artinya nilai yang di terima adalah 0
dan 1 saja, Konsep kerja input digital sendiri berkebalikan dari output digital. Input
digital digunakan untuk mendeteksi perubahan logika biner pada pin tertentu. Adanya
input digital memungkinkan mikrokontroler untuk dapat menerjemahkan 0V menjadi
logika LOW dan 5V menjadi logika HIGH.
C. Analog Output
Pin analog output pada arduino berfungsi sebagai keluaran yang nilainya adalah 0
sampai 5v, artinya pin tersebut bisa mengeluarkan tegangan yang kontinyu mulai dari
0v, 1v, 2.5v, 3.5, 4.5v sampai 5v
D. Digital Output
Digital output merupakan salah satu pin yang ada pada sebuah arduino. Pin digital
output mengeluarkan sebuah tegangan berupa high dan low atau dalam arti 0 dan 1 saja.
Artinya pin tersebut dapat di fungsikan untuk menghidupkan atau mematikan sebuah
aktuator.
A. Mempersiapkan perlengkapan
Langkah pertama adalah mempersiapkan peralatan praktikum yang terdiri dari :
1) Arduino ATMEGA 2560
2) Protoboard
4) Lampu LED
5) Resistor 220 Ω
6) USB kabel
7) Push Botton
B. Membuat rangkaian
Langkah selanjutnya adalah membuat rangkaian Mikrokontroler
} else {
digitalWrite(pinLed, LOW);
}
}
Resolusi ADC menentukan ketelitian nilai hasil konversi ADC, sebagai contoh :
Nilai resolusi pada arduino yang memiliki output 10 bit data digital ini berarti sinyal
input dapat dinyatakan dalam (2n – 1) = (210-1) = 1023 ini berarti memiliki rentang
antara 0 sampai 1023 nilai diskrit, dan mempunyai tegangan referensi sebesar 5v.
ADC 12 bit memiliki 12 bit output data digital, ini berarti sinyal input dapat dinyatakan
dalam 4096 nilai diskrit.
Dari contoh diatas ADC 12 bit akan memberikan ketelitian nilai hasil konversi yang
jauh lebih baik daripada ADC 10 bit. Prinsip kerja ADC adalah mengkonversi sinyal analog
ke dalam bentuk besaran yang merupakan rasio perbandingan sinyal input dan tegangan
referensi. Sebagai contoh, bila tegangan referensi 5 volt, tegangan input 3 volt, rasio input
terhadap referensi adalah 60%. Jadi, jika menggunakan ADC 8 bit dengan skala maksimum
255, akan didapatkan sinyal digital sebesar 60% x 255 = 153 (bentuk decimal) atau
10011001 (bentuk biner).
Rumus untuk menghitung besarnya nilai ADC adalah seperti berikut : Nilai ADC sama
dengan sinyal masukan/tegangan referensi di kalikan dengan nilai maksimum
Gambar sinyal digital yang berupa diskrit atau putus-putus atau dapat juga di
sebut sebagai nilai high atau low seperti gambar berikut.
Seperti yang terlihata pada gambar di atas adalah bentuk sinyal digital atau bernilai 1 dan 0
saja. Nilai 1 atau bisa di sebut juga high artinya bahwa terdapat suatu sinyal, sedangkan 0
atau low artinya tidak ada sinyal.
Untuk mendeklarasikan mode input pin yang di pilih sebagai pin ADC dapat
menggunakan sintaks berikut.
Sebaliknya jika akan mendeklarasikan pin yang di pilih untuk sebagai output, maka
sintaks yang di gunakan adalah seperti berikut.
Sistem ataupun proses dalam suatu ADC terdiri dari pencuplikan pengkuantisasian, dan
pengkodean. Pencuplikan merupakan proses pengambilan nilai dari data kontinyu dalam
waktu tertentu pada periode yang tetap. Pengkuantisasian merupakan suatu proses
pengelompokan data pertama ke dalam kelompok-kelompok data, sedangkan pengkodean
adalah proses mengkodekan data hasi dari kuantissi ke dalam bentuk digital yaitu 0 dan 1.
Di bawah ini adalah merupakan diagram blok ADC mikrokontroller AVR
Mode-mode operasi yang ada pada ADC ada 3 yaitu mode operasi ADC single
conversion, mode operasi ADC single conversion (auto triggered) dan mode operasi ADC
free running, Mode operasi ADC single conversion, konversi ini di lakukan hanya untuk
sekali pembacaan sampel sinyal masukan
1. Mode operasi ADC single conversion (auto triggered),konversi ini merupakan alternatif
untuk mengaktivasi konversi ADC yang di picu secara otomatis.
2. Mode operasi ADC single conversion (auto triggered),konversi ini merupakan alternatif
untuk mengaktivasi konversi ADC yang di picu secara otomatis.
3. Mode operasi ADC free running, mode ini merupakan sebagai sumber trigger yang
membuat proses konversi akan di mulai setelah proses konversi yang sedag berlangsung
selesai.
A. Mempersiapkan perlengkapan
Langkah pertama adalah mempersiapkan peralatan praktikum yang terdiri dari :
1) Arduino ATMEGA 2560
2) Protoboard
B. Membuat rangkaian
1) Membuat wiring diagram menggunakan aplikasi Fritzing
A. Timer 0, 8 bit yang di pergunakan seperti fungsi delay, millis dan micros.
B. Timer 1, 16 bit yang dapat di pergunakan seperti pengaturan pada motor servo.
3 Timer 2, 8 bit pada pengaturan fungsi tone()
B. COUNTER
Counter atau pencacah atau di sebut juga penghitung yang di gunakan untuk
menghitung jumlah pulsa yang masuk melaui inputnya dan dinyatakan dengan
bilangan biner. Hampir seluruh peralatan elektronik yang mempergunakan sistem
digital di dalam rangkaia nnya berisi suatu alat yang dapat mengontrol urutan
operasi program. Alat tersebut dinamakan dengan pencacah atau counter.
Pada umumnya, counter dibentuk dari beberapa buah rangkaian flip-flop yang
Jumlahnya disesuaikan dengan kebutuhan. Menurut cara kerja masukan pulsa ke
dalam setiap flip-flop, maka counter dapat dibagi menjadi:
A. Asynchronous binary counter
B. Sycnchronous binary counter
Sedangkan menurut urutan hitungan yang terbentuk pada outputnya, maka counter
dapat dibagi menjadi:
A. Up counter
B. Down counter
C. Up-down counter
Up counter di gunakan untuk menghitung dalam hitungan maju, sedangkan
down counter untuk menghitung jumlah turun. Counter modulo N yaitu sebuah
rangkaian counter yang menghitung sampai dengan bilangan tertentu
1. Asynchronous Binary Up Counter
Counter ini dapat menghitung bilangan biner dengan urutan dari bawah ke
atas. Apabila digunakan 4 buah flip-flop, maka dapat melakukan hitungan paling
tinggi adalah 1111. Counter yang dapat menghitung sampai 1111 disebut 4 bit binary
counter. Oleh karena dapat menghitung dengan cara ke atas, maka disebut pula
asynchronous 4 binary up counter
2. Asynchronous Binary Down Counter
Prinsip kerja dari counter ini adalah kebalikan dari up counter, yaitu menghitung
bilangan biner dengan urutan mulai dari atas ke bawah (dari besar ke kecil). Prinsip
kerjanya pun tidak jauh berbeda dari up counter. Bedanya, hanya setiap output flip-
flop diambil dari output Q, sedangkan input clocknya dihubungkan dengan ouput not
Q dari flip-flop sebelumnya.
3. Asynchronous Up Down Counter
Suatu rangkaian elektronik yang mempergunakan sistem digital sering
memerlukan suatu alat pencacah yang dapat menghitung ke atas dan bisa juga
menghitung ke bawah. Alat pencacah yang dapat melakukan penghitungan
seperti ini disebut dengan binary up down counter Alat ini dapat menghitung ke
atas dan ke bawah dengan mengatur suatu alat pengontrol tertentu.
4. Synchronous Binary Up Counter
Jika pada asynchronous counter, pulsa yang akan dihitung datangnya tidak
serentak, maka pada synchronous counter ini pulsa yang ingin hitung ini masuk ke
dalam setiap flip-flop serentak (bersama-sama) sehinga perubahan output setiap flip-
flop akan terjadi secara serentak. Oleh karena itu proses penghitungan pada
synchronous counter ini akan lebih cepat jika dibandingkan dengan asynchronous
counter
5. Syinchronous Binary Down Counter
Sama dengan synchronous binary up counter di atas, hanya saja bedanya
rangkaian ini melakukan penghitungan dari atas ke bawah.
6. Synchronous Binary Up Down Counter
Pada rangkaian ini bisa dilakukan proses penghitungan ke atas atau kebawah
dengan memanfaatkan tombol pengatur proses penghitungan
Penggunaan timer maupun counter mempunyai tujuan untuk meakukan perintah secara
berulang-ulang, seperti dapat mengendalikan kecepatan motor DC atau PWM, dapat
melakukan perhitungan atau counter dan dapat melakukan penundaan waktu atau delay.
Gambar 4.1 Diagram Blok Timer/Counter 0 (8bit)
Perhitungan timer pada gambar 4.1 bisa menggunakan rumus seperti berikut :
Keterbatasan jumlah bit yang di miliki oleh timer 0 yaitu 8 bit =256 sebenarnya tidak
dapat menghasilkan periode selama 1 detik, tetapi dengan menggunakan rumus tersebut
dapat memanipulasinya sehingga dapat menghasilkan periode selama 1 detik. Untuk
menghasilkan waktu 1 detik(0.001 detik x 100 kali = 1 detik) dengan cara membuat timer
selama 0.01 detik kemudian di lakukan pengulangan sebanyak 100 kali.
Tampilan menu untuk komunikasi serial pada arduino terlihat pada gambar berikut :
2) Protoboard
B. Membuat rangkaian
1) Membuat wiring diagram menggunakan aplikasi Fritzing
D. Hasil
Ketika pada serial monitor diketik perintah “a” maka akan terdapat keterangan LED
running, & ketiga LED akan menyala secara bergantian
Hanya lampu kiri menyala
a) Gangguan yang berasal dari beberapa sumber lain yang di akibatkan oleh status
yang salah pada pin digital.
b) Interrupt mempunyai 2 interrupt yaitu interrupt 0 dan interrupt 1
c) Pada arduino mega mempunyai 6 interrupt
d) Untuk menggunakan fungsi kusus yaitu ISR atau interrupt service rutin
Jenis-jenis interrupt terdiri dari 2 interrupt, yaitu interrupt perangkat keras dan
interrupt perangkat lunak.
1. Interrupt perangkat keras yaitu suatu gangguan yang terjadi pada tanggapan
terhadap gangguan dari luar, seperti pin interrupt dari luar akan tinggi atau
rendah.
2. Interrupt perangkat lunak, yaitu gangguan yang terjadi pada tanggapan terhadap
perintah yang di kirim daam perangkat lunak. Contoh untuk menambahkan sintaks
pernyataan interrupt seperti berikut.
attachInterrupt(digitalPinToInterrupt(pin),ISR,mode);
attachInterrupt(pin, ISR, mode) ;
Selain dari jenis interrupt di atas, interrupt juga terdiri dari interrupt internal dan
interrupt eksternal.
Interrupt internal yaitu di timbulkan oleh kejadian tertentu yang terjadi pada waktu
ekskusi program dan di atur oleh HW dan tidal bisa di ubah-ubah, contohnya untuk
counter clock internal.
Interrupt eksternal yaitu interrupt yang di akibatkan oleh Co-prosessor, device
peripheral seperti keyboard atau pinter.
Di samping adanya interrupt internal dan interrupt eksternal, ada juga yang di
sebut interrupt priority. Interrupt priority yaitu interrupt yang di gunakan oleh
mikrokontroller dengan berdasarkan pada prioritas yang di atur pada sebuah
register interrupt priority. Interrupt yang mempunyai prioritas yang rendah dapat di
interrupt oleh interrupt yang lebih tinggi, tetapi interrupt yang mempunyai prioritas
yang tinggi tidak bisa di interrupt oleh yang lainnya.
Register interrupt priority tersebut yaitu :
2) Protoboard
4) LED (2 buah)
B. Membuat rangkaian
MODUL VII
IOT (INTERNET OF THINGS)
Iot sangat bergantung pada sejumlah besar teknologi seperti API, manajemen big data,
anaitik prediktif, AI dan pembelajaran mesin serta RFID. Dunia nyata dan virtual merupakan
platform dan arsitektur dari sebuah Iot. Pengertian IoT menurut Ashton pada 2009,
mengatakan bahwa IoT mempunyai kemampuan untuk merubah dunia seperti yang telah di
lakukan oleh internet. Sedangkan menurut Casagras mengatakan bahwa IoT merupakan
sebuah infrastruktur jaringan global yang menyambungkan benda-benda fisik dan virtual
eksploitasi data capture dan kehandalan komunikasi.
Untuk mengetahui sistem kerja IoT, sebagai contoh apabila kita lupa mematikan
peralatan elektronik di rumah seperti TV, air conditioning atau AC, ataupun peralatan yang
lainnya, maka dengan adanya internet kita dapat mengendalikan peralatan tersebut, melalui
smartphone. Prinsip kerja IoT yaitu dengan cara nenerjemahkan bahasa yang sudah kita
masukkan ke dalam sebuah mikrokontroller seperti raspberry, arduino atau mikrokontroler
yang lainnya.
Salah satu contoh hardware IoT yaitu ESP 8266, modul ESP 8266 merupakan salah satu
modul wifi yang mempunyai fungsi sebagai tambahan perangkat mikrokontroller seperti
arduino UNO. Modul ESP 8266 yang dapat tersambung dengan wifi dengan cara membuat
koneksi TCP/IP. Gambar modul ESP 8266 seperti terlihat seperti berikut.
Modul ESP 8266 membutuhkan daya 3,3v yang mempunyai tiga mode wifi,
yaitu mode station, mode access point dan mode both atau keduanya. Modul ESP
8266 mempunyai 8 pin yaitu TX, RX, GPIO 0, GPIO 2, RST, GND, CH-PD dan
VCC. Pada firmware default modul ESP 8266 menggunakan AT Command yang
berbasis open sourch yaitu NodeMCU, MicroPyton dan AT Command.