0% menganggap dokumen ini bermanfaat (0 suara)
41 tayangan65 halaman

Modul Praktikum Mikro (Unit 1 - 4)

Diunggah oleh

Ayu dwinanda
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 DOCX, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
41 tayangan65 halaman

Modul Praktikum Mikro (Unit 1 - 4)

Diunggah oleh

Ayu dwinanda
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 DOCX, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 65

MODUL PRAKTIKUM

MIKROPROSESOR – MIKROKONTROLER

D3 TEKNOLOGI ELEKTRO-MEDIS
PROGRAM VOKASI
UNIVERSITAS MUHAMMADIYAH YOGYAKARTA
2023/2024
DAFTAR ISI

DAFTAR ISI..............................................................................................................................ii
PERATURAN PELAKSANAAN PRAKTIKUM....................................................................iii
LEMBAR PRESENSI KEHADIRAN.....................................................................................iv
PRAKTIKUM UNIT 1 : DIGITAL INPUT – OUTPUT.......................................1
PRAKTIKUM UNIT 2 : ANALOG DIGITAL CONVERTER (ADC)..............10
PRAKTIKUM UNIT 3 : DISPLAY SEVEN SEGMENT & LCD.....................23
PRAKTIKUM UNIT 4 : TIMER COUNTER......................................................42
PRAKTIKUM UNIT 5 : PULSE WIDTH MODULATION (PWM)
....................
PRAKTIKUM UNIT 6 : KOMUNIKASI SERIAL
.............................................
PRAKTIKUM UNIT 7 : APLIKASI MIKROKONTROLER
...............................
UJIAN CAPAIAN PEMBELAJARAN PRAKTIKUM
.......................................................
PROJEK MATAKULIAH
...............................................................................................
PENILAIAN PROJEK
....................................................................................
FORMAT LAPORAN PROJEK
.....................................................................

ii
PERATURAN PELAKSANAAN PRAKTIKUM
MATAKULIAH MIKROPROSESOR -
MIKROKONTROLER

1. Pelaksanaan Praktikum diutamakan secara Luring (Offline) di Ruang Laboratorium


yang sudah disediakan
2. Peserta Praktikum atau PRAKTIKAN disediakan unit komputer dan modul praktikum
berupa board mikrokontroler dan seperangkat komponen pendukung lainnya.
3. PRAKTIKAN diperkenankan membawa dan menggunakan Laptop guna
memudahkan pelaksanaan praktikum.

4. Toleransi Kehadiran Kelas Praktikum adalah 30 Menit


5. Apabila Praktikan melebihi batas toleransi waktu, disilakan mengikuti kelas
praktikum selanjutnya (jika space masih tersedia) atau mengikuti INHALL
GABUNG pada akhir semester
6. PRAKTIKAN WAJIB membawa Lembar Presensi Kehadiran, ditanda tangan oleh
Dosen/Laboran/Asisten Lab apabila telah menyelesaikan praktikum.
7. PRAKTIKAN WAJIB membawa Lembar Kesimpulan Sementara, ditanda tangan
oleh Dosen/Laboran/Asisten Lab apabila telah menyelesaikan praktikum
8. PRAKTIKAN TIDAK DIPERKENANKAN PRAKTIKUM, jika salah satu dari
poin 6 atau poin 7 tidak dibawa pada saat mengikuti praktikum

9. PRAKTIKAN DILARANG makan & minum di dalam kelas pada saat pelaksanaan
praktikum berlangsung.
10. PRAKTIKAN DILARANG membawa pulang modul praktikum ataupun komponen
pendukung praktikum lainnya.
11. Bagi Praktikan, apabila diketahui menyebabkan kerusakan pada modul praktikum
maupun alat bantu pengukuran akan mendapatkan pengurangan nilai serta harus
mengganti kerusakan yang telah disebabkan kelalaiannya.

NB : Ketentuan perkuliahan bisa berubah, bertambah atau berkurang sesuai


dengan kondisi yang ada.

i
LEMBAR PRESENSI KEHADIRAN
PRAKTIKUM MIKROPROSESOR – MIKROKONTROLER

NAMA MAHASISWA :
NIM :
KELAS :

TGL
NO. UNIT PARAF
NO JUDUL UNIT PRAKTIKUM PELAKSANAAN
PRAKTIKUM DOSEN/LABORAN
PRAKTIKUM

CATATAN :
LEMBAR INI WAJIB DIBAWA SETIAP PRAKTIKUM, SEBAGAI BUKTI
PELAKSANAAN PRAKTIKUM !

i
PRAKTIKUM UNIT 1
MIKROPROSESOR-MIKROKONTROLER DIGITAL INPUT-

PRAKTIKUM UNIT 1
DIGITAL INPUT – OUTPUT ARDUINO NANO

Gambar 1.1 Konfigurasi pinout pada Arduino Nano

Pada Arduino Nano terdapat beberapa pin yang dapat digunakan


untuk masukkan(input) atau luaran (output) secara digital (menerima
tegangan masukkan 5 volt atau 0 volt, menghasilkan luaran 5 volt atau
0 volt). Sebenarnya hampir semua pin di Arduino Nano dapat digunakan
untuk digital input/output, tapi umumnya yang digunakan adalahpin D2-
D12. Lalu apakah pin A0 – A7 dan pin D0-D1 tidak bisa digunakan
sebagai digitalinput-output? Jawabannya adalah bisa saja, tetapi dengan
syarat tertentu.

Aplikasi digital input biasa digunakan untuk push-button maupun


sensor- sensor dengan keluaran logika digital (HIGH/LOW). Sedangkan
aplikasi digital output digunakan untuk menyalakan/menonaktifkan
sebuah aktuator/komponen output yang berkerja berdasarkan logika
digital (HIGH/LOW) seperti LED, relay mekanik, relay SSR, transistor
(kaki basis) hingga driver motor DC maupun motor stepper. Contoh
sebuah pin pada Arduino Nano digunakan sebagai luaran digital adalah
sebagaiberikut:

1
PRAKTIKUM UNIT 1
MIKROPROSESOR-MIKROKONTROLER DIGITAL INPUT-

void setup()
{
pindMode(3, OUTPUT);
}
Void loop()
{
digitalWrite(3, HIGH);

Penjelasan Program:
pinMode(D3, OUTPUT)  maksudnya adalah pin D3 disetting sebagai luaran.

digitalWrite(D3, HIGH)  maksudnya adalah luaran dari pin D3 adalah 5 volt atau
berlogika 1.

digitalWrite(D3, LOW)  maksudnya adalah luaran dari pin D3 adalah 0 volt atau
berlogika 0.

Sedangkan, contoh pin Arduino Nano digunakan sebagai masukkan digital


adalah sebagai berikut:

void setup()
{
Penjelasan Program:
pindMode(3,
pinMode(D3, INPUT_PULLUP)  maksudnya adalah pin D3 disetting sebagai input
INPUT_PULLUP);
pinMode(4, OUTPUT);
dengan mode pull-up, jika ingin
} menggunakan input dengan mode non
Void loop() pullup (toggle), maka cukup menulisnya
pinMode(D3, INPUT).
{
int tombol =  maksudnya adalah membaca masukkan sinyal digital dari pin D3.
digitalRead(D3)

2
PRAKTIKUM UNIT 1
MIKROPROSESOR-MIKROKONTROLER DIGITAL INPUT-

Cara kerja keseluruhan dari code program diatas adalah jika nilai
variable tombol adalah0 (LOW), maka luaran pin D4 adalah HIGH (5
volt), sedangkan jika nilai variable tomboladalah 1 (HIGH), maka luaran
pin D4 adalah LOW (0 volt).

Tujuan Praktikum
1. Mahasiswa mampu mengetahui konfigurasi dan cara kerja input-
output digital padaArduino Nano.
2. Mahasiswa mampu mengaplikasikan fungsi input-output digital yang
ada pada Arduino Nano.
3. Mahasiswa mampu membuat sketch program input-output digital
pada Arduino Nanodengan software Arduino IDE.

Alat dan Bahan


Alat:
1. Notebook/laptop/Personal Computer
2. Software Arduino
IDE Bahan:
1. Modul Arduino Nano
2. Kabel USB

Langkah Percobaan
1. Buka software Arduino IDE

2. Buat file baru

3. Save (simpan) dengan nama file dan di folder yang telah ditentukan
4. Koneksikan Arduino Nano dengan PC dengan menggunakan kabel USB

5. Pilih Board Arduino Nano dan Port yang sesuai dengan port
Arduino Nano, sertapastikan Programmer nya adalah AVRISP mkll
6. Tulis sketch program

7. Lakukan proses Verify


8. Lakukan proses Upload

3
PRAKTIKUM UNIT 1
MIKROPROSESOR-MIKROKONTROLER DIGITAL INPUT-

Percobaan
1. Menggunakan Luaran Digital Arduino Nano untuk
menghidupkan/mematikan LED

A. Sketch program LED nyala berkelip dengan delay:

const int LED_1 =


5; const int LED_2
= 6; const int
LED_3 = 7;

void setup()
{
pindMode(LED_1,
OUTPUT);
pindMode(LED_2,
OUTPUT);
pindMode(LED_3,
OUTPUT);

Void loop()

digitalWrite(LED_1,
HIGH); delay(1000);
digitalWrite(LED_1,
LOW); delay(1000);
digitalWrite(LED_2,
HIGH); delay(1000);
digitalWrite(LED_2,
LOW); delay(1000);
digitalWrite(LED_3,
HIGH); delay(1000);

4
PRAKTIKUM UNIT 1
MIKROPROSESOR-MIKROKONTROLER DIGITAL INPUT-

Skematik:

B. Sketch program LED nyala berkedip tanpa delay:

const int ledPin =


5; int ledState =
LOW;

unsigned long previousMillis = 0;


const long interval = 1000;

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

void loop()
{
unsigned long currentMillis = millis();
if (currentMillis - previousMillis >= interval)
{
previousMillis =
currentMillis; if (ledState

5
PRAKTIKUM UNIT 1
MIKROPROSESOR-MIKROKONTROLER DIGITAL INPUT-

Skematik:

2. Menggunakan Push Button untuk kontrol hidup/nyala LED


A. Sketch program Push Button ditekan dan ditahan untuk menyalakan
LED:

const int LED = 5;


const int TOMBOL =
3;

void setup()
{
pinMode(TOMBOL,
INPUT_PULLUP); pinMode(LED,
OUTPUT);

void loop()
{
int posisi_tombol =
digitalRead(TOMBOL); if(posisi_tombol

6
PRAKTIKUM UNIT 1
MIKROPROSESOR-MIKROKONTROLER DIGITAL INPUT-

Skematik:

B. Sketch program tombol On-Off


const int LED = 5;
Skematik: sama dengan sebelumnya (2A).
const int TOMBOL =
3;

boolean ledMenyala = false;


int keadaanSebelumnya = LOW;

void setup()

pinMode(TOMBOL,
INPUT_PULLUP); pinMode(LED,
OUTPUT);

void loop()

int keadaanSekarang = digitalRead(TOMBOL);

7
PRAKTIKUM UNIT 1
MIKROPROSESOR-MIKROKONTROLER DIGITAL INPUT-

Pertanyaan
(Sertakan dalam Laporan Praktikum, dapat digabung dengan analisis ataupun
dibuat terpisah)

1. Apakah maksud dari const int dan apakah perbedaannya dengan int ?
2. Apa dampaknya jika pada digitalWrite(LED, LOW); di samping,
LOW atau HIGH diganti 0 atau 1? serta jelaskan mengapa demikian
pada aturan syntax program tersebut !
3. Jelaskan tentang fungsi millis() secara umum dan khusus pada
program yang dipraktikumkan pada unit ini !
4. Bagaimana alur bekerja timer menggunakan millis() pada program
yang dipraktikumkan di atas?
5. Di percobaan diatas ada pernyataan ledMenyala = not ledMenyala,
apakah kegunaan dari kata not tersebut dan jelaskan secara alur
program?
6. Apa perbedaan dari satu sama-dengan (“=”) dan dua sama-dengan (“==”)?
7. Apakah fungsi dari operator != ?

8
PRAKTIKUM UNIT 1
MIKROPROSESOR-MIKROKONTROLER DIGITAL INPUT-

LEMBAR KESIMPULAN SEMENTARA


NO. UNIT : 1 (SATU)
JUDUL UNIT : DIGITAL INPUT - OUTPUT

NAMA MAHASISWA :
NIM :
KELAS :

TULISKAN KESIMPULAN SEMENTARA DARI PRAKTIKUM YANG SUDAH DILAKUKAN

Yogyakarta, ……………………………
Mahasiswa Praktikan Dosen / Laboran / Asisten

(…………...………………………….) (……………………………………..…….)

CATATAN :
9 SEBAGAI BUKTI PELAKSANAAN PRAKTIKUM !
LEMBAR INI WAJIB DIBAWA SETIAP UNIT PRAKTIKUM,
PRAKTIKUM UNIT 2
MIKROPROSESOR-MIKROKONTROLER DIGITAL ANALOG CONVERTER

PRAKTIKUM UNIT 2
ANALOG TO DIGITAL CONVERTER

Teori Singkat
A. Analog Digital Converter (ADC)

Board Arduino berisi multichannel dari 10-bit analog ke digital converter. Ini berarti
akan memetakan tegangan input antara 0 dan tegangan operasi (5V atau 3.3V) menjadi
nilai integer antara 0 dan 1023. Pada Arduino UNO, misalnya, ini menghasilkan resolusi
antara pembacaan: 5 volt / 1024 unit atau , 0,0049 volt (4,9 mV) per unit.
Tabel di bawah menunjukkan pin yang dapat digunakan, tegangan operasi, dan resolusi
maksimum untuk beberapa board Arduino. Rentang input dapat diubah menggunakan
analogReference(), sedangkan resolusi dapat diubah (hanya untuk papan Zero, Due dan
MKR) menggunakan analogReadResolution().

Board Operating voltage Usable pins Max resolution


Uno 5 Volts A0 to A5 10 bits
Mini, Nano 5 Volts A0 to A7 10 bits
Mega, Mega2560, MegaADK 5 Volts A0 to A14 10 bits
Micro 5 Volts A0 to A11* 10 bits
Leonardo 5 Volts A0 to A11* 10 bits
Zero 3.3 Volts A0 to A5 12 bits**
Due 3.3 Volts A0 to A11 12 bits**
MKR Family boards 3.3 Volts A0 to A6 12 bits**
*A0 sampai A5 diberi label di board, A6 sampai A11 masing-masing tersedia di pin 4, 6, 8, 9, 10,
dan 12.
**Resolusi analogRead() default untuk papan ini adalah 10 bit, untuk kompatibilitas. Anda
perlu menggunakan analogReadResolution() untuk mengubahnya menjadi 12 bit.
Pada board berbasis ATmega (UNO, Nano, Mini, Mega), dibutuhkan sekitar 100
mikrodetik (0,0001 s) untuk membaca input analog, sehingga kecepatan membaca
maksimum sekitar 10.000 kali per detik.

Syntax
analogRead(pin)
Parameter
pin: nama pin input analog yang akan dibaca (A0 hingga A5 pada sebagian besar papan, A0
hingga A6 pada papan MKR, A0 hingga A7 pada Mini dan Nano, A0 hingga A15 pada Mega).
Returns
Pembacaan analog pada pin. Meskipun terbatas pada resolusi konverter analog ke digital (0-1023
untuk 10 bit atau 0-4095 untuk 12 bit). Tipe data: integer (int).

1
PRAKTIKUM UNIT 2
MIKROPROSESOR-MIKROKONTROLER DIGITAL ANALOG CONVERTER

B. Serial Monitor
Serial Monitor adalah alat penting saat membuat proyek dengan Arduino.
Ini dapat digunakan sebagai alat debugging, menguji konsep atau untuk
berkomunikasi langsung dengan board Arduino.
Pertukaran data ini terjadi melalui kabel USB yang biasa kita gunakan
untuk proses upload sketch dari laptop/PC ke Arduino. Lebih jelas tentang
cara kerja dari serial monitor adalah sebagai berikut.
1) Arduino ke PC/Laptop merupakan proses menerima data yang
dikirim oleh Arduino ke PC/Laptop dan menampilkan data tersebut
pada layar monitor. Proses ini biasa digunakan untuk debugging
dan monitoring

2) PC/Laptop ke Arduino merupakan proses mengirim data dari


laptop/PC ke Arduino

Aktivasi Fitur Serial Monitor Arduino

Arduino IDE 2.0 memiliki alat Serial Monitor yang terintegrasi dengan editor,
yang berarti tidak ada jendela eksternal yang terbuka saat menggunakan
Serial Monitor. Ini berarti Anda dapat membuka banyak jendela, masing-
masing dengan Serial Monitor-nya sendiri.

1
PRAKTIKUM UNIT 2
MIKROPROSESOR-MIKROKONTROLER DIGITAL ANALOG CONVERTER

Aktivasi Fitur Serial Monitor

Tujuan Praktikum
1. Mahasiswa mampu memahami karakteristik dan cara
mengaplikasikan fungsi ADCpada arduino dan penerapannya
menggunakan sensor suhu.

2. Mampu mengetahui dan mengidentifikasi keluaran data sensor dan


nilai ADC melalui fitur serial monitor
Alat dan Bahan
Alat:

1. Notebook/laptop/Personal Computer
2. Web Browser

(ThinkerCAD) Bahan:

1. Modul Praktikum
2. Arduino Nano
3. Potensiometer
4. Sensor Suhu
5. Kabel Jumper
Percobaan

Percobaan dilakukan menggunakan Web Browser – ThinkerCAD atau


menggunakan modul praktikum yang disediakan.

1
PRAKTIKUM UNIT 2
MIKROPROSESOR-MIKROKONTROLER DIGITAL ANALOG CONVERTER

A. Percobaan 1 (Membaca nilai ADC dengan tegangan referensi ADC DEFAULT)

Langkah Percobaan dengan Langkah Percobaan dengan


No No
Modul Praktikum Web Browser -
ThinkerCAD
Buka https://www.tinkercad.com, login
1 Siapkan Alat dan Bahan 1
menggunakan akun yang sudah dibuat.
Catat spesifikasi komponen yang di
2 perlukan untuk analisa (Potensiometer) 2 Masuk Circuits

Buatlah rangkaian seperti skematik 3 Create new Circuit


3
di bawah ini Buat rangkaian seperti skematik
4
di bawah ini.

Skematik Rangkaian Percobaan

Tabel Komponen yang digunakan pada simulasi ThinkerCAD

1
PRAKTIKUM UNIT 2
MIKROPROSESOR-MIKROKONTROLER DIGITAL ANALOG CONVERTER

Langkah Lanjutan (Modul Praktikum/ThinkerCad)


1. Buat pemrograman di Arduino IDE/ Thinkercad seperti di bawah ini
Sketch program:
void setup()
{
2. Verify/Compile Program & Upload program ke Board Arduino (Modul Praktikum)
Serial.begin(9600); analogReference(DEFAULT);
Jalankan simulasi thinkerCAD (Web browser – ThinkerCAD)
}
3. Buka Tab serial monitor pada Arduino IDE / ThinkerCAD
4. Putar
voidPotensio
loop() dan perhatikan serial monitor serta perhatikan voltmeter (user ThinkerCAD)
{
int data_adc;
float data_tegangan; data_adc = analogRead(A0);
data_tegangan
Aktivasi Fitur Serial = IDE
Monitor Arduino float (data_adc)*5/1023;Serial.print("data adc: ");
Serial.print(data_adc);
Serial.print(" data tegangan:
");Serial.println(data_tegangan); delay(500);
}
Aktivasi Fitur Serial Monitor Thinkercad

B. Percobaan 2 (Membaca nilai ADC dengan tegangan referensi ADC


INTERNAL) Langkah Percobaan:
1. Langkah percobaan sama seperti percobaan 1, hanya diubah sketch
programnya saja.
2. Buat pemrograman di Arduino IDE/ Thinkercad seperti di bawah ini

1
PRAKTIKUM UNIT 2
MIKROPROSESOR-MIKROKONTROLER DIGITAL ANALOG CONVERTER

Sketch program:

void setup()
{
3.Serial.begin(9600);
Verify/Compile Program & Upload program ke Board Arduino (Modul
analogReference(INTERNAL);
Praktikum) Jalankan simulasi thinkerCAD (Web browser –
}
ThinkerCAD)
void loop()
{4. Buka Tab serial monitor pada Arduino IDE / ThinkerCAD
int data_adc;
5.float
Putar Potensio dan perhatikan serial monitor serta perhatikan
data_tegangan;
data_adc
voltmeter= (user ThinkerCAD)
analogRead(A0);
data_tegangan = float
(data_adc)*1.1/1023;Serial.print("data adc: ");
Serial.print(data_adc);
Serial.print(" data tegangan: ");
Serial.println(data_tegangan); delay(500);
}

1
PRAKTIKUM UNIT 2
MIKROPROSESOR-MIKROKONTROLER DIGITAL ANALOG CONVERTER

C. Percobaan 3 (Membaca nilai ADC dengan tegangan referensi ADC

EXTERNAL) Langkah Percobaan:

1. Langkah Percobaan seperti pada percobaan 1 dan 2 sebelumnya,


Buat rangkaian seperti skematik di bawah ini dengan modul
praktikum/ThinkerCAD

Tabel Komponen yang digunakan pada simulasi ThinkerCAD

1
PRAKTIKUM UNIT 2
MIKROPROSESOR-MIKROKONTROLER DIGITAL ANALOG CONVERTER

2. Buat pemrograman di Arduino IDE/ThinkerCAD seperti di bawah ini


Sketch program:

void setup()
{
3. Verify/Compile Program & Upload program ke Board Arduino (Modul
Serial.begin(9600);
Praktikum) Jalankan simulasi thinkerCAD (Web browser – ThinkerCAD)
analogReference(EXTERNAL);
4. Buka
} Tab serial monitor pada Arduino IDE / ThinkerCAD
5. Putar Potensio dan perhatikan serial monitor serta perhatikan
void loop()
voltmeter (user ThinkerCAD)
{
int data_adc;
float data_tegangan; data_adc =
D. Percobaan 4 (Membaca nilai ADC dari Sensor Suhu)
analogRead(A0); data_tegangan =
float(data_adc)*3.3/1023;
Serial.print("data adc: ");
Serial.print(data_adc);
Serial.print(" datategangan: ");

Gambar a) Sensor Suhu LM35 (Modul Praktikum), b) Sensor Suhu TMP36


(ThinkerCAD)

1
PRAKTIKUM UNIT 2
MIKROPROSESOR-MIKROKONTROLER DIGITAL ANALOG CONVERTER

Langkah Percobaan:

Langkah Percobaan dengan Langkah Percobaan dengan


No No
Modul Praktikum Web Browser -
ThinkerCAD
Buka https://www.tinkercad.com, login
1 Siapkan Alat dan Bahan 1
menggunakan akun yang sudah dibuat.

2 Masuk Circuits
Buatlah rangkaian seperti skematik
3 Create new Circuit
2 di bawah ini dengan memperhatikan
konfigurasi Pinout Sensor Buatlah rangkaian seperti skematik
4 di bawah ini dengan memperhatikan
konfigurasi Pinout Sensor

Tabel Konfigurasi Pinout Sensor Suhu

PIN Sensor LM35 Pin Arduino PIN Sensor TMP36


(Modul Praktikum) Nano/Uno (ThinkerCAD)
VCC VCC (+5V) +Vs
GND GND GND
Out/Data A0/A1/A2 .. dst Vout/Data

Tabel Komponen yang digunakan pada simulasi ThinkerCAD

1
PRAKTIKUM UNIT 2
MIKROPROSESOR-MIKROKONTROLER DIGITAL ANALOG CONVERTER

Langkah Percobaan Lanjutan

1. Buat pemrograman di Arduino IDE/ThinkerCAD seperti di bawah ini


Sketch program:

1
PRAKTIKUM UNIT 2
MIKROPROSESOR-MIKROKONTROLER DIGITAL ANALOG CONVERTER

2. Verify/Compile Program & Upload program ke Board Arduino (Modul


Praktikum) Jalankan simulasi thinkerCAD (Web browser – ThinkerCAD)
3. Buka Tab serial monitor pada Arduino IDE / ThinkerCAD
4. Ubah suhu dan amati nilai tegangan dan nilai ADC pada serial monitor
 Nilai suhu LM35 diubah dengan mendekatkan/menjauhkan
sensor LM35 dengan sumber panas (ditekan dengan jari atau
didekatkan dengan solder/blower pemanas yang menyala).
 Nilai Suhu TMP36 pada ThinkerCAD diubah dengan mengubah
skala suhu seperti pada gambar di bawah ini

5. Catatlah data percobaan sebanyak 10 – 20 kali pengujian dengan suhu


yang berbeda, amati tegangan yang dihasilkan dan nilai suhu yang terbaca.
Buatlah dalam tabel Ms. Excel

2
PRAKTIKUM UNIT 2
MIKROPROSESOR-MIKROKONTROLER DIGITAL ANALOG CONVERTER

TUGAS ANALISIS PERCOBAAN


(Sertakan dalam Laporan Praktikum, dapat digabung dengan analisis ataupun
dibuat terpisah)

1) Bagaimana prinsip cara kerja ADC pada masing-masing percobaan


A, B dan C diatas?
2) Apa yang membuat hasil pembacaan tegangan menjadi berbeda,
meskipun rangkaian skematiknya hampir serupa?
3) Bagaimana prinsip kerja ADC percobaan D, dimana nilai ADC dapat
dikonversi menjadi nilai suhu real?
4) Bagaimana hubungan tegangan output sensor, nilai ADC yang
dihasilkan sensor dan nilai suhu yang terbaca (terproses di
mikrokontroler)?
5) Buatlah Grafik Persamaan Linear hasil pengujian sensor dari 10 – 20
data pengujian yang diambil sebelumnya, munculkan garis trend hasil
pengujian (y = ax+b) !
6) Apakah ada perbedaan pengaplikasian ADC untuk Board Arduino
dengan Board ESP-32 / ESP-8266, jelaskan letak perbedaannya dan
apa dampaknya dalam membuat program berbasis mikrokontroler?

2
PRAKTIKUM UNIT 2
MIKROPROSESOR-MIKROKONTROLER DIGITAL ANALOG CONVERTER

LEMBAR KESIMPULAN SEMENTARA


NO. UNIT : 2 (DUA)
JUDUL UNIT : DIGITAL ANALOG CONVERTER (ADC)

NAMA MAHASISWA :
NIM :
KELAS :

TULISKAN KESIMPULAN SEMENTARA DARI PRAKTIKUM YANG SUDAH DILAKUKAN

Yogyakarta, ……………………………
Mahasiswa Praktikan Dosen / Laboran / Asisten

(…………...………………………….) (……………………………………..…….)

CATATAN :
LEMBAR INI WAJIB DIBAWA SETIAP UNIT PRAKTIKUM, SEBAGAI BUKTI PELAKSANAAN PRAKTIKUM !
2
PRAKTIKUM UNIT 3
MIKROPROSESOR-MIKROKONTROLER DISPLAY SEVEN SEGMENT &

PRAKTIKUM UNIT 3
DISPLAY SEVEN SEGMENT & LCD

Teori Singkat
A. Seven Segment
Seven Segment Display (7 Segment Display) dalam bahasa Indonesia disebut
dengan Layar Tujuh Segmen adalah komponen Elektronika yang dapat
menampilkan angka desimal melalui kombinasi-kombinasi segmennya. Seven
Segment Display pada umumnya dipakai pada Jam Digital, Kalkulator,
Penghitung atau Counter Digital, Multimeter Digital dan juga Panel Display
Digital seperti pada Microwave Oven ataupun Pengatur Suhu Digital.
Seven Segment Display memiliki 7 Segmen dimana setiap segmen dikendalikan
secara ON dan OFF untuk menampilkan angka yang diinginkan. Angka-angka
dari 0 (nol) sampai
9 (Sembilan) dapat ditampilkan dengan menggunakan beberapa kombinasi
Segmen. Selain 0 – 9, Seven Segment Display juga dapat menampilkan Huruf
Hexadecimal dari A sampai F. Segmen atau elemen-elemen pada Seven
Segment Display diatur menjadi bentuk angka “8” yang agak miring ke kanan
dengan tujuan untuk mempermudah pembacaannya. Pada beberapa jenis
Seven Segment Display, terdapat juga penambahan “titik” yang menunjukan
angka koma decimal. Terdapat beberapa jenis Seven Segment Display,
diantaranya adalah Incandescent bulbs, Fluorescent lamps (FL), Liquid Crystal Display
(LCD) dan Light Emitting Diode (LED).

Terdapat 2 Jenis LED 7 Segmen, diantaranya adalah “LED 7 Segmen common


Cathode” dan “LED 7 Segmen common Anode”

1. LED 7 Segmen Tipe Common Cathode (Katoda)


Pada LED 7 Segmen jenis Common Cathode (Katoda), Kaki Katoda pada
semua segmen LED adalah terhubung menjadi 1 Pin, sedangkan Kaki Anoda
akan menjadi Input untuk masing-masing Segmen LED. Kaki Katoda yang

2
PRAKTIKUM UNIT 3
MIKROPROSESOR-MIKROKONTROLER DISPLAY SEVEN SEGMENT &

terhubung menjadi 1 Pin ini merupakan Terminal Negatif (-) atau Ground
sedangkan Signal Kendali (Control Signal) akan diberikan kepada masing-
masing Kaki Anoda Segmen LED.

2
PRAKTIKUM UNIT 3
MIKROPROSESOR-MIKROKONTROLER DISPLAY SEVEN SEGMENT &

2. LED 7 Segmen Tipe Common Anode (Anoda)


Pada LED 7 Segmen jenis Common Anode (Anoda), Kaki Anoda pada semua
segmen LED adalah terhubung menjadi 1 Pin, sedangkan kaki Katoda akan
menjadi Input untuk masing-masing Segmen LED. Kaki Anoda yang terhubung
menjadi 1 Pin ini akan diberikan Tegangan Positif (+) dan Signal Kendali
(control signal) akan diberikan kepada masing- masing Kaki Katoda Segmen
LED.

Cara Kerja Seven Segment

Pada prinsipnya, menampilkan bilangan 0-9 bahkan huruf A-F pada seven
segmen cukup sederhana. Beberapa segmen dinyalakan secara bersamaan
hingga membentuk bilangan atau huruf yang ingin ditampilkan. Adapun
secara lengkap seperti pada tabel di bawah untuk menampilkan bilangan.

SEGMENT
ANGKA h g f e d c b a
0 0 0 1 1 1 1 1 1
1 0 0 0 0 0 1 1 0
2 0 1 0 1 1 0 1 1
3 0 1 0 0 1 1 1 1
4 0 1 1 0 0 1 1 0
5 0 1 1 0 1 1 0 1
6 0 1 1 1 1 1 0 1
7 0 0 0 0 0 1 1 1
8 0 1 1 1 1 1 1 1
9 0 1 1 0 1 1 1 1
Keterangan: 1 = ON (High); 0 = OFF (Low)

Untuk memudahkan dalam penggunaan seven segmen, digunakan dekoder untuk


mengendalikan seven segment. Blok Dekoder pada diagram diatas mengubah
sinyal Input yang diberikan menjadi 8 jalur yaitu “a” sampai “g” dan poin decimal
(koma) untuk meng-ON-kan segmen sehingga menghasilkan angka atau digit yang
diinginkan. Contohnya, jika output dekoder adalah a, b, dan c, maka Segmen LED
akan menyala menjadi angka “7”. Jika Sinyal Input adalah berbentuk Analog, maka
diperlukan ADC (Analog to Digital Converter) untuk mengubah sinyal analog

2
PRAKTIKUM UNIT 3
MIKROPROSESOR-MIKROKONTROLER DISPLAY SEVEN SEGMENT &

menjadi Digital sebelum masuk ke Input Dekoder. Jika Sinyal Input

2
PRAKTIKUM UNIT 3
MIKROPROSESOR-MIKROKONTROLER DISPLAY SEVEN SEGMENT &

sudah merupakan Sinyal Digital, maka Dekoder akan menanganinya sendiri tanpa
harus menggunakan ADC.

Fungsi daripada Blok Driver adalah untuk memberikan arus listrik yang cukup
kepada Segmen/Elemen LED untuk menyala. Pada Tipe Dekoder tertentu,
Dekoder sendiri dapat mengeluarkan Tegangan dan Arus listrik yang cukup
untuk menyalakan Segmen LED maka Blok Driver ini tidak diperlukan. Pada
umumnya Driver untuk menyalakan 7 Segmen ini adalah terdiri dari 8
Transistor Switch pada masing-masing elemen LED.
Modul TMP1637
TM-1637 (juga disebut Grove 4-Digit Display oleh Seeed Studio) adalah layar
7-segmen 4-digit yang dapat dengan mudah dikontrol dengan beberapa kabel
pada Arduino.
PIN CLK dan DIO dapat diatur ke pin apa saja di Arduino. Untuk mengatur
kecerahan, berikan nilai antara 0-7 ke tm.set().
Selanjutnya, menampilkan karakter dalam fungsi loop dengan 2 metode:
 tm.display(<posisi>, <karakter>); akan menampilkan karakter di layar. Posisi
mengacu pada angka yang ingin Anda ubah. Yang pertama adalah 0 dan
yang terakhir adalah 3.

 Karakter mengacu pada karakter yang ingin ditampilkan. 0-9 menampilkan


0-9 dan 10- 15 menampilkan A-F

Contoh menampilkan display “12:Ab”

2
PRAKTIKUM UNIT 3
MIKROPROSESOR-MIKROKONTROLER DISPLAY SEVEN SEGMENT &

B. LCD
Selain seven segment, modul penampil informasi atau display yang populer
digunakan adalah LCD (Liquid Crystal Display) yang umumnya pada aplikasi
Arduino jenisnya LCD text. Jenis lain dari LCD adalah LCD grafis, selain
menampilkan text juga dapat menampilkan grafis seperti tampilan gambar.

LCD text dibedakan berdasarkan ukuran display, yaitu jumlah kolom dan
barisnya. Ada LCD 20×4 (20 kolom 4 baris), LCD 8×2 (8 kolom 2 baris) , LCD
16×2 (16 kolom 2 baris). Semuanya mempunyai pin koneksi yang sama yaitu
16 pin dibagian atas LCD.

Tidak semua pin LCD yang jumlahnya 16 pin dihubungkan ke Arduino, cukup
beberapa saja :

2
PRAKTIKUM UNIT 3
MIKROPROSESOR-MIKROKONTROLER DISPLAY SEVEN SEGMENT &

Jadi cukup 6 pin saja yang terhubung dengan Arduino, yaitu pin RS, E, D4, D5,
D6 dan D7. Untuk tegangan LCD cukup dihubungkan dengan pin 5V dan GND
Arduino. Pin x maksudnya pin 0 – pin 13 pada Arduino UNO, namun pin
berapapun dapat digunakan, bahkan pin A0 – A5 juga juga dapat digunakan.
Adapun cara menghubungakan tidak perlu berurutan, yang utama pada
program Arduino disesuaikan koneksinya.

I2C pada Display LCD

Jika tanpa I2C maka sebuah LCD text akan memerlukan 6 pin Arduino (RS, E,
D4, D5, D6, D7), sedangkan jika memakai koneksi I2C cukup 2 pin saja : SDA
dan SCL. Kapan memerlukan koneksi I2C ?, ketika pada aplikasi Arduino
jumlah pin tidak cukup untuk sambungan LCD secara normal maka kita perlu
memakai modul tambahan yaitu modul Backpack I2C Module LCD.

Terdapat 16 pin male di bagian atasnya, nantinya dikoneksikan dengan LCD,


Dibagian samping kiri ada 4 pin koneksi yang nantinya dihubungkan dengan
Arduino.

2
PRAKTIKUM UNIT 3
MIKROPROSESOR-MIKROKONTROLER DISPLAY SEVEN SEGMENT &

Tujuan Praktikum

1. Mahasiswa mampu memahami cara kerja seven segment dan


mengkoneksikan display seven segment dengan arduino
menggunakan TM1637.
2. Mahasiswa mampu memahami cara kerja LCD dan mengkoneksikan
dengan arduino.

Alat dan Bahan

Alat:

1. Notebook/laptop/Personal Computer
2. Web Browser

(Wokwi.com) Bahan:

1. Modul Praktikum
2. Arduino Nano
3. Seven Segment TM1637
4. Modul LCD Display
5. Kabel Jumper

PERHATIAN !

Percobaan dilakukan menggunakan Web Browser – Wokwi.com dan atau


A. Percobaan 1 – Tampilan Display Seven Segment dengan TM1637
menggunakan modul praktikum yang disediakan.
(Penampil Angka & Huruf)
Langkah Percobaan:

1. Siapkan Alat dan Bahan


2. Buka Aplikasi Arduino IDE
3. Menyiapkan & Menginstall Library Modul TM1637

3
PRAKTIKUM UNIT 3
MIKROPROSESOR-MIKROKONTROLER DISPLAY SEVEN SEGMENT &

Driver pada Arduino IDE

Instal library TM1637 di Arduino IDE dengan masuk ke Sketch>Include


Library>Manage Libraries. Kemudian, ketik "TM1637" dan instal library
berlabel "Grove 4-Digit Display" oleh Seeed Studio.

Driver pada Wokwi.com

Setelah membuat project (menentukan board), klik pada library manager. Pada Icon
+, ketikkan library yang ingin digunakan yaitu Grove 4-Digit Display. Jika
muncul pilihan pada hasil pencarian, klik pada nama library. Library sudah
dapat digunakan.

3
PRAKTIKUM UNIT 3
MIKROPROSESOR-MIKROKONTROLER DISPLAY SEVEN SEGMENT &

4. Buatlah rangkaian seperti skematik di bawah ini

Pin Arduino Pin TM1637


D2 CLK
D3 DIO
+5V VCC
GND GND

3
PRAKTIKUM UNIT 3
MIKROPROSESOR-MIKROKONTROLER DISPLAY SEVEN SEGMENT &

5. Buatlah sketch program berikut

6. Verify/Compile Program & Upload program ke Board Arduino (Modul


#include
Praktikum), amati hasil simulasi percobaan.
<TM1637.h> int
7. Ubahlah nilai tm.display menjadi tahun angkatan kuliah.
CLK = 2;
intUbahlah
8. DIO = 3;nilai displayNumber menjadi 4 digit terakhir Nomer Induk
Mahasiswa
TM1637 tm(CLK,(NIM).
DIO);

9. Capture
void hasil
setup() { percobaan, lakukan analisis penggunaan TM1637 sebagai
// put your setup code here, to run
penampil
once: angka & karakter huruf dan
tm.init(); sertakan flowchart algoritma
program.
//set brightness;
0-7 tm.set(2);
}

void loop() {

// Menampilkan "12:ab"
// tm.display(position,
character); tm.display(0, 1);
tm.display(1, 2);
tm.point(1);
tm.display(2,
10);
tm.display(3,

11);

delay(1000);

// Menampilkan:
"1234"
displayNumber(1234);
delay(1000);
}

void displayNumber(int num) {

3
PRAKTIKUM UNIT 3
MIKROPROSESOR-MIKROKONTROLER DISPLAY SEVEN SEGMENT &

B. Percobaan 2 – Tampilan Display Seven Segment dengan TM1637


(Penampil Waktu)
Langkah Percobaan:
1. Skematik rangkaian seperti pada percobaan 1
2. Ubah sketch program pada percobaan 1 menjadi seperti kode di bawah ini

3. Verify/Compile Program & Upload program ke Board Arduino (Modul Praktikum),


#include
amati hasil
<TM1637.h> intsimulasi percobaan.
4. Ubahlah nilai waktu sesuai yang diinginkan, amati hasil simulasi.
CLK = 2;
5.
intJika
DIOprogram
= 3; diatas adalah versi Counter-Down/pencaca mundur (CountDown),
int waktu;
Buatlah versi Counter-Up/pencacah maju dari program diatas dengan nilai
awal 0 (nol). (Lanjutkan sebagai Tugas Rumah apabila belum selesai)
TM1637 tm(CLK, DIO);
6. Capture hasil percobaan, lakukan analisis penggunaan TM1637 sebagai
void setup() {
penampil
// waktu
put your dan
setup sertakan
code here, flowchart
to run algoritma program.
once: tm.init();

//set brightness;
0-7 tm.set(2);
}

void loop() {

// Menampilkan (Menit:Detik) =>


"15:30" for(waktu = 930; waktu >= 0;
waktu--){ displayTime(waktu);
delay(1000);
}
}

void displayTime(int second)


{ int minutes = second /
60; int seconds = second %
60;

tm.point(1);
tm.display(3, seconds % 10);
tm.display(2, seconds / 10 %

3
PRAKTIKUM UNIT 3
MIKROPROSESOR-MIKROKONTROLER DISPLAY SEVEN SEGMENT &

C. Percobaan 3 – Tampilan Sederhana Display


LCD Langkah Percobaan:
1. Siapkan Alat dan Bahan
2. Buka Aplikasi Arduino IDE atau Wokwi.com (Profile  MyProject  + New Project)
3. Menyiapkan & Menginstall Library LiquidCrystal I2C dari Frank de Brabander

3
PRAKTIKUM UNIT 3
MIKROPROSESOR-MIKROKONTROLER DISPLAY SEVEN SEGMENT &

4. Buatlah rangkaian seperti skematik di bawah ini

Pinout Pin Arduino


LCD – VCC +5V
LCD – GND GND
LCD – SDA A4
LCD - SCL A5
Potensio - Pin Tengah (Data ADC) A1

3
PRAKTIKUM UNIT 3
MIKROPROSESOR-MIKROKONTROLER DISPLAY SEVEN SEGMENT &

5. Buatlah sketch program di bawah ini:

#include <Wire.h>
#include <LiquidCrystal_I2C.h>
6. Verify/Compile Program & Upload program ke Board Arduino (Modul
LiquidCrystal_I2C lcd Klik
Praktikum) atau = LiquidCrystal_I2C(0x27, 16,
Tombol Play pada Wokwi.com, amati hasil
simulasi
2); int adc; percobaan.
float tegangan;
7. Hapuslah skrip program berikut, lakukan simulasi kemudian amati hasil
simulasi.
void setup() {
lcd.init();
lcd.backlight();
lcd.clear();
lcd.print("Praktikum Unit 3");
lcd.setCursor(0, 1);
lcd.print("Mikrokontroler");
delay(1000); Hapus 2 baris
lcd.clear(); kode
}
8. Capture hasil percobaan, lakukan analisis penggunaan sketch program
void loop() {
adc diatas
= analogRead(A1);
dan sertakan flowchart algoritma program.
tegangan = float (adc) * 5 /
1023; lcd.setCursor(0, 0);
lcd.print("Percobaan LCD");
lcd.setCursor(0, 1);
lcd.print("ADC:");
lcd.print(adc);
lcd.setCursor(9,
1);
lcd.print("V:");
lcd.print(tegangan)
; delay(500);
lcd.clear();

3
PRAKTIKUM UNIT 3
MIKROPROSESOR-MIKROKONTROLER DISPLAY SEVEN SEGMENT &

D. Percobaan 4 – Tampilan Menu Sederhana dengan Display LCD


(ThinkerCAD) Langkah Percobaan:
1. Buka wokwi.com, login menggunakan akun yang sudah dibuat.
2. Masuk Profile (Profile  MyProject)
3. Klik + New Project
4. Buat rangkaian seperti skematik di bawah ini.

Tabel Pinout Rangkaian Percobaan

Pinout LCD Pin Arduino


VSS (GND) GND
VDD +5V
RW GND
RS 2
E 7
D4 3
D5 4
D6 5
D7 6
PIN Potensio
VCC 1
VO 2
LED Kathode 3
Resistor 330
LED Anode
+ VCC

Komponen Lain Pin Arduino


Tombol 1 8
Tombol 2 9

Skematik Rangkaian Percobaan

3
PRAKTIKUM UNIT 3
MIKROPROSESOR-MIKROKONTROLER DISPLAY SEVEN SEGMENT &

Tabel Komponen yang digunakan pada simulasi ThinkerCAD

Skematik Rangkaian Percobaan dengan Wokwi.com

3
PRAKTIKUM UNIT 3
MIKROPROSESOR-MIKROKONTROLER DISPLAY SEVEN SEGMENT &

Sketch program:

#include

<LiquidCrystal.h>

#define pin_tombol1 8
#define pin_tombol2 9

LiquidCrystal
lcd(2,7,3,4,5,6); boolean
kondisi=LOW;
String teks="";

int intensitas, timer;


boolean tombol1,
tombol2;

void setup(){
pinMode(pin_tombol1,
INPUT_PULLUP);
pinMode(pin_tombol2,
INPUT_PULLUP); lcd.begin(16,2);
Serial.begin(38400);
lcd.print("Membuat Menu");
lcd.setCursor(0,1);

4
PRAKTIKUM UNIT 3
MIKROPROSESOR-MIKROKONTROLER DISPLAY SEVEN SEGMENT &

Sketch program (lanjutan):

5. Jalankan simulasi Web browser – Wokwi.com dengan Klik Tombol Play


void
Amati hasil simulasi percobaan pada Wokwi.com
6. loop(){
menu_sat
Analisis algoritma program diatas pada laporan,
7. u: sertakan flowchart
tombol1=digitalRead(pin_tombol1);
bagaimana program diatas bekerja.
tombol2=digitalRead(pin_tombol2);
if(tombol1==LOW)
{
lcd.clear();
goto
menu_dua;
delay(200);
}
if(tombol2==LOW)
{
timer++;
delay(200
);
}
lcd.setCursor(0,0);
lcd.print("Pilih
Timer:");
lcd.setCursor(0,1);
lcd.print(timer);
delay(1);
goto menu_satu;

menu_dua:
tombol1=digitalRead(pin_tombol1);
tombol2=digitalRead(pin_tombol2);
if(tombol1==LOW)
{
lcd.clear();
goto
menu_satu;
delay(200);
}
if(tombol2==LOW)
{
intensitas+
+;
delay(200);
}
lcd.setCursor(0,0);
lcd.print("Pilih

4
PRAKTIKUM UNIT 3
MIKROPROSESOR-MIKROKONTROLER DISPLAY SEVEN SEGMENT &

PERTANYAAN
(Sertakan dalam Laporan Praktikum, dapat digabung dengan analisis ataupun dibuat
terpisah)

1. Pada percobaan aplikasi TM1637, terdapat script berikut:


void displayNumber(int num) {
tm.display(3, num % 10);
tm.display(2, num / 10 % 10);
tm.display(1, num / 100 % 10);
tm.display(0, num / 1000 % 10);
}

Apa fungsi dan bagaimana cara kerja dari script di atas, sehingga
dapat menghasilkan nilai tampilan yang dikehendaki ? (Lengkapi
dengan perhitungan dari simulasi nilai yang ditampilakan)

2. Pada script program berikut, lcd.setCursor(0, 0); jika formatnya seperti


(a, b), apa fungsi dari a maupun b pada script tersebut?
3. Apakah fungsi dari delay (500); lcd.clear(); , apa dan jelaskan
dampaknya jika 2 baris itu dihapus dari program?
4. Jelaskan perbedaan percobaan 2 display pada praktikum ini, baik
perbedaan fisik maupun perbedaan program !

4
PRAKTIKUM UNIT 3
MIKROPROSESOR-MIKROKONTROLER DISPLAY SEVEN SEGMENT &

LEMBAR KESIMPULAN SEMENTARA


NO. UNIT : 3 (TIGA)
JUDUL UNIT : DISPLAY SEVEN SEGMENT & LCD

NAMA MAHASISWA :
NIM :
KELAS :

TULISKAN KESIMPULAN SEMENTARA DARI PRAKTIKUM YANG SUDAH DILAKUKAN

Yogyakarta, ……………………………
Mahasiswa Praktikan Dosen / Laboran / Asisten

(…………...………………………….) (……………………………………..…….)

CATATAN :
LEMBAR INI WAJIB DIBAWA SETIAP UNIT PRAKTIKUM, SEBAGAI
4 BUKTI PELAKSANAAN PRAKTIKUM !
PRAKTIKUM UNIT 4
MIKROPROSESOR-MIKROKONTROLER TIMER

PRAKTIKUM UNIT 4
TIMER/COUNTER

Teori Singkat
A. Timer/Counter
Timer/Counter adalah seperangkat pencacah biner (binary counter) yang
terhubung langsung ke saluran data mikrokontroler, sehingga mikrokontroler bisa
membaca kondisi pencacah dan bila diperlukan mikrokontroler dapat pula
merubah kondisi pencacah tersebut.

Saat sinyal clock yang diberikan sudah melebihi kapasitas pencacah, maka
pencacah akan memberikan sinyal overflow/limpahan. Limpahan pencacah ini
dicatat dalam suatu register.

Timer pada dasarnya hanya menghitung pulsa clock. Frequensi pulsa clock yang
dihitung tersebut sama dengan frequensi kristal yang dipasang atau dapat
diperlambat menggunakan prescaler dengan faktor 8, 64, 256 atau 1024.

Sinyal clock yang diberikan ke pencacah dibedakan menjadi 2 macam :

•Sinyal Clock dengan frekuensi tetap yang sudah diketahui besarnya


pencacah bekerja sebagai Timer (Pewaktu), karena kondisi pencacah tsb
setara dengan waktu yang bisa ditentukan secara pasti.

• Sinyal Clock dengan frekuensi yang bisa bervariasi pencacah bekerja


sebagai Counter(Pencacah), kondisi pencacah tersebut menyatakan
banyaknya pulsa clock yang sudah diterima.

Sebuah pewaktu (timer) merupakan bagian dari mikrokontroler yang berperan


sebagai clock internal untuk mengukur waktu suatu event. Untuk timer dapat diatur
dengan menggunakan beberapa register khusus.

Pada firmware Arduino semua timer memiliki konfigurasi frekuensi 1 kHz dengan
enable interrupt. Berikut ini timer khusus untuk Arduino.

 Timer0, 8 bit, digunakan untuk function seperti delay(), millis(), dan


micros(), dengan mengubah konfigurasi Timer0 akan mempengaruhi
function lainnya

 Timer1, 16 bit, biasa digunakan untuk aplikasi terkait motor servo

 Timer2, 8 bit, function tone() menggunakan Timer2

Selain tiga pewaktu tersebut, terdapat juga Timer3, Timer4, dan Timer5,
semuanya 16 bit, untuk board Arduino Mega.

4
PRAKTIKUM UNIT 4
MIKROPROSESOR-MIKROKONTROLER TIMER

Gambar a) Diagram Timer 8 Bit, b) Diagram Timer 16Bit

Register-register Timer :

 TCNT (Timer/Counter Register) berfungsi sebagai register pencacah dari 0


sampai nilai maximum yang kita tentukan (8 bit – 0 sd 255 dan 16 bit – 0 sd
65535).

 TCCR (Timer/Counter Control Register) berfungsi untuk pengaturan mode


operasi timer/Counter. Register ini menyimpan bit-bit kontrol utama timer
dan digunakan untuk mengontrol prescaler timer. Ini juga memungkinkan
untuk mengontrol mode pengatur waktu menggunakan bit WGM.
Pengaturan dapat dilakukan dengan setting register berikut:

4
PRAKTIKUM UNIT 4
MIKROPROSESOR-MIKROKONTROLER TIMER

Bit CS12, CS11, CS10 dalam TCCR1B menetapkan nilai prescaler. Prescaler
digunakan untuk mengatur kecepatan clock timer. Arduino Uno memiliki
prescaler 1, 8, 64, 256, 1024.

 TIMSK (Timer/Counter Interrupt Mask Register) berfungsi untuk memilih


Timer/Counter mana yang aktif.

 TIFR (Timer/Counter Interrupt Flag Register) berfungsi untuk mengetahui


adanya interupsi akibat operasi Timer/Counter.

 OCR (Output Compare Register) berfungsi untuk menyimpan nilai


pembanding dengan nilai pada register TCNT. Formula yang dapat
digunakan dalam menentukan interval waktu timer menggunakan OCR
yaitu

4
PRAKTIKUM UNIT 4
MIKROPROSESOR-MIKROKONTROLER TIMER

Keterangan:

Clock Speed – Clock Utama Mikrokontroler, 16 Mhz untuk Atmega 328 pada
arduino Uno dan Nano

Prescaler Value – nilai pembagi Clock Utama, yaitu faktor 8, 64, 256, atau 1024

Desired time in second – interval waktu yang akan dibuat

dengan timer Mode-mode operasi timer:

 Mode Normal - Timer digunakan untuk menghitung saja, membuat delay, menghitung
selang waktu.

 Mode PWM, phase correct - Memberikan bentuk gelombang phase correct


PWM resolusi tinggi. Mode phase correct PWM berdasarkan operasi
dualslope. Counter menghitung berulang-ulang dari BOTTOM ke MAX dan
dari MAX ke BOTTOM.

 CTC (clear timer on compare match) - Pada mode CTC, nilai timer yang ada
pada TCNTn akan dinolkan lagi jika TCNTn sudah sama dengan nilai yang
ada pada register OCRn, sebelumnya OCR diset dulu, karena timer 0 dan 2
maksimumnya 255, maka range OCR 0-255.

 Fast PWM - Memberikan pulsa PWM frekuensi tinggi. Fast PWM berbeda
dengan mode PWM lain, fast PWM berdasarkan operasi single slope.
Counter menghitung dari BOTTOM hingga TP kemudian kembali lagi mulai
menghitung berawal dari BOTTOM.

4
PRAKTIKUM UNIT 4
MIKROPROSESOR-MIKROKONTROLER TIMER

B. Interupt (Interupsi)
Interupsi berguna untuk membuat sesuatu terjadi secara otomatis dalam
program mikrokontroler dan dapat membantu memecahkan masalah waktu.
Contoh penggunaan interupsi adalah membaca rotary encoder, atau memantau
masukan(input) pengguna. Menggunakan interupsi dapat membebaskan
mikrokontroler untuk menyelesaikan beberapa pekerjaan lain tanpa kehilangan
input. Interupsi dianalogikan sebagai perintah program dengan prioritas tinggi,
sehingga pada saat terjadi interpusi atau sistem menerima sinyal dari fitur
interupsi, maka akan di eksekusi lebih dahulu kemudian kembali ke rutin program
seperti sediakala. Fitur Timer diatas juga salah satu bagian dari interupsi, selain
timer terdapat interupsi eksternal melalui pin khusus yang ada di mikrokontroler
seperti pada tabel di bawah ini

Syntax

attachInterrupt(digitalPinToInterrupt(pin), ISR, mode) (recommended)


attachInterrupt(interrupt, ISR, mode) (not recommended)
attachInterrupt(pin, ISR, mode) (Not recommended). Additionally, this syntax
only works on Arduino SAMD Boards, Uno WiFi Rev2, Due, and 101.)

Parameters

interrupt: the number of the interrupt. Tipe data yang diperbolehkan int.

pin: nomer pin pada Arduino.

4
PRAKTIKUM UNIT 4
MIKROPROSESOR-MIKROKONTROLER TIMER

ISR: ISR untuk memanggil ketika interupsi terjadi; fungsi ini tidak boleh mengambil parameter
dan tidak mengembalikan apa pun. Fungsi ini kadang-kadang disebut sebagai rutinitas
layanan interupsi (interrupt service routine).

mode: menentukan kapan interupsi harus dipicu.Empat konstanta telah ditentukan sebelumnya
sebagai nilai yang valid:

 LOW memicu interupsi setiap kali pin LOW,,


 CHANGE untuk memicu interupsi setiap kali nilai pin berubah
 RISING ntuk memicu saat pin bergerak dari LOW ke HIGH,
 FALLING saat pin berpindah dari HIGH ke

LOW. The Due, Zero and MKR1000 boards allow also:

 HIGH memicu interupsi setiap kali pin HIGH.

Contoh Program dengan Interupt (Interupsi)

ISR dalam hal ini dipanggil dari sebuah fungsi void blink(), sehigga setiap sinyal
interupsi yang diterima dengan mode CHANGE, akan mengaktifkan fungsi void
blink().

4
PRAKTIKUM UNIT 4
MIKROPROSESOR-MIKROKONTROLER TIMER

Tujuan Praktikum
1. Mahasiswa mampu memahami prinsip kerja dan cara kerja counter serta
fitur interupt (interupsi) pada mikrokontroler.

2. Mahasiswa mampu memahami prinsip kerja dan cara kerja fitur timer
(tanpa delay) pada mikrokontroler.

Alat dan Bahan


Alat:
1. Notebook/laptop/Personal Computer
2. Web Browser (ThinkerCAD)

Bahan:
1. Modul Praktikum
2. Arduino Nano
3. Tombol
4. Lampu LED
5. Resistor
6. Kabel Jumper

PERHATIAN !

Percobaan dilakukan menggunakan Web Browser – ThinkerCAD dan atau


menggunakan modul praktikum yang disediakan.

A. Percobaan 1 – Counter tanpa Interupt

Langkah Percobaan:
1. Siapkan Alat dan Bahan serta catat spesifikasinya.
2. Buatlah rangkaian seperti skematik di bawah ini:

4
PRAKTIKUM UNIT 4
MIKROPROSESOR-MIKROKONTROLER TIMER

Tabel Konfigurasi Rangkaian Percobaan

Pin Arduino
Komponen I/O Nano/Uno
Tombol 1 Pin D7
Tombol 2 Pin D6
LED 1 Pin D13
LED 2 Pin D12
LED 3 Pin D11

4
PRAKTIKUM UNIT 4
MIKROPROSESOR-MIKROKONTROLER TIMER

3. Buat pemrograman di Arduino IDE/ThinkerCAD seperti di


bawah ini Sketch program:
const int
plus_state=7; const
int minus_state=6; int
nilai_counter=0;

void setup()
{
Serial.begin(9600)
; pinMode(13,
OUTPUT);
pinMode(12,
OUTPUT);
pinMode(11,
OUTPUT);
pinMode(plus_state,
INPUT_PULLUP);
pinMode(minus_state,
INPUT_PULLUP);
}

void loop()
{
int tombol_plus= digitalRead(plus_state);
int tombol_minus=
digitalRead(minus_state);
if(tombol_plus==LOW){
nilai_counter++;
}

else
if(tombol_minus==LOW){
nilai_counter--;
}

if(nilai_counter>6){
nilai_counter=0;
}

if(nilai_counter>4){
digitalWrite(13,
HIGH);
digitalWrite(12,
LOW);
digitalWrite(11,
LOW);
}

else if (nilai_counter<=4 &&


nilai_counter>2){ digitalWrite(13, LOW);
digitalWrite(12,
HIGH);
digitalWrite(11,

5
PRAKTIKUM UNIT 4
MIKROPROSESOR-MIKROKONTROLER TIMER

4. Verify/Compile Program & Upload program ke Board Arduino (Modul


Praktikum) atau Jalankan simulasi thinkerCAD (Web browser –
ThinkerCAD)
5. Buka Tab serial monitor pada Arduino IDE / ThinkerCAD untuk melihat data
6. Ambil Data dan isikan pada tabel berikut:

Kondisi [State] Data Nilai Dokumentasi


NO
Tombol 1 Tombol 2 Counter LED (ON/OFF)
1 Tekan −
2 Lepas −
3 Tekan −
4 Lepas −
5 Tekan −
6 Lepas −
7 − Tekan
8 − Lepas
9 − Tekan
10 − Lepas
11 − Tekan
12 − Lepas

B. Percobaan 2 – Counter dengan Interupt

(Tombol/Sensor) Langkah Percobaan:


1. Siapkan Alat dan Bahan serta catat spesifikasinya.
2. Buatlah rangkaian seperti skematik di bawah ini:

Tabel Konfigurasi Rangkaian


Percobaan
Pin Arduino
Komponen I/O Nano/Uno
Tombol 1 Pin D2
LED 1 Pin D13
LED 2 Pin D12
LED 3 Pin D11

5
PRAKTIKUM UNIT 4
MIKROPROSESOR-MIKROKONTROLER TIMER

3. Buat pemrograman di Arduino IDE/ThinkerCAD seperti di


bawah ini Sketch program:

const int
4. Verify/Compile Program & Upload program ke Board Arduino (Modul
interupt_pin=2; int
Praktikum) atau Jalankan
nilai_counter=0; simulasi thinkerCAD (Web browser –
ThinkerCAD)
void setup()
5. {Buka Tab serial monitor pada Arduino IDE / ThinkerCAD untuk melihat data
Serial.begin(9600)
6. Ambil Data Mode CHANGE dan isikan pada tabel berikut:
; pinMode(13,
OUTPUT);
pinMode(12,
OUTPUT);
pinMode(11,
OUTPUT);
pinMode(interupt_pin, INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(interupt_pin),
counter_eksternal, CHANGE);
}

void loop(){

if(nilai_counter>4){
digitalWrite(13,
HIGH);
digitalWrite(12,
LOW);
digitalWrite(11,
LOW);
}

else if (nilai_counter<=4 &&


nilai_counter>2){ digitalWrite(13, LOW);
digitalWrite(12,
HIGH);
digitalWrite(11,
LOW);
}
else if (nilai_counter<=2 &&
nilai_counter>0){ digitalWrite(13, LOW);
digitalWrite(12,
LOW);
digitalWrite(11,
HIGH);
}
Serial.print("Nilai Counter=
");

5
PRAKTIKUM UNIT 4
MIKROPROSESOR-MIKROKONTROLER TIMER

Mode: CHANGE
Kondisi [State] LED State Dokumentasi
No Data Counter
Tombol Interupsi (ON/OFF) LED (ON/OFF)
1 Tekan
2 Lepas
3 Tekan
4 Lepas
5 Tekan
6 Lepas
7 Tekan
8 Lepas
9 Tekan
10 Lepas

7. Ulangi pengambilan data untuk Mode RISING dan FALLING isikan


pada tabel berikut:
Mode: RISING
Kondisi [State] LED State Dokumentasi
No Data Counter
Tombol Interupsi (ON/OFF) LED (ON/OFF)
1 Tekan
2 Lepas
3 Tekan
4 Lepas
5 Tekan
6 Lepas
7 Tekan
8 Lepas
9 Tekan
10 Lepas

Mode: FALLING
Kondisi [State] LED State Dokumentasi
No Data Counter
Tombol Interupsi (ON/OFF) LED (ON/OFF)
1 Tekan
2 Lepas
3 Tekan
4 Lepas
5 Tekan
6 Lepas
7 Tekan
8 Lepas
9 Tekan
10 Lepas

5
PRAKTIKUM UNIT 4
MIKROPROSESOR-MIKROKONTROLER TIMER

TUGAS ANALISIS – COUNTER

1. Jelaskan Perbedaan Percobaan 1 – Counter Tanpa Interupt dengan Percobaan 2


– Counter dengan Interupt !
2. Sebutkan dan jelaskan penggunaan masing-masing percobaan
ditinjau dari perbedaannya di atas dan aplikasinya pada sistem
mikrokontroler !

C. Percobaan 3 – Timer dan

Prescaler Langkah Percobaan:


1. Siapkan Alat dan Bahan serta catat spesifikasinya.
2. Buatlah rangkaian seperti skematik di bawah ini:

Tabel Konfigurasi Rangkaian Percobaan

Pin Arduino
Komponen I/O Nano/Uno
Tombol 1 Pin D7
Tombol 2 Pin D6
LED 1 Pin D13

5
PRAKTIKUM UNIT 4
MIKROPROSESOR-MIKROKONTROLER TIMER

3. Buat pemrograman di Arduino IDE/ThinkerCAD seperti di


bawah ini Sketch program:
#define ledPin 13

//Preload timer value


float value = 3035; (3035 for 4 seconds)

void setup()

{
Serial.begin(9600); pinMode(ledPin, OUTPUT); pinMode(7,INPUT_PULLUP); pinMode(6

noInterrupts(); interrupts
TCCR1A = 0;
TCCR1B = 0;
TCNT1 = value; // disable all
TCCR1B |= (1 << CS10)|(1 << CS12); TIMSK1 |= (1 << TOIE1);
interrupt ISR interrupts();
// preload timer
// 1024 prescaler
// enable timer overflow

// enable all interrupts

Lanjutan Kode Program

ISR(TIMER1_OVF_vect) routine for overflow


// interrupt service

{
TCNT1 = value;// preload
timer
digitalWrite(ledPin, digitalRead(ledPin) ^ 1);
}

void loop()
{
if(digitalRead(7) == LOW)
{
value = value+1000; //Incement preload value
}

if(digitalRead(6)== LOW)
{
value = value-1000;//Decrement preload value
}
Serial.print("TCNT1= "); Serial.print(TCNT1); Serial.print(" "); Serial.print(

5
PRAKTIKUM UNIT 4
MIKROPROSESOR-MIKROKONTROLER TIMER

4. Verify/Compile Program & Upload program ke Board Arduino (Modul


Praktikum) atau Jalankan simulasi thinkerCAD (Web browser –
ThinkerCAD)
5. Buka Tab serial monitor pada Arduino IDE / ThinkerCAD untuk melihat data.

6. Tekan tombol 1 atau tombol 2 untuk mengubah nilai Preloader.

7. Tentukan interval waktu timer yang diinginkan (0 sd 4,19 detik)


8. Ambil Data dan isikan pada tabel berikut:

Set
Interval Timer (Detik)
Preloader
Set Preloader = (65535 - ((16x10^6 Hz x Interval Timer)/Prescaler)
Nilai LED State
Detik (Stopwatch) Nilai TCNT
Preloader (ON/OFF)
1
2
3
4
5
6
7
8

9. Ambil 2 atau 3 Interval Waktu untuk analisa data dan cara kerja timer
dalam bentuk tabel seperti pada data pertama

D. Percobaan 4 – Timer untuk Algoritma Jam

Digital Langkah Percobaan:


1. Skema Rangkaian seperti pada percobaan 3
2. Buat pemrograman di Arduino IDE/ThinkerCAD seperti di bawah ini

5
PRAKTIKUM UNIT 4
MIKROPROSESOR-MIKROKONTROLER TIMER

Sketch program:

const int ledPin


3. Verify/Compile =
Program & Upload program ke Board Arduino (Modul
13; int detik = 0;
Praktikum)
int menitatau Jalankan
= 59, jam = simulasi
23; thinkerCAD (Web browser –
float preloader_timer =
ThinkerCAD)
49910; void setup()
{ Tab serial monitor pada Arduino IDE / ThinkerCAD untuk melihat data.
4. Buka
Serial.begin(9600);
pinMode(ledPin,
OUTPUT);

noInterrupts(
); TCCR1A =
0;
TCCR1B = 0;
TCNT1 = preloader_timer;
TCCR1B |= (1 << CS10) | (1 <<
CS12); TIMSK1 |= (1 << TOIE1);
interrupts();
}

ISR(TIMER1_OVF_vect)
{
TCNT1 =
preloader_timer;
detik++;
digitalWrite(ledPin, digitalRead(ledPin) ^ 1);
}

void loop() {

if (detik >= 59)


{
menit++;
detik =
0;
}
if (menit > 59)
{
jam++;
menit =
0;
}
if (jam > 23)
{
jam = 0;
}
Serial.print("Jam: ");
Serial.print(jam);

5
PRAKTIKUM UNIT 4
MIKROPROSESOR-MIKROKONTROLER TIMER

TUGAS ANALISIS – TIMER


1. Apa fungsi prescaler dalam fitur timer yang di praktikan pada percobaan?
2. Apa manfaat menggunakan fitur timer pada percobaan algoritma
jam digital dibanding dengan menggunakan fitur delay()?
3. Fitur kemudahan apa saja yang ditawarkan library TimerOne dibanding
mode timer asli chip atmega pada arduino?
4. Skala waktu yang digunakan pada timer initialize library TimerOne?

5
PRAKTIKUM UNIT 4
MIKROPROSESOR-MIKROKONTROLER TIMER

LEMBAR KESIMPULAN SEMENTARA


NO. UNIT : 4 (EMPAT)
JUDUL UNIT : TIMER COUNTER

NAMA MAHASISWA :
NIM :
KELAS :

TULISKAN KESIMPULAN SEMENTARA DARI PRAKTIKUM YANG SUDAH DILAKUKAN

Yogyakarta, ……………………………
Mahasiswa Praktikan Dosen / Laboran / Asisten

(…………...………………………….) (……………………………………..…….)

CATATAN :
LEMBAR INI WAJIB DIBAWA SETIAP UNIT PRAKTIKUM, SEBAGAI
5 BUKTI PELAKSANAAN PRAKTIKUM !

Anda mungkin juga menyukai