Anda di halaman 1dari 13

LAPORAN PRAKTIKUM 2

MIKROPROSESOR
COUNTER/TIMER ARDUINO

Nama : Dinda Findya


NIM : 20193010054
Kelas : TEM A
Dosen Pengampu : Hanifah Rahmi Fajrin, S.T., M.Eng.

LABORATORIUM MIKROKONTROLER
PROGRAM STUDI TEKNOLOGI ELEKTRO-MEDIS
PROGRAM VOKASI
UNIVERSITAS MUHAMMADIYAH YOGYAKARTA
2021
PRAKTIKUM 2
COUNTER/TIMER ARDUINO

I. Dasar Teori
Timer dan Counter merupakan fitur yang telah tertanam di mikrokontroler AVR yang
memiliki fingsi terhadap waktu. Fungsi pewaktu yang dimaksud disini adalah penentuan
kapan program tersebut dijalankan, tidak hanya itu saja fungsi timer yang lainnya adalah
PWM, ADC, dan Oscillator. Prinsip kerja timer dengan cara membagi frekuensi (prescaler)
pada clock yang terdapat pada mikrokontroler sehingga timer dapat berjalan sesuai dengan
frekuensi yang dikehendaki.
Timer merupakan fungsi waktu yang sumber clocknya berasal dari clock internal.
Sedangkan counter merupakan fungsi perhitungan yang sumber clocknya berasal dari external
mikrokontroler. Salah satu contoh penggunaan fungsi timer yaitu pada jam digital yang
sumber clocknya bisa menggunakan crystal oscillator dan contoh penggunaan counter pada
penghitung barang pada konveyor yang sumber clocknya berasal dari sensor yang mendeteksi
barang tersebut

II. Tujuan Praktikum


Mahasiswa mampu memahami cara mengaplikasikan fungsi counter dan timer pada
arduino

III. Alat dan Bahan


A. Alat
1. Komputer/Laptop
2. Web browser
3. Software Tinkercad
4. Modul praktikum
B. Bahan
1. LED
2. Push Button
3. Arduino
4. Resistor

IV. Langkah Percobaan


1) Hidupkan laptop
2) Siapkan Tinkercad
3) Tekan Circuit dan Start Circuit
4) Siapkan bahan yang digunakan
5) Buat rangkaian arduino
6) Masukan code
7) Start Simulation
8) Lalu ambil gambar praktikum dengan screenshot

V. Hasil Praktikum
A. Percobaan 1

Gambar 1. Percobaan Pertama


Penjelasannya ketika percobaan pertama dilakukan rangkaian menggunakan 1 buah
1 LED, 1 buah Push Button, 1 Arduino nano dan 1 buat Resistor dengan cara kerja yang
dimana led akan menyala saat push button ditekan dan akan menghitung jumlah yang
ditekan
B. Percobaan 2

Gambar 2. Percobaan Kedua


Penjelasan pada gambar diatas, pada percobaan kedua dilakukan rangkaian
menggunakan 1 buah 1 LED, 1 aruduino Uno, 1 Function Generator dan 1 buat Resistor
dengan cara kerja yang dimana pada serial monitor akan menghitung dari angka 1 dengan
menggunakan function generator bertambahnya angka ditandakan dengan led yang
menyala

C. Percobaan 3
Gambar 3. Percobaan Ketiga

Penjelasan pada gambar diatas, percobaan keempat dilakukan rangkaian


menggunakan 1 resistor, 1 LED, dan 1 Arduino nano dengan cara kerja yang dimana pada
serial monitor sudah bertuliskan jam , menit dan detik kemudian akan menghitung dari
waktu sampai seterusnya dan led menandakan jumlah angka pada serial monitor.

D. Percobaan 4
Gambar 4. Percobaan Keempat

Penjelasan pada gambar diatas, percobaan keempat dilakukan rangkaian


menggunakan 1 resistor, 1 LED, dan 1 Arduino nano dengan cara kerja yang dimana pada
serial monitor sudah bertuliskan jam , menit dan detik kemudian akan menghitung dari
waktu sampai seterusnya dan led menandakan jumlah angka pada serial monitor.

E. Percobaan 5
Gambar 5. Percobaan Kelima

Penjelasan gambar diatas, percobaan kelima dilakukan rangkaian menggunakan 1


Push Button dan 1 Arduino nano dengan cara kerja yang dimana pada serial monitor sudah
bertuliskan jam, menit dan detik akan menghitung waktu sampai seterusnya dan led
menandakan jumlah angka pada serial monitor.

VI. Analisis
A. Percobaan 1
Kode program dan penjelasan perbaris program :

int data;
void setup()
{
Serial.begin(9600);
pinMode(12, INPUT_PULLUP);
pinMode(2, OUTPUT);
}
void loop()
{
if(digitalRead(12) == LOW)
{
data++;
Serial.println(data);
digitalWrite(2, HIGH);
delay(200);
digitalWrite(2, LOW);
}
}

Keterangan :
int = menyatakan tipe data dan integer (bilangan bulat)
Void setup = sebagai library dan hanya akan dijalankan sekali
PinMode = sebagai mengkonfigurasi pin tertentu
Serial.begin(9600) = sebagai penggunaan serial monitor
Void loop = menjalankan program yang dibuat dan dijalankan berulang-ulang
Serial.println(data) = mengirim data ke port serial dan menampilkannya
digitalWrite = mengeluarkan logika 1 atau logika 0
delay = sebagai waktu yang diberikan logika 1 atau logika 0

B. Percobaan 2
Kode program dan penjelasan perbaris program :

int detik, menit, jam;

void setup() {

Serial.begin(9600);

pinMode(13, OUTPUT);

void loop() {

digitalWrite(13, HIGH);

delay(500);

digitalWrite(13, LOW);

detik++;

if(detik >=60)

menit++;
detik=0;

if(menit>60)

jam++;

menit=0;

if(jam>24)

jam=0;

Serial.print("jam: ");

Serial.print(jam);

Serial.print(" menit: ");

Serial.print(menit);

Serial.print(" detik: ");

Serial.println(detik);

delay(500);

Keterangan :

int = menyatakan tipe data dan integer (bilangan bulat)


Void setup = sebagai library dan hanya akan dijalankan sekali
PinMode = sebagai mengkonfigurasi pin tertentu
Serial.begin(9600) = sebagai penggunaan serial monitor
Void loop = menjalankan program yang dibuat dan dijalankan berulang-ulang
Serial.println(data) = mengirim data ke port serial dan menampilkannya
digitalWrite = mengeluarkan logika 1 atau logika 0
delay = sebagai waktu yang diberikan logika 1 atau logika 0

C. Percobaan 3
1. Kode program dan penjelasan perbaris program
void setup() {
pinMode(7, OUTPUT);
pinMode(3, INPUT_PULLUP);
}
void loop() {
if (digitalRead(3)==LOW) {
digitalWrite(7, HIGH);
}
if (digitalRead(3)==HIGH) {
digitalWrite(7, LOW);
}}

Keterangan :
Void setup = sebagai library dan hanya akan dijalankan sekali
PinMode = sebagai mengkonfigurasi pin tertentu
Void loop = menjalankan program yang dibuat dan dijalankan berulang-ulang
digitalRead = membaca logika 1 atau logika 0
digitalWrite = mengeluarkan logika 1 atau logika 0
if = sebegai penunjuk “jika”. Contoh, jika 7 HIGH maka 3 LOW

2. Flowchart

Mulai

Push Button ditekan

Led nyala Led mati

Push Button dilepas


3. Penjelasan cara kerja program yang dibandingkan dengan hasil praktikum
Ketika rangkaian kedua disimulasikan, dengan menekan push button maka LED akan
hidup, sedangkan jika push button dilepas atau tidak ditekan maka LED akan langsung
mati.

VII. Kesimpulan

Dari praktikum ini dapat ditarik kesimpulan bahwa void setup merupakan tempat untuk
memberikan program atau perintah dalam penyetelan penggunaan pin arduino dengan proses
pembcaan program hanya dilakukan sekali, sedangkan void loop dapat diberi sebuah program pada
arduino dan akan dibaca berurutan tetapi setelah mencapai akhir program maka arduino akan
kembali membaca program dari awal lagi, sehingga LED akan hidup bergantian secara terus
menerus ketika program atau arduino dijalankan dan akan mati ketika program atau arduino
dimatikan. Hal ini dapat dilihat bahwa pada percobaan pertama merupakan program void setup
sedangkan percobaan kedua merupakan void loop.

VIII. Lampiran
1. Tugas 1
Membuat LED 1-5 berkedip secara bergantian menggunakan fungsi for
// C++ code
//
void setup() {
for(int pin_LED = 1; pin_LED < 6; pin_LED++){
pinMode(pin_LED, OUTPUT);
}
}

void loop() {
for (int pin_LED = 1; pin_LED < 6; pin_LED++){
digitalWrite(pin_LED, HIGH); //Membuat lampu LED aktif
delay(1000); //Memberikan jeda selama 1 detik
digitalWrite(pin_LED, LOW); //Membuat lampu LED non-aktif
}

2. Tugas 2
Membuat rangkaian 2 push button dan 1 LED, push button satu untuk menghidupkan

const int buttonPin1 = 2; // first push button


const int ledPin1 = 13; // LED
const int buttonPin2 = 4; // second push button
int lastPin1State,lastPin2State;
void setup()
{
pinMode(buttonPin1, INPUT);
pinMode(ledPin1, OUTPUT);
pinMode(buttonPin2,INPUT);
}
void loop()
{
// read the pushbutton input pin:
int pin1State = digitalRead(buttonPin1);
int pin2State = digitalRead(buttonPin2);
if (pin1State == HIGH && lastPin1State == LOW && pin2State == LOW )
{
digitalWrite(ledPin1,HIGH);
}
if (pin2State == HIGH && lastPin2State == LOW && pin1State == LOW)
{
digitalWrite(ledPin1,LOW);
}
lastPin1State = pin1State;
lastPin2State = pin2State;
delay(10);
}

Anda mungkin juga menyukai