0% menganggap dokumen ini bermanfaat (0 suara)
25 tayangan41 halaman

Modul Mikrokontroller 2023

Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
25 tayangan41 halaman

Modul Mikrokontroller 2023

Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 41

MODUL

MIKROKONTROLLER
ARDUINO

Oleh:
TIM Laboratorium Mikrokontroller

LABORATORIUM MIKROKONTROLLER
JURUSAN TEKNOLOGI ELEKTRO-MEDIS
POLTEKKES KEMENKES SURABAYA
2023
PENGANTAR

Gambar P1. Konfigurasi pin ATMEGA328

Gambar P2. Konfigurasi pin modul Arduino UNO

Laboratorium Mikrokontroler
Gambar P3. Modul Multifunction Shield

Gambar P4. Layout Schematic Modul Multifunction Shield

Laboratorium Mikrokontroler
MATERI PRAKTIKUM

Minggu ke- Materi per Minggu

1 Kontrak Perkuliahan
2 LED&Switch
3 7 Segment
4 LCD Karakter 16x2
5 ADC
6 Servo
7 DHT11
8 Ujian Tengah Semester
9 PWM
10 Komunikasi Serial
11 Timer Interrupt (Counter)
12 Timer Interrupt (Timer)
13 Progres Projek
14 Progres Projek
15 Penilaian Projek
16 Ujian Akhir Semenster

Laboratorium Mikrokontroler
BAB 1
LED DAN SW

1.1. Tujuan
Mahasiswa mampu menggunakan Arduino untuk mengendalikan LED melalui
saklar push button.

1.2. Skematik

(a) (b)
Gambar 1.1. (a) Rangkaian koneksi LED dan (b) Rangkaian koneksi
Saklar SW

1.3. Contoh Listing Program


Listing program 1: Mengedipkan sebuah LED pada D1
// LED initialization
#define LED1 13

void setup(){
Serial.begin(9600);
// LED Setup
pinMode(LED1, OUTPUT);
}

void loop(){
// LED OFF
digitalWrite(LED1, HIGH);
delay(1000);
// LED ON
digitalWrite(LED1, LOW);
delay(1000);
}

Listing program 2: Mengedipkan dua buah led atau lebih


// LED initialization
#define LED1 13
#define LED2 12
Laboratorium Mikrokontroler
void setup(){
Serial.begin(9600);
// LED Setup
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
}

void loop(){
// LED OFF
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
delay(1000);
// LED ON
digitalWrite(LED1, LOW);
digitalWrite(LED2, LOW);
delay(1000);
}

Listing program 3: Mengendalikan LED pada D1 melalui SW pada A1


int databaca;
void setup() {
pinMode(13, OUTPUT);
pinMode(A1, INPUT);
}

void loop(){
if(digitalRead(A1) == LOW){
// turn LED on:
digitalWrite(13, LOW);
}
else if(digitalRead(A1) == HIGH){
// turn LED off:
digitalWrite(13, HIGH);
}
}

1.4. Lembar Kerja Praktikum


Lakukan kegiatan praktikum sesuai dengan lembar kerja berikut, salin LISTING
PROGRAM hasil percobaan tersebut dengan tulisan tangan (masing-masing
dikerjakan perorangan) lembar kertas F4. Beri nama, NIM, kelompok praktek.
Lembar kerja no.1: Rencanakan program untuk mengedipkan 4 buah LED secara terus
menerus pada D1, D2, D3, D4
Gambar rangkaian : (contoh)

Laboratorium Mikrokontroler
Listing Program:

Lembar kerja no.2: Rencanakan program untuk mengendalikan LED. Apabila SW 1


ditekan maka D1 dan D2 berkedip secara bergantian
Gambar rangkaian:

Listing Program:

Lembar kerja no.3: Rencanakan program untuk mengendalikan LED menyala


bergantian dari D1 hingga D4.
Gambar rangkaian:

Listing Program:

Laboratorium Mikrokontroler
Lembar kerja no.4: Rencanakan program apabila SW 1 ditekan maka LED D1 dan D2
akan menyala sedangkan D3 dan D4 mati. apabila saat SW 2 ditekan maka D1 dan D2
mati sedangkan D3 dan D4 menyala
Gambar rangkaian:

Listing Program:

Laboratorium Mikrokontroler
BAB 2
7 SEGMENT

2.1. Tujuan
Mahasiswa mampu menggunakan mikrokontroller Arduino untuk
mengendalikan display 7 segmen common anoda.
Digit 1 Digit 2 Digit 3 Digit4
2.2. Skematik

Gambar 3.1. Rangkaian skematik 7 segmen

(a) (b)
Gambar 3.2. (a) Rangkaian common katoda dan (b)
Rangkaian common anoda

NB : - Mempelajari konversi hexadecimal ke biner


2.2. Listing Program
Listing program 1: Mencetak tulisan angka “1” pada 7 segmen digit ke “1”

/* Define shift register pins used for seven segment display */


#define LATCH_DIO 4
#define CLK_DIO 7
#define DATA_DIO 8

Laboratorium Mikrokontroler
/* Segment byte maps for numbers 0 to 9 */
const byte SEGMENT_MAP[] = {0xF9};
/* Byte maps to select digit 1 to 4 */
const byte SEGMENT_SELECT[] = {0xF1};

void setup(){
/* Set DIO pins to outputs */
pinMode(LATCH_DIO,OUTPUT);
pinMode(CLK_DIO,OUTPUT);
pinMode(DATA_DIO,OUTPUT);
}

/* Main program */
void loop(){
/* Update the display with the current counter value */
WriteNumberToSegment(0 , 0);
}

/* Write a decimal number between 0 and 9 to one of the 4 digits of the display */
void WriteNumberToSegment(byte Segment, byte Value){
digitalWrite(LATCH_DIO,LOW);
shiftOut(DATA_DIO, CLK_DIO, MSBFIRST, SEGMENT_MAP[Value]);
shiftOut(DATA_DIO, CLK_DIO, MSBFIRST, SEGMENT_SELECT[Segment] );
digitalWrite(LATCH_DIO,HIGH);
}

Listing program 2: Mencetak tulisan angka “1” dan “2” pada 7 segmen digit ke “1” dan
“2”

/* Define shift register pins used for seven segment display */


#define LATCH_DIO 4
#define CLK_DIO 7
#define DATA_DIO 8

/* Segment byte maps for numbers 0 to 9 */


const byte SEGMENT_MAP[] = {0xF9,0xA4};
/* Byte maps to select digit 1 to 4 */
const byte SEGMENT_SELECT[] = {0xF1,0xF2};

void setup(){
/* Set DIO pins to outputs */
pinMode(LATCH_DIO,OUTPUT);
pinMode(CLK_DIO,OUTPUT);
pinMode(DATA_DIO,OUTPUT);
}

/* Main program */
void loop(){
/* Update the display with the current counter value */
WriteNumberToSegment(0 , 0);
WriteNumberToSegment(1 , 1);

Laboratorium Mikrokontroler
}

/* Write a decimal number between 0 and 9 to one of the 4 digits of the display */
void WriteNumberToSegment(byte Segment, byte Value){
digitalWrite(LATCH_DIO,LOW);
shiftOut(DATA_DIO, CLK_DIO, MSBFIRST, SEGMENT_MAP[Value]);
shiftOut(DATA_DIO, CLK_DIO, MSBFIRST, SEGMENT_SELECT[Segment] );
digitalWrite(LATCH_DIO,HIGH);
}

2.3. Lembar Kerja Praktikum


Lakukan kegiatan praktikum sesuai dengan lembar kerja berikut, salin LISTING
PROGRAM hasil percobaan tersebut dengan tulisan tangan (masing-masing
dikerjakan perorangan) lembar kertas F4. Beri nama, NIM, kelompok praktek.
Lembar kerja no.1: Rencanakan program untuk cetak angka 1, 2, 3 dan 4 pada 7
segmen
Gambar rangkaian:

Listing Program:

Lembar kerja no.2: Rencanakan program untuk cetak huruf A, b, C, d pada 7 segmen
Gambar rangkaian:

Listing Program:

Lembar kerja no.3: Rencanakan program untuk cetak huruf pada 7 segmen , cetak
huruf A,B,C,D bila SW1 ditekan, cetak angka 0,1,2,3 bila SW2 ditekan.
Gambar rangkaian:

Laboratorium Mikrokontroler
Listing Program:

Lembar kerja no.4: Rencanakan program untuk cetak huruf pada 7 segmen, cetak
singkatan nama kalian bila SW1 ditekan, cetak 4 angka terakhir NIM kalian bila SW2
ditekan, cetak huruf b,I,L,a bila SW3 ditekan dan cetak angka 2,0,2,3 bila SW4 ditekan
Gambar rangkaian:

Listing Program:

Laboratorium Mikrokontroler
BAB 3
LCD KARAKTER 2 X 16

3.1. Tujuan
Mahasiswa mampu menggunakan mikrokontroller Arduino untuk
mengoperasikan LCD karakter 2x16
3.2. Skematik

Gambar 3.1. Rangkaian skematik LCD Karakter

Gambar 3.2. LCD Karakter 16x2 I2C

3.3. Listing Program


Listing Program 1: percobaan mencetak karakter “ MIKROKONTROLLER” pada baris
BAWAH (1)
#include <Wire.h>
#include <LiquidCrystal_I2C.h>

Laboratorium Mikrokontroler
// Set the LCD address to 0x27 for a 16 chars and 2 line display
LiquidCrystal_I2C lcd(0x27, 16, 2);

void setup(){
// initialize the LCD
lcd.begin();
// Turn on the blacklight and print a message.
lcd.backlight();
}

void loop(){
lcd.setCursor(0, 1);
lcd.print("MIKROKONTROLLER");
}

3.4. Lembar Kerja Praktikum


Lakukan kegiatan praktikum sesuai dengan lembar kerja berikut, salin LISTING
PROGRAM hasil percobaan tersebut dengan tulisan tangan (masing-masing
dikerjakan perorangan) lembar kertas F4. Beri nama, NIM, kelompok praktek.
Lembar kerja no.1: Rencanakan program untuk cetak angka 1, 2, 3 dan 4 pada lcd
karakter yang masing-masing pada lokasi (0,0); (16,0); (0,1); dan (16,1).
Gambar rangkaian:

Listing Program:

Lembar kerja no.2: Rencanakan program untuk cetak huruf “A”, bila SW1 ditekan,
cetak huruf “B” bila SW2 ditekan.
Gambar rangkaian:

Listing Program:

Laboratorium Mikrokontroler
Lembar kerja no.3: Rencanakan program untuk cetak huruf P, Q, R secara berurutan
pada LCD Karakter masing-masing dengan menggunakan tombol SW1 saja.
Gambar rangkaian:

Listing Program:

Laboratorium Mikrokontroler
BAB 4
ADC

4.1. Tujuan
Mahasiswa mampu menggunakan ADC pada mikrokontroller Arduino
menggunakan potensiometer pada shiled modul dengan tampilan ke 7
Segment.
4.2. Skematik

Gambar 4.1. Konektor yang menghubungkan ke ADC Arduino pin A0


(yang terhubung dengan shield. Nilai Potensiometer yang ada pada shield
sebesar 10K, dengan batas maksimal nilai ADC adalah 1024.

4.3. Listing Program


Listing program: Rencanakan program untuk mengambil tegangan analog A0 dan
ditampilkan pada 7 Segment
#define LATCH_DIO 4
#define CLK_DIO 7
#define DATA_DIO 8

#define Pot1 0
int angka =0;
int PotValue;

const byte SEGMENT_MAP[] =


{0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0X80,0X90, 0xFF};
const byte SEGMENT_SELECT[] = {0xF1,0xF2,0xF4,0xF8};

void setup (){


Serial.begin(9600);
pinMode(LATCH_DIO,OUTPUT);
pinMode(CLK_DIO,OUTPUT);
pinMode(DATA_DIO,OUTPUT);
}

void loop(){
PotValue = analogRead(Pot1);
WriteNumberToSegment(0 , PotValue / 1000);
WriteNumberToSegment(1 , (PotValue / 100) % 10);
Laboratorium Mikrokontroler
Listing program: Rencanakan program untuk mengambil tegangan analog A0 dan
ditampilkan pada 7 Segment
WriteNumberToSegment(2 , (PotValue / 10) % 10);
WriteNumberToSegment(3 , PotValue % 10);
}
void WriteNumberToSegment(byte Segment, byte Value){
digitalWrite(LATCH_DIO,LOW);
shiftOut(DATA_DIO, CLK_DIO, MSBFIRST, SEGMENT_MAP[Value]);
shiftOut(DATA_DIO, CLK_DIO, MSBFIRST, SEGMENT_SELECT[Segment] );
digitalWrite(LATCH_DIO,HIGH);
}

4.4. Lembar Kerja Praktikum


Lakukan kegiatan praktikum sesuai dengan lembar kerja berikut, salin LISTING
PROGRAM hasil percobaan tersebut dengan tulisan tangan (masing-masing
dikerjakan perorangan) lembar kertas F4. Beri nama, NIM, kelompok praktek.
Lembar kerja no.1: Rencanakan program untuk mengambil tegangan analog A0 dan
ditampilkan pada 7 Segment dan serial monitor pada Arduino Ide.
Gambar rangkaian:

Listing Program:

Lembar kerja no.2: Rencanakan program untuk mengambil tegangan analog A0 dan
ditampilkan pada 7 Segment dan serial monitor, dengan keadaan awal 7 Segment
kosong (blank), ketika switch 1 (pin A1) dapat menampilkan nilai ADC.
Gambar rangkaian:

Listing Program:

Laboratorium Mikrokontroler
Lembar kerja no.3: Rencanakan program untuk mengambil tegangan analog A0 dan
ditampilkan pada 7 Segment dan serial monitor, dengan keadaan awal 7 Segment
menampilkan nilai ADC, ketika nilai ADC <500 buzzer berbunyi
Gambar rangkaian:

Listing Program:

Lembar kerja no.4: Rencanakan program untuk mengambil tegangan analog A0 dan
ditampilkan pada 7 Segment, dengan keadaan awal 7 Segment menampilkan nilai
ADC, ketika nilai ADC >650 buzzer berbunyi. Ketika switch 3 (pin A3) ditekan, buzzer
berhenti berbunyi (walaupun nilai ADC >650).
Gambar rangkaian:

Listing Program:

Laboratorium Mikrokontroler
BAB 5
SERVO

5.1. Tujuan
Mahasiswa mampu mengoperasikan motor servo dengan menggunakan
mikrokontroller Arduino
5.2. Skematik

(a) (b)

(c)
Gambar 5.1. (a) pin pada PCB, (b) modul fisik, dan (c) konfigurasi pin

5.3. Listing Program


Listing program: Rencanakan program untuk menggerakkan servo
#include<Servo.h>
int servoPin=3;
int adc;
int adcmap;
Servo Servo1;

void setup() {
Servo1.attach(servoPin);
}

void loop() {
Servo1.write(0);
delay(1500);
Servo1.write(180);
delay(1500);
Laboratorium Mikrokontroler
}

Listing program: Rencanakan program untuk menggerakkan servo dengan


menggunakan input ADC
#include<Servo.h>
int servoPin=3;
int adc;
int adcmap;
Servo Servo1;

void setup() {
Servo1.attach(servoPin);
}

void loop() {
adc=analogRead(0);
adcmap=map(adc, 0, 1023, 0, 180);
Servo1.write(adcmap);
}

5.4. Lembar Kerja Praktikum


Lakukan kegiatan praktikum sesuai dengan lembar kerja berikut, salin LISTING
PROGRAM hasil percobaan tersebut dengan tulisan tangan (masing-masing
dikerjakan perorangan) lembar kertas F4. Beri nama, NIM, kelompok praktek.
Lembar kerja no.1: Rencanakan program untuk menggerakkan motor servo untuk
putar kanan dan kiri berdasarkan SW1 dan SW2.
Gambar rangkaian:

Listing Program:

Lembar kerja no.2: Rencanakan program untuk mengambil tegangan analog A0,
gunakan tegangan analog ini untuk mengatur posisi servo putar kanan atau kiri.
Jika dataADC>500 maka servo putar kanan, dan jika dataADC<500 maka servo
akan putar kiri.
Gambar rangkaian:

Listing Program:

Laboratorium Mikrokontroler
BAB 6
DHT 11

6.1 Tujuan
Mahasiswa mampu menggunakan mikrokontroller Arduino untuk melakukan
pengukuran kelembaban dan suhu dengan sensor DHT11.
6.2. Skematik

(a) (b)

Gambar 6.1. (a) koneksi ke board dan (b) koneksi ke pin

6.3. Listing Program


Listing program: program pembacaan sensor DHT11 (suhu dan kelembaban) dan
ditampilkan ke Serial Monitor
#include <DHT.h> //Memasukan Library DHT ke Program
#define DHTPIN 12 //menggunakan pin 2 untuk pemasangan sensornya
#define DHTTYPE DHT11 //memilih tipe DHT11, bisa diubah menjadi DHT22,
DHT21
DHT dht(DHTPIN, DHTTYPE); //setting pin yang dipilih dan tipe DHT

void setup() {
Serial.begin(9600);
}

void loop() {
float kelembaban = dht.readHumidity(); //menyimpan nilai Humidity pada
variabel kelembaban
float suhu = dht.readTemperature(); //menyimpan nilai Temperature pada
variabel suhu
serial.print(“Kelembapan : ”);

Laboratorium Mikrokontroler
serial.print(kelembaban);
serial.print(“Suhu : ”);
serial.println(suhu);
}

6.4. Lembar Kerja Praktikum


Lakukan kegiatan praktikum sesuai dengan lembar kerja berikut, salin LISTING
PROGRAM hasil percobaan tersebut dengan tulisan tangan (masing-masing
dikerjakan perorangan) lembar kertas F4. Beri nama, NIM, kelompok praktek.
Lembar kerja no.1: rencanakan program pembacaan sensor DHT11 pada
parameter SUHU dan KELEMBAPAN ditampilkan ke LCD.
Gambar rangkaian:

Listing Program:

Lembar kerja no.2: rencanakan program pembacaan sensor DHT11 untuk


parameter KELEMBABAN ke LCD karakter. Bila kelembaban di atas 40 maka akan
muncul tulisan di LCD karakter “Kelembaban LEBIH” dan bila di bawah 40 maka
akan muncul tulisan “Kelembaban NORMAL” pada Serial Monitor.
Gambar rangkaian:

Listing Program:

Lembar kerja no.3: rencanakan program pembacaan sensor DHT11 dengan


kondisi awal terdapat tulisan “suhu saat ini : “ pada LCD baris pertama dan tertera
hasil pembacaan suhu pada LCD baris ke dua. Jika SW1 ditekan dan suhu lebih dari
40 maka akan tertera Tulisan “Suhu Tinggi” pada LCD karakter, jika suhu kurang
dari 40 maka tulisan yang tertera “Suhu Normal”. Jika SW1 tidak ditekan maka
tampilan LCD seperti kondisi awal.
Gambar rangkaian:

Laboratorium Mikrokontroler
Listing Program:

Laboratorium Mikrokontroler
BAB 7
PWM

7.1. Tujuan:
Mahasiswa mampu menggunakan fungsi PWM (pulse width modulation) untuk
mengendalikan daya pada LED.

Gambar 7.1. Duty cycle pada PWM


7.2. Skematik

Gambar 7.2. Koneksi pin Arduino PWM (pin 6) ke LED

Laboratorium Mikrokontroler
7.3. Listing Program
Listing program: rencanakan program untuk mengendalikan LED menggunakan
PWM sehingga nyala LED mulai dari redup menuju ke terang.
//Initializing LED Pin
int led_pin = 6;

void setup() {
//Declaring LED pin as output
pinMode(led_pin, OUTPUT);
}

void loop() {
//Fading the LED
for(int i=0; I<255; i++){
analogWrite(led_pin, i);
delay(5);
}

for(int i=0; I<255; i--){


analogWrite(led_pin, i);
delay(5);
}
}

Listing program 2: Rencanakan program untuk mengendalikan LED


menggunakan potentiometer yang terhubung ke ADC (yang telah ada di board).
Int led_pin = 6;
int pot_pin = A0;
int output;
int led_value;

void setup() {
pinMode(led_pin, OUTPUT);
}
void loop() {
//Reading from potentiometer
output = analogRead(pot_pin);
//Mapping the Values between 0 to 255 because we can give output
//from 0 -255 using the analogwrite funtion
led_value = map(output, 0, 1023, 0, 255);
analogWrite(led_pin, led_value);
delay(1);
}

7.4. Lembar Kerja Praktikum


Laboratorium Mikrokontroler
Lakukan kegiatan praktikum sesuai dengan lembar kerja berikut, salin LISTING
PROGRAM hasil percobaan tersebut dengan tulisan tangan (masing-masing
dikerjakan perorangan) lembar kertas F4. Beri nama, NIM, kelompok praktek.
Lembar kerja no.1: rencanakan program PWM untuk mengendalikan terang
redup sebuah LED. Bila SW1 ditekan maka LED akan semakin terang dan sebaliknya
bila SW2 ditekan maka LED akan semakin redup.
Gambar rangkaian:

Listing Program:

Lembar kerja no.2: rencanakan program PWM untuk mengendalikan terang redup
LED 1 dan LED 2 masing-masing dengan menggunakan ADC channel 0 dan channel
5 dengan potentiometer yang telah tersedia.
Gambar rangkaian:

Listing Program:

Laboratorium Mikrokontroler
BAB 8
SERIAL KOMUNIKASI (HC-05)

2.1. Tujuan
Mahasiswa mampu menggunakan mikrokontroller Arduino untuk
mengirimkan data melalui Bluetooth

Digit 1 Digit 2 Digit 3 Digit4

2.2. Materi

Sebelum melakukan interaksi dengan bluetooth maka terlebih


dahulu anda harus melakukan konfigurasi pada modul tersebut.
Langkah pertama yang harus dilakukan adalah melakukan koneksi
antara modul bluetooth dan arduino uno, lihat tabel 2.1.
Konfigurasi dapat digunakan untuk mengatur antara lain:
kecepatan pengiriman dan penerimaan data (BAUDRATE), memberi
nama bluetooth, merubah password dan lain-lain. Konfigurasi
dilakukan melalui jalur komunikasi serial via SERIAL MONITOR
pada ARDUINO TOOL menggunakan AT-COMMAND. Dengan
langkah-langkah sebagai berikut:

1. Koneksikan antara arduino dan bluetooth sesuai dengan Table 2.2.


2. Lakukan UPLOAD file yang ditunjukkan pada listing program 2.1.
3. Lepas power supply ARDUINO (kabel USB). Tekan tombol SW
yang tersedia pada modul bluetooth dan pasang kembali kabel
USB pada ARDUINO maka LED pada modul bluetooth akan
berkedip sekitar 2 detik. Hal ini menandakan bluetooth
memasuki mode AT-COMMAND.
4. Buka layar serial monitor pada ARDUINO IDE. Lakukan
pengetikan AT dan ikuti dengan ENTER maka modul bluetooth
akan menjawab dengan OK. Hal ini menandakan modul
bluetooth sudah siap.
5. Berikut merupakan contoh-contoh AT-COMMAND.

Laboratorium Mikrokontroler
Tabel 2.1. Contoh AT COMMAND
Fungsi COMMAND
1. To return HC-05 to default settings: AT+ORGL AT+VERSION?
AT+NAME=MYBLUE
2. To get version of your HC-05 enter:
3. To change device name from the default AT+PSWD=2987
HC-05 to let's say MYBLUE enter:
4. To change default security code from
1234 to 2987 enter: AT+UART=115200,1,0
5. To change HC-05 baud rate from
default 9600 to 115200, 1 stop bit, 0
parity enter: AT+ROLE=0
6. To change role of bluetooth module (1=master/0=slave)

Table 2.2. Hubungan antara board Arduino dan Bluetooth module

Arduino Bluetooth Module


5V To Vcc
GND To GND
D10 To TX
D11 To RX

D9 To KEY

Listing program 2.1. untuk memberi perintah AT-COMMAND

#include <SoftwareSerial.h>
SoftwareSerial BTSerial(10, 11); // RX | TX
void setup()
{
pinMode(9, OUTPUT); // this pin will pull the HC-05 pin 34 (key pin)
HIGH to switch module to AT mode
digitalWrite(9, HIGH);
Serial.begin(9600); Serial.println("Enter
AT commands:");
BTSerial.begin(38400); // HC-05 default speed in AT command more
}

void loop(){
// Keep reading from HC-05 and send to Arduino Serial Monitor
if (BTSerial.available())
Serial.write(BTSerial.read());
// Keep reading from Arduino Serial Monitor and send to HC-05
if (Serial.available())
BTSerial.write(Serial.read());
}

Laboratorium Mikrokontroler
2.1. Percobaan Kendali LED melalui mobile phone
Pada percobaan ini akan dibuat sebuah komunikasi wireless
menggunakan koneksi bluetooth, dengan menggunakan Arduino
Nano dan Bluetooth HC05 atau HC06. Pada percobaan ini, sebuah
LED (BUILTIN) yang terhubung ke D13 pin Arduino akan
dikendalikan (ON/ OFF) melalui komunikasi bluetooth antara
bluetooth mobile phone dan bluethooth HC05.
1. Lakukan instalasi bluetooth terminal (dari: electrotoolbox)
melalui Google Play Store. Sebelum menghubungkan Arduino
dan bluetooth, perhatikan pin-pin sebagaimana yang
ditunjukkan pada Gambar 2.1.

(a) Arduino Nano (b) Bluetooth HC05

Gambar 2.1. (a) Arduino Nano dan (b) Bluetooth HC05

2. Pasang board Arduino nano dan bluetooth pada papan project


board (white board) dan hubungkan pin-pin yang digunakan
menggunakan kabel jumper, dengan hubungan antara arduino
dan bluetooth module ditunjukkan pada Table 2.3.

Laboratorium Mikrokontroler
Table 2.3. Hubungan antara board Arduino dan Bluetooth module

Arduino Bluetooth Module


5V T Vcc
GN o GN
D T D
D10 o TX
D11 T RX
o
T
o

3. Ketik program berikut dengan menggunakan IDE Arduino.


Program ini bertujuan untuk mendeteksi character ‘1’ untuk
menghidupkan LED dan character ‘2’ untuk mematikan LED.
Karakter ‘1’ dan ‘2’ diketik melalui aplikasi BLUETOOTH
TERMINAL pada smart phone melalui PLAYSTORE.

Laboratorium Mikrokontroler
#include <SoftwareSerial.h>
SoftwareSerial BT(10, 11);
// creates a "virtual" serial port/UART
// connect BT module TX to D10
// connect BT module RX to D11
// connect BT Vcc to 5V, GND to GND
void setup(){
// set digital pin to control as an output
pinMode(13, OUTPUT);
// set the data rate for the SoftwareSerial port
BT.begin(9600);
// Send test message to other device
BT.println("Hello, This is from Arduino");
BT.println("Press 1=ON; 2=OFF");
}
char a; // stores incoming character from other
device void loop(){
if (BT.available())
// if text arrived in from BT serial...
{
a=(BT.read());
if (a=='1')
{
digitalWrite(13, HIGH);
BT.println ("LED on");
}
if (a=='2')
{
digitalWrite(13, LOW);
BT.println("LED off");
}
if (a=='?')
{
BT.println("Send '1' to turn LED on");
BT.println("Send '2' to turn LED on");
}
// you can add more "if" statements with other characters
}
}

Laboratorium Mikrokontroler
4. Jalankan program bluetooth terminal (from: ELECTROTOOLBOX)
pada smart phone anda (a), pilih pada menu Bluetooth devices
untuk memilih device HC05 yang sudah terkoneksi ke Arduino
untuk proses PAIRING (b). Tekan tombol reset pada Arduino
NANO,untuk memulai komunikasi sehingga akan muncul
tampilan seperti yang ditunjukkan pada Gambar 2.2 (c).

(a) Menu terminal (b) Pilihan devices (c) Cara kendali


led

Gambar 2.2. Aplikasi bluetooth terminal pada smartphone

5. Rencanakan program pada arduino tetapi terlebih dahulu ganti


koneksi pin TX RX bluetooth ke Arduino dengan pin Arduino
yang lain. Misal Tx=D8 dan Rx=D9 atau Tx=D6 dan TX=D7.
6. Lakukan modifikasi pada program arduino sehingga kendali LED
dilakukan dengan character yang lain, misal character 8=ON dan
character 7=OFF.

Laboratorium Mikrokontroler
BAB 9
TIMER INTERRUPT (COUNTER)

9.1 Tujuan:
Mahasiswa mampu menggunakan fungsi TIMER pada microcontroller
Arduino untuk mendeteksi clock yang masuk pada pin (4) atau (5).

Gambar 9.1. Prescaler untuk Timer/Counter 0 dan 1

Gambar 9.2. Pemilihan sumber clock untuk TIMER0

Laboratorium Mikrokontroler
Gambar 9.3. Register TCCR0B

Gambar 9.4. Register TCCR0B

Gambar 9.5. Pilihan mode pada TIMER0

Laboratorium Mikrokontroler
9.2. Skematik

Gambar 9.6. Konfigurasi pin pada Arduino nano (ATMEGA328)

9.3. Listing Program (CONTOH)


Listing Program: rencanakan program untuk mengambil data dari COUNTER 0 dan
menampilkan ke LCD Karakter. Hubungkan rangkaian pembangkit oscillator
dengan IC 555.
// http://learningembedded.com/
#include <LiquidCrystal.h>
LiquidCrystal lcd(16, 17, 18, 20, 21, 22, 23); // lcd initialization
int data; // variable to read sensor value
void setup() {
lcd.begin(16, 2); // set up the LCD's
lcd.print("Mikrokontroller"); // Print a message to the LCD.
delay(2000); // delay of 2 sec
lcd.clear(); // clear the screen
TCCR0A =0;
TCCR0B =0;
TCCR0B |= (1 << CS02) | (1 << CS01); // T0 on falling edge
TCNT0=0;
}
void loop(){
data = TCNT0; // to DETECT the CLOCK
lcd.setCursor(0, 0); // set cursor position at 0,0
lcd.print("Counter is "); // print a message
lcd.setCursor(0, 1); // set cursor position at 0,1
lcd.print(data);// prints the analog value
delayMicroseconds(50000);
lcd.clear();
}

Laboratorium Mikrokontroler
9.4. Lembar Kerja Praktikum
Lakukan kegiatan praktikum sesuai dengan lembar kerja berikut, salin
LISTING PROGRAM hasil percobaan tersebut dengan tulisan tangan
(masing-masing dikerjakan perorangan) lembar kertas F4. Beri nama, NIM,
kelompok praktek.
Lembar kerja no.1: rencanakan program untuk mengambil data dari COUNTER 0
dan menampilkan ke LCD Karakter. Hubungkan rangkaian pembangkit oscillator
dengan IC 555. Program akan menampilkan data mulai dari 255 ke 0.
Gambar rangkaian:

Listing Program:

Lembar kerja no.2: rencanakan program untuk mengambil data dari COUNTER 0
dan menampilkan ke LCD Karakter. Hubungkan rangkaian pembangkit oscillator
dengan IC 555. Program akan menampilkan data mulai dari 100 ke 255.
Gambar rangkaian:

Listing Program:

Lembar kerja no.3: rencanakan program untuk mengambil data dari COUNTER 1
dan menampilkan ke LCD Karakter. Hubungkan rangkaian pembangkit oscillator
dengan IC 555. Program akan menampilkan data mulai dari 0 ke 65535.
Gambar rangkaian:

Listing Program:

Laboratorium Mikrokontroler
Lembar kerja no.4: rencanakan program untuk mengambil data dari COUNTER 1
dan menampilkan ke LCD Karakter. Hubungkan rangkaian pembangkit oscillator
dengan IC 555. Program akan menampilkan data mulai dari 0 ke 65535 dan
mencacah turun 65535 ke 0, setelah itu berhenti
Gambar rangkaian:

Listing Program:

Laboratorium Mikrokontroler
BAB 10
TIMER INTERRUPT (TIMER)

10.1. Tujuan
Mahasiswa memahami fungsi timer interrupt pada Arduino
10.2. Register TIMER 1

Gambar 10.1. Register TCCR1A

Laboratorium Mikrokontroler
Gambar 9.2. Pemilihan sumber clock untuk TIMER1

Gambar 10.2. Register TIMSK1

Laboratorium Mikrokontroler
10.3. Listing Program
Listing Program: rencanakan program mengedipkan LED yang terhubung ke PIN
13. Berkedip dengan frekuensi 2 Hz.
#define ledPin 13

void setup(){
pinMode(ledPin, OUTPUT);

// initialize Timer1
noInterrupts(); // disable all interrupts
TCCR1A = 0;
TCCR1B = 0;
TCNT1 = 34286; // preload timer 65536-16MHz/256/2Hz
TCCR1B |= (1 << CS12); // 256 prescaler
TIMSK1 |= (1 << TOIE1); // enable timer overflow interrupt
interrupts(); // enable all interrupts
}

ISR(Timer1_OVF_vect) // interrupt service routine that wraps a user defined


function supplied by attachInterrupt{
TCNT1 = 34286; // preload timer
digitalWrite(ledPin, digitalRead(ledPin) ^ 1);
}

void loop(){
// your program here…
}

10.4. Lembar Kerja Praktikum


Lakukan kegiatan praktikum sesuai dengan lembar kerja berikut, salin
LISTING PROGRAM hasil percobaan tersebut dengan tulisan tangan
(masing-masing dikerjakan perorangan) lembar kertas F4. Beri nama, NIM,
kelompok praktek.
Lembar kerja no.1: rencanakan program mengedipkan LED yang terhubung ke PIN
0. Berkedip dengan frekuensi 1 Hz. (TIMER1)
Gambar rangkaian:

Listing Program:

Laboratorium Mikrokontroler
Lembar kerja no.2: rencanakan program mengedipkan LED yang terhubung ke PIN
0, berkedip dengan frekuensi 1 Hz, gunakan TIMER0 dan kedipkan LED yang
terhubung ke PIN 1, berkedip dengan frekuensi 2 Hz, gunakan TIMER1.
Gambar rangkaian:

Listing Program:

Lembar kerja no.2: rencanakan program jam digital untuk bagian DETIK saja
dengan menggunakan sistem interupsi TIMER1. Tampilkan hitungan detik dari 00
sd. 59 selanjutnya akan kembali lagi ke 00.
Gambar rangkaian:

Listing Program:

Laboratorium Mikrokontroler

Anda mungkin juga menyukai