PRAKTIKUM MIKROKONTROLER
Nama Dosen :
Gaguk Firasanto S.T,
M.T
Dibuat Oleh :
Nama : Febiyana Ramdhani
Nim : 211010100117
Kelas : 05 Telm 001
Program Studi : Teknik Elektro
FAKULTAS TEKNIK
PROGRAM STUDI TEKNIK ELEKTRO
UNIVERSITAS PAMULANG
2023
KATA PENGANTAR
Puji dan syukur kita panjatkan kehadirat Allah SWT atas segala rahmat dan
karunia-Nya, sehingga penyusun bisa menyelesaikan Laporan Praktikum
Mikrokontroler ini dengan tepat waktu. Selain itu juga, saya ucapkan terima kasih
kepada bapak Gaguk Firasanto S.T, M.T. yang sudah memberikan arahan dan
bimbingan dalam mempelajari pelajaran praktikum Dasar Sistem Kontrol ini
dengan baik dan jelas.
Laporan Praktikum ini sudah selesai saya susun dengan bantuan dari
berbagai pihak sehingga bisa memperlancar pembuatan Laporan Praktikum ini.
Adapun tujuan disusunnya laporan ini adalah sebagai syarat untuk memenuhi
tugas mata kuliah Praktikum Mikrokontroler.
Saya menyadari seutuhnya bahwa Laporan yang saya buat masih jauh dari
kata sempurna baik dari segi susunan kata, kalimat maupun tata bahasanya. Oleh
karena itu, saya terbuka untuk menerima segala masukan dan kritik yang bersifat
membangun sehingga saya bisa melakukan perbaikan agar bisa menjadi lebih baik
dan benar.
Diakhir kata, saya harapkan semoga laporan ini bisa memperoleh nilai yang
baik dan bermanfaat bagi penulis dan pembaca, terima kasih.
FEBIYANA RAMDHANI
211010100117
ii
DAFTAR ISI
KATA PENGANTAR.............................................................................................ii
DAFTAR ISI...........................................................................................................iii
PERTEMUAN 1 PEMROGRAMAN......................................................................1
1.1 Tujuan Pembelajaran.................................................................................1
1.2 Alat dan Bahan..........................................................................................1
1.3 Tugas.........................................................................................................1
1.4 Lembar Jawaban........................................................................................1
1.5 Kesimpulan................................................................................................3
PERTEMUAN 2 INPUT DAN OUTPUT...............................................................4
2.1 Tujuan Pembelajaran.................................................................................4
2.2 Alat dan bahan...........................................................................................4
2.3 Tugas.........................................................................................................4
2.4 Lembar Jawaban........................................................................................4
2.5 Kesimpulan................................................................................................6
PERTEMUAN 3 ANALOG DIGITAL CONVERTER..........................................7
3.1 Tujuan Praktikum......................................................................................7
3.2 Alat dan Bahan..........................................................................................7
3.3 Tugas.........................................................................................................7
3.4 Lembar Jawaban........................................................................................7
3.5 Kesimpulan................................................................................................9
PERTEMUAN 4 TIMER AND COUNTER.........................................................10
4.1 TUJUAN PEMBELAJARAN.................................................................10
4.2 Alat dan bahan.........................................................................................10
4.3 Tugas.......................................................................................................10
4.4 Lembar Jawaban......................................................................................10
4.5 Kesimpulan..............................................................................................13
PERTEMUAN 5 KOMUNIKASI SERIAL..........................................................14
5.1 Tujuan Pembelajaran...............................................................................14
5.2 Alat Dan Bahan.......................................................................................14
5.3 Tugas.......................................................................................................14
5.4 Lembar Jawaban......................................................................................14
iii
5.5 Kesimpulan..............................................................................................19
PERTEMUAN 6 INTERUPT................................................................................20
6.1 Tujuan Pembelajaran...............................................................................20
6.2 Alat dan Bahan........................................................................................20
6.3 Tugas.......................................................................................................20
6.4 Lembar Jawaban......................................................................................20
6.5 Kesimpulan..............................................................................................22
PERTEMUAN 7 INTERNET OF THINK............................................................24
7.1 Tujuan Pembelajaran...............................................................................24
7.2 Alat dan Bahan........................................................................................24
7.3 Tugas.......................................................................................................24
7.4 Lembar Jawaban......................................................................................24
7.5 Kesimpulan..............................................................................................28
iv
PERTEMUAN 1
PEMROGRAMAN
void setup() {
pinMode(LED_BUILTIN, OUTPUT);
}
void loop() {
digitalWrite(LED_BUILTIN, HIGH);
delay(1000);
digitalWrite(LED_BUILTIN, LOW);
delay(1000);
}
Deskripsi program :
Pada bagian Void setup() arduino di setting untuk menggunakan LED_BUILTIN (LED
bawaan arduino) sebagai outputnya. Pada bagian void loop arduino diperintahkan untuk
mengulang terus menerus kondisi dimana LED akan menyala selama 1 detik dan mati
selama 1 detik.
1
Gambar 1. 1 Arduino UNO LED ON akan berkedip
2
1.5 Kesimpulan
Pada pertemuan praktikum 1 ini, sebelum kita melakukan / memprogram sebuah
mikrokontroler kita perlu tahu perangkat yang di gunakan, pin yang tersedia di perangkat,
dan bahasa apa yang digunakan agar kita dapat mengetahui apa saja sintax yang
digunakan. Karena tanpa mengetahui dan mengerti fungsi dari bahasa apa yang di gunakan
pada suatu perangkat, program tidak akan bisa diproses oleh perangkat tersebut.
3
PERTEMUAN 2
INPUT DAN OUTPUT
2.3 Tugas
1. Buatlah atau rangkailah sebuah rangkaian sederhana untuk menyalakan atau
mematikan LED dengan konfigurasi berikut berikut :
a. Hubungkan pin anoda LED ke pin 13 arduino melalui resitor
b. Hubungkan pin katoda LED ke ground arduino
c. Hubungkan pin input pushbutton ke pin 2 arduino dan pin lainnya ke pin
5v arduino
2. Buatlah sebuah program sederhana pada arduino untuk menghidupkan dan
mematikan sebuah LED dengan memanfaatkan digital output dan dengan saklar
pushbutton
4
2. Berikut program sederhana pada arduino untuk menghidupkan dan mematikan
sebuah LED dengan memanfaatkan digital output dan dengan saklar pushbutton :
void setup() {
pinMode(pinButton, INPUT);
pinMode(pinLed, OUTPUT);
}
void loop() {
nilaiButton = digitalRead(pinButton);
if (nilaiButton == HIGH) {
digitalWrite(pinLed, HIGH);
}
else{
digitalWrite(pinLed, LOW);
}
}
Deskripsi program :
Pada bagian pinbutton dan pinled sebelumnya mendeklarasikan pin 2 sebagai pinButton,
pin 3 sebagai pinLed dan nilaiButton dimulai dari 0. Lalu pada bagian Void setup() arduino
di setting untuk menginisisasi pinbutton sebagai input dan pinLED sebagai output. Pada
bagian void loop arduino diperintahkan untuk mengulang terus menerus kondisi dimana
arduino harus membaca kondisi pada pinButton melalui nilaiButton. ketika nilaiButton
bernilai High, arduino diperintahkan untuk pinLed bernilai High. Jika nilaiButton bernilai
low, arduino diperintahkan untuk pinLed diberi nilai low juga (tidak diproses).
5
Gambar 2. 3 Gambar perangkat setelah upload program dan button tidak di tekan
2.5 Kesimpulan
Input / output adalah salah satu bagian dari komponen Arduino yang berperan
penting dalam merangkai kode program ataupun komponen nya. Tanpa kita mengetahui
input (masukan) apa yang digunakan, kode program tidak akan pernah bisa berjalan sesuai
dengan yang diharapkan.
6
PERTEMUAN 3
ANALOG DIGITAL
CONVERTER
3.3 Tugas
1. Buatlah sebuah rangkaian sederhana untuk membaca nilai sebuah ADC pada
arduino UNO dengan menggunakan potensiometer dengan konfigurasi berikut
:
a. Hubungkan pin 5v arduino ke pin pinggir kiri potensiometer
b. Hubungkan pin ground arduino ke pin pinggir kanan potensiometer
c. Hubungkan pin A5 arduino ke pin tengah potensiometer
2. Buatlah sebuah program untuk dapat di gunakan untuk membaca nilai analog
dari potensiometer
7
2. Berikut program pada arduino untuk membaca nilai analog dari potensiometer :
void setup(){
Serial.begin(9600);
}
void loop() {
val = analogRead(pinPot);
Serial.println(val);
delay(100);
}
Deskripsi Program :
Pada A5 dideklarasikan sebagai pinPot, lalu beri val nilai awal yaitu 0. Pada bagian Void
setup disetting untuk mengirim data ke Serial Monitor. Pada bagian void loop, val
diperintahkan untuk membaca nilai pinPot dan kemudian data pada val akan dikirim ke
Serial Monitor setiap 0,1 detik.
8
Gambar 3. 3 Gambar Alat dan Hasil dari Conversi Analog to Digital melalui Serial
Monitor dan serial ploter
3.5 Kesimpulan
Komponen Arduino memiliki fitur conversi signal, dimana salah satunya adalah
conversi signal analog ke digital (ADC). Fungsi dari ADC ini ialah mengubah masukan
(input) analog menjadi sebuah data digital yang dapat diolah oleh mikroprosesornya
arduino.
9
PERTEMUAN 4
TIMER AND
COUNTER
4.3 Tugas
1. Buatlah atau rangkailah rangkaian timer sebagai pewaktu
2. Kemudian buatlah sebuah program timer yang berfungsi sebagai pewaktu,
3. Rangkailah atau konfigurasikan fungsi timer sebagai penghitung
4. Kemudian buatlah sebuah program timer yang berfungsi sebagai penghitung
1
2. Kode program timer yang berfunggsi sebagai pewaktu
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
int runTimer = 1;
int runFor = 15; // timer
int buzzerPin = 13;
int relayPin=4;
int data = 0;
void setup() {
pinMode(buzzerPin, OUTPUT);
pinMode(relayPin,OUTPUT);
lcd.begin(16, 2);
lcd.backlight();
}
void loop() {
if(runTimer == 1){
digitalWrite(relayPin,LOW); // relay
OFF lcd.clear();
lcd.print("TIMER=");//Start timer
timer();
}
else {
digitalWrite(relayPin,HIGH); // relay ON
}
runTimer = 0;
lcd.noDisplay();
delay(250);
void timer() {
for(int timer = runFor;timer > 0; --timer){
if(timer >= 10) {
lcd.setCursor(6,0);
}
else {
1
lcd.setCursor(6,0);
lcd.print("0");
lcd.setCursor(7,0);
}
lcd.print(timer);
lcd.print(" SECOND!");
delay(1000);
}
lcd.setCursor(0,0);
lcd.clear();
lcd.print(" TIMER ALERT!");
}
Deskripsi Program :
Program di atas akan menghitung mundur saat dijalankan berdasarkan waktu yang di
tentukan. Kemudian ketika waktu mencapai angka 0 LCD displayy akan menampilkan
“timer allert” , buzzer pun berbunyi dan relay pun akan aktif.
1
Gambar 4. 3 Running Program saat counting
4.5 Kesimpulan
Fungsi Timer sebagai pewaktu merupakan fungsi dimana arduino akan menghitung
mundur dari batas yang di tentukan ke 0. Dalam pengaplikasiannya fungsi timer bisa
digunakan sebagai alarm seperti praktikum kali ini.
1
PERTEMUAN 5
KOMUNIKASI SERIAL
a. Arduino UNO
b. LED 4 buah
c. Resistor 220 ohm 4 buah
d. Breadboard
e. Kabel jumper
f. Komputer/laptop
5.3 Tugas
1. Konfigurasikan rangkaian di bawah ini :
a. Hubungkan ke tiga katoda LED ke pin ground arduino UNO
b. Hubungkan tiap kaki/pin anoda LED ke masing-masing resistor bernilai 220
ohm,kemudian pin keluaran resistor tersebut hubungkan ke masing-masing pin
13, 12, 11 pin arduino.
2. Buatlah program sederhana dengan mengikuti skema di atas
1
2. Berikut Kode program yang terdapat pada modul dan berdasarkan rangkaian di atas:
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();
1
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:
{
digitalWrite(led1,LOW);
digitalWrite(led2,LOW);
digitalWrite(led3,LOW);
Serial.println("LED mati");
loop();
goto stop;
}
}
}
Deskripsi Program :
Program ini memiliki tiga buah LED yang akan dihidupkan. Ketika program
berjalan Lampu tidak akan langsung aktif, melainkan kita perlu untuk memberi perintah
atau mengetikan pada kolom command serial monitor sesuai dengan apa yang ada pada
program inputnya, perintah yang bisa kita berikan dalam program ini ialah “a” untuk
menjalankan perintah LED berjalan (Running LED), “b” untuk menjalankan perintah
Ketiga LED berkedip (LED Flip Flop), dan “c” untuk mematikan semua lampu.
1
Berikut dokumentasi dari project praktikum pertemuan 5 yang telah di di praktikan :
1
Gambar 5. 4 Memanggil fungsi command LED FLIP FLOP
1
Gambar 5. 5 Memanggil fungsi command LED mati
5.5 Kesimpulan
Komunikasi serial adalah dimana user itu dapat berkomunikasi / berinteraksi
dengan arduino. Komunikasi serial bisa dilakukan jika terdapat input kode program yang
diberikan memiliki bahasa / perintah yang jika diketikan / diinputkan pada kolom
command saat program berjalan, pemroses dapat dimengerti, lalu diolah.
1
PERTEMUAN 6
INTERUPT
6.1 Tujuan
Pembelajaran
Setelah menyelesaikan praktikum pertemuan ini mahasiswa mampu mengetahui
dan memahami tentang pengertian interrupt, jenis-jenis interrupt, dapat membuat atau
mempraktekkan fungsi interrupt serta dapat membuat pemrogramannya.
6.3 Tugas
1. Tentukan pin-pin pada arduino UNO yang di gunakan untuk membuat sebuah counter
interrupt, kemudian rangkailah rangkainnya.
2. Buatah program atau sketch pada arduino UNO yang sesuai dengan rangkaian yang telah
di buat pada tugas 1
Gambar 6. 1 Rangkaian Koneksi pin pada arduino untuk membuta counter interrupt
2
2. Kode program arduino UNO yang di gunakan untuk membuat sebuah counter interrupt
dan tersedia di modul, sebagai berikut :
#include<LiquidCrystal.h>
LiquidCrystal lcd (7,8,9,10,11,12);
void setup(){
lcd.begin(16,2);
lcd.setCursor(0,0);
lcd.print("LAB MIKRO");
lcd.setCursor(0,1);
lcd.print("ArduinoInterrupt");
delay(3000);
lcd.clear();
pinMode(13,OUTPUT);
attachInterrupt(digitalPinToInterrupt(2),buttonPressed1,RISING);
attachInterrupt(digitalPinToInterrupt(3),buttonPressed2,RISING);
}
void loop(){
lcd.clear();
lcd.print("COUNTER:")
; lcd.print(i);
++i;
delay(1000);
digitalWrite(13,output);
}
void buttonPressed1(){
output = LOW;
lcd.setCursor(0,1);
lcd.print("Interrupt 1");
}
void buttonPressed2(){
output = HIGH;
lcd.setCursor(0,1);
lcd.print("Interrupt2");
}
Deskripsi Program :
Program diatas hampir sama dengan timer sebelumnya, tapi program ini
menghitung dari 0 sampai tak terhingga yang di tampilkan di LCD, setelah itu program
akan coba di ganggu dengan menekan tombol 1 / 2 yang akan mengirim perintah untuk
menampilkan “Interupsi 1” / “Interupsi 2” dibawah . Ketika program menghitung nya tidak
terganggu / terus berjalan berjalan maka program tersebut berjalan dengan baik.
2
Berikut dokumentasi dari project praktikum pertemuan 6 yang telah di di praktikan :
2
Gambar 6. 4 Tombol 2 (Sebelah kanan) ditekan
6.5 Kesimpulan
Interupsi merupakan salah satu fungsi dimana kita dapat memicu program lain baik
eksternal / internal tanpa mengganggu jalannya program utama
2
PERTEMUAN 7
INTERNET OF THINK
7.3 Tugas
1. Isilah pin-pin yang kosong pada modul ESP 8266 berikut, sehingga dapat mengetahui
fungsi masing-masing pin
2. Buatlah sebuah program atau sketch internet of thing (IOT) untuk membuat monitoring
suhu dengan menggunakan sensor LM 35 dengan aplikasi web thingspeak
7.4 Lembar Jawaban
1. Tabel pada masing masing pin ESP8266 (ESP-01)
2
2. Kode program internet of thing (IOT) untuk membuat monitoring suhu dengan
menggunakan sensor LM 35 dengan aplikasi web thingspeak.
#include <ESP8266WiFi.h>
void setup()
{
Serial.begin(115200);
WiFi.disconnect();
delay(10);
WiFi.begin(ssid, password);
//Actual connection to WiFi is initialized by calling below
instructions.
Serial.println();
Serial.println();
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED)
{
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.print("ESP8266 connected to wifi...");
Serial.println(ssid);
Serial.println();
}
void loop()
{
float temp = ((analogRead(A0) * resolution) * 100);
if (client.connect(server,80))
{
String tsData = apiWritekey;
tsData +="&field1=";
tsData += String(temp);
tsData += "\r\n\r\n";
2
client.print("POST /update HTTP/1.1\n");
client.print("Host: api.thingspeak.com\n");
client.print("Connection: close\n");
client.print("X-THINGSPEAKAPIKEY: "+apiWritekey+"\
n"); client.print("Content-Type: application/x-www-
form-
urlencoded\n");
client.print("Content-Length:
");
client.print(tsData.length());
client.print("\n\n");
client.print(tsData);
Serial.print("Temperature: ");
Serial.print(temp);
Serial.println(" -->Uploaded to Thingspeak server...");
}
client.stop();
Serial.println();
Serial.println("Waiting to upload next reading...");
Serial.println();
delay(15000);
}
Deskripsi Program :
Program ini berjalan untuk membaca temperatur atau suhu pada LM35, ketika
pembacaan suhu di peroleh, hasil akan dikirimkan ke website Thingspeak dan akan tampil
dalam berbagai bentuk yang sesuai dengan apa yang di setting di thingspeaknya. Proses
pengiriman data tersebut melalui jaringan internet yang terkoneksi dengan perangkat IOT
yang digunakan. Perangkat IOT itu ialah modul ESP-8266 (NodeMCU 1.0(ESP-12E
Module)).
2
Berikut dokumentasi dari project praktikum pertemuan 6 yang telah di di praktikan :
2
Gambar 7. 3 Perangkat yang di gunakan dan konfigurasi pin yang di gunakan
7.5 Kesimpulan
Internet Of Things merupakan salah satu fitur yang tersedia pada perangkat
arduino, namun perangkat tersebut terbuat secar terpisah (Perangkat External). Dimana
perngkat ini bisa mengkoneksikan internet kedalam perangkat arduino. Dengan adanya
fitur IOT ini, user dapat mengkontrol suatu perangkat melalui jaringan internet, seperti
mematikan / menyalakan lampu rumah, AC, TV, dll