Anda di halaman 1dari 18

LAPORAN LABORATORIUM

MIKROKONTROLER DAN ANTARMUKA


NOMOR PERCOBAAN

: P2

JUDUL PERCOBAAN

: ANTARMUKA SWITCH

KELAS / KELOMPOK

: TT-4A / A2

NAMA ANGGOTA KELOMPOK

: 1. AULIA RAHMA PUTRI


2. DINY RETNO
3. MONICA SAGITA
4. YOHANES PAOLO PAGAR S

PELAKSANAAN PRAKTIKUM

: 25 FEBRUARI 2016

PENYERAHAN LAPORAN

: 1 MARET 2016

JURUSAN TEKNIK ELEKTRO


PROGRAM STUDI TEKNIK TELEKOMUNIKASI
POLITEKNIK NEGERI JAKARTA
2016
1. P2.1 On/Off

Rangkaian Skematik

Cara Kerja Aplikasi

Sketch
//Program untuk meng-on/off-kan LED dengan push button switch
int ledPin = 13; //pilih pin untuk LED
int switchPin = 2; //pilih pin untuk push button switch
int val = 0;
//variabel untuk menyimpan posisi switch
void setup()
{
pinMode(ledPin, OUTPUT); //ledPin sebagai output
pinMode(switchPin, INPUT); //switchPin sebagai input
}

void loop()
{
val = digitalRead(switchPin); //baca dan simpan posisi switch
if(val==LOW) //cek apakah switch closed (LOW)?
{
digitalWrite(ledPin,HIGH); //jika ya, LED->ON
}
else //jika tidak, switch open(HIGH)
{
digitalWrite(ledPin, LOW); //LED->OFF
}
}
Analisa Sketch
Pada percobaan P2.1 adalah untuk membuat LED nyala padam dengan menggunakan
tombol saklar. Pin 13 adalah ledPin yang berfungsi sebagai output dan pin 2 adalah
switchPin yang berfungsi sebagai input. Command yang digunakan untuk membaca dan
menyimpan posisi switch adalah digitalRead. Pada percobaan ini pin digital yang
Praktek Mikrokontroler dan Antarmuka | Antarmuka Switch

digunakan, maka commandnya adalah digitalWrite. Pada saat posisi digitalWrite HIGH
maka LED akan menyala dan pada saat posisi digitalWrite LOW maka LED akan padam.
Command void loop untuk melakukan pengulangan perintah sebelumnya.

Praktek Mikrokontroler dan Antarmuka | Antarmuka Switch

2. P2.2 Blinking/Fading

Rangkaian Skematik

Cara Kerja Aplikasi

Sketch
//Program untuk mengendalikan LED, apakah blinking atau
//fading tergantung posisi(open/closed)push button switch
int ledPin=9; //pin untuk LED
int switchPin=2; //pin untuk switch
int val=0; //variabel untuk menyimpan posisi switch
int fadeVal=0; //nilai awal fade
void setup()
{
pinMode(ledPin, OUTPUT); //ledPin sebagai output
pinMode(switchPin, INPUT); //switchPin sebagai input
}
void loop()
{
val = digitalRead(switchPin); //baca dan simpan posisi switch
if(val==HIGH)
//switch closed->blinking
{
digitalWrite(ledPin, LOW); //LED->OFF
delay(50);
digitalWrite(ledPin, HIGH); //LED->ON
delay(50);
}
else{ //switch open -> fading
{
for(fadeVal=0; fadeVal<=255; fadeVal +=5) //fade in
Praktek Mikrokontroler dan Antarmuka | Antarmuka Switch

{
analogWrite(ledPin, fadeVal); //set nilai fade
delay(10);
}
for(fadeVal = 255; fadeVal >=0; fadeVal -=5) //fadeout
{
analogWrite(ledPin, fadeVal);
}
}
}
}

Analisa Sketch
Pada percobaan P2.2 adalah untuk membuat LED nyala padam pada intensitas tertentu
dengan menggunakan tombol saklar. Pin 9 adalah ledPin yang berfungsi sebagai output
dan pin 2 adalah switchPin yang berfungsi sebagai input. Command yang digunakan
untuk membaca dan menyimpan posisi switch adalah digitalRead. Pada percobaan ini
salah satu pin yang digunakan adalah pin digital , maka commandnya adalah
digitalWrite. Pada saat posisi digitalWrite HIGH maka LED akan menyala dan pada
saat posisi digitalWrite LOW maka LED akan padam. Command analogWrite adalah
command digunakan untuk pin analog. Pin analog ini berfungsi untuk mengatur intensitas
cahaya LED. Command void loop digunakan untuk melakukan pengulangan perintah
sebelumnya.

Praktek Mikrokontroler dan Antarmuka | Antarmuka Switch

3. P2.3 Toggle On/Off

Rangkaian Skematik

Cara Kerja Aplikasi

Sketch
//Program untuk mengendalikan LED on/off secara
//bergantian dengan push button sebagai toggle switch
int switchPin = 8; //pin untuk push button switch
int ledPin = 13; //pin untuk LED
boolean lastButton= LOW; //nilai awal posisi switch
boolean ledOn = false; //nilai awal LED
void setup()
{
pinMode(switchPin, INPUT); //switchPin sebagai input
pinMode(ledPin, OUTPUT); //ledPin sebagai output
}
void loop()
{
if (digitalRead(switchPin)==HIGH&&lastButton== LOW)
{
ledOn=!ledOn; //toggle nilai LED
lastButton = HIGH; //ubah nilai posisi switch
}
else
{
lastButton=digitalRead(switchPin);
}
Praktek Mikrokontroler dan Antarmuka | Antarmuka Switch

digitalWrite(ledPin,ledOn);

}
Analisa Sketch

Praktek Mikrokontroler dan Antarmuka | Antarmuka Switch

4. P2.4 Toggle On/Off (w/ Debouncing)

Rangkaian Skematik

Cara Kerja Aplikasi

Sketch
//Program untuk mengendalikan LED on/off secara
//bergantian dengan push button sebagai toggle switch dan
//dilengkapi dengan debouncing untuk menghilangkan efek
//getaran kontak switch
int switchPin=8; //pin untuk switch
int ledPin=13; //pin untuk LED
boolean lastButton=LOW; //posisi switch awal
boolean currentButton=LOW; //posisi switch sekarang
boolean ledOn=false; //LED awal padam
void setup()
{
pinMode(switchPin, INPUT); //switchPin sebagai input
pinMode(ledPin, INPUT); //ledPin sebagai input
}
//definisi dan deklarasi fungsi debounce()
boolean debounce(boolean last)
{
boolean current = digitalRead(switchPin);
if(last!=current)
{
delay(5);
current=digitalRead(switchPin);
}
return current;
Praktek Mikrokontroler dan Antarmuka | Antarmuka Switch

void loop()
{
currentButton=debounce(lastButton);
if(lastButton==LOW&&currentButton==HIGH)
{
ledOn=!ledOn;
}
lastButton=currentButton;
digitalWrite(ledPin,ledOn);
}
Analisa Sketch

Praktek Mikrokontroler dan Antarmuka | Antarmuka Switch

5. P2.5 Fading Switch

Rangkaian Skematik

Cara Kerja Aplikasi

Sketch
//Program untuk menyalakan LED secara fade in dengan push
//button switch dilengkapi dengan debounce
int switchPin=8;
int ledPin=3;
boolean lastButton=LOW;
boolean currentButton=LOW;
int ledLevel=0;
void setup()
{
pinMode(switchPin,INPUT);
pinMode(ledPin,OUTPUT);
}
boolean debounce(boolean last)
{
boolean current=digitalRead(switchPin);
if(last!=current)
{
delay(5);
current=digitalRead(switchPin);
}
return current;
}
void loop()
{
Praktek Mikrokontroler dan Antarmuka | Antarmuka Switch

currentButton=debounce(lastButton);
if(lastButton==LOW && currentButton==HIGH)
{
ledLevel=ledLevel+51;
}
lastButton=currentButton;
if(ledLevel>255)ledLevel=0;
analogWrite(ledPin,ledLevel);
}

Analisa Sketch
pinMode yang di deklarasikan pada void setup berfungsi untuk menentukan jenis pin
yang digunakan. switchPin (pin 8) dideklarasikan sebagai INPUT sedangkan ledPin (pin
3) sebagai OUTPUT. Kemudian, boolean menyimpan nilai TRUE or FALSE. Command
ini menyimpan nilai yang didapat dari pembacaan digitalRead. Kemudian nilai ini akan
disimpan menjadi current. Kemudian setelah itu, command if(lastButton==LOW &&
currentButton==HIGH) menkomandokan bila nilai sebelumnya adalah LOW maka
akan dinaikan menjadi HIGH (intensitas cahaya ditambahkan sebanyak 51 dari
sebelumnya). Command if(ledLevel>255)ledLevel=0; memerintahkan bahwa jika nilai
intensitas cahaya telah lebih dari 255 maka LED akan kembali ke nilai 0. Command
analogWrite(ledPin,ledLevel); menunjukkan bahwa hasil akan di write sebagai
OUTPUT pada pin ledPin.

Praktek Mikrokontroler dan Antarmuka | Antarmuka Switch

10

6. P2.6 Interactive Traffic Lights

Rangkaian Skematik

Cara Kerja Aplikasi

Sketch
//Program Interactive Traffic lights
int carRed=12;
int carYellow= 11;
int carGreen= 10;
int pedRed= 9;
int pedGreen= 8;
int button= 2;
int crossTime= 5000;
unsigned long changeTime;
void setup ()
{
pinMode(carRed, OUTPUT);
pinMode(carYellow, OUTPUT);
pinMode(carGreen, OUTPUT);
pinMode(pedRed, OUTPUT);
pinMode(pedGreen, OUTPUT);
pinMode(button, INPUT);
digitalWrite(carGreen, HIGH);
digitalWrite(pedRed, HIGH);
}
void loop()
{
int state = digitalRead(button);
if (state== HIGH&&(millis()-changeTime)>5000)
{
changeLights();
Praktek Mikrokontroler dan Antarmuka | Antarmuka Switch

11

}
}
void changeLights()
{
digitalWrite(carGreen, LOW);
digitalWrite(carYellow, HIGH);
delay(2000);
digitalWrite(carYellow, LOW);
digitalWrite(carRed, HIGH);
delay(1000);
digitalWrite(pedRed, LOW);
digitalWrite(pedGreen, HIGH);
delay(crossTime);
for (int x=0; x<10; x++)
{
digitalWrite(pedGreen, HIGH);
delay(250);
digitalWrite(pedGreen, LOW);
delay(250);
}
digitalWrite(pedRed, HIGH);
delay(500);
digitalWrite(carYellow, HIGH);
digitalWrite(carRed, LOW);
delay(1000);
digitalWrite(carGreen, HIGH);
digitalWrite(carYellow, LOW);
changeTime = millis
}

Analisa Sketch
Command unsigned long digunakan untuk memperbesar penyimpanan variable yang
dapat dilakukan. Ini berhubungan dengan penggunaan command millis(). Command
tersebut digunakan karena perubahan waktu yang diinginkan secara terus menerus. Pada
deklarasi pinMode dalam void setup diatur pin-pin mana saja yang berfungsi sebagai
INPUT dan OUTPUT. Command int state = digitalRead(button); berfungsi untuk
membaca input. Command
if (state== HIGH&&(millis()-changeTime)>5000)
mengkomandokan bila button dalam kondisi HIGH maka akan terjadi perubahan setelah

Praktek Mikrokontroler dan Antarmuka | Antarmuka Switch

12

5000 millisecond. Pada void changeLights() dijabarkan LED mana saja yang akan
berada pada kondisi LOW atau HIGH serta lamanya delay LED tersebut.

Praktek Mikrokontroler dan Antarmuka | Antarmuka Switch

13

7. DIY Lampu Lift

Rangkaian Skematik

Cara Kerja Aplikasi

Sketch
//Program Lampu Lift
int floor1=12;
int floor2=11;
int floor3=10;
int floor4=9;
int floor5=8;
int floor6=7;
int button=2;
unsigned long changeTime;
void setup ()
{
pinMode(floor1, OUTPUT);
pinMode(floor2, OUTPUT);
pinMode(floor3, OUTPUT);
pinMode(floor4, OUTPUT);
pinMode(floor5, OUTPUT);
pinMode(floor6, OUTPUT);
pinMode(button, INPUT);
digitalWrite(floor1, HIGH);
}
void loop()
{
int state = digitalRead(button);
if (state== HIGH&&(millis()-changeTime)>5000)
{
Praktek Mikrokontroler dan Antarmuka | Antarmuka Switch

14

changeLights();
}
}
void changeLights()
{
digitalWrite(floor1, LOW);
digitalWrite(floor2, HIGH);
delay(2000);
digitalWrite(floor2, LOW);
digitalWrite(floor3, HIGH);
delay(2000);
digitalWrite(floor3, LOW);
digitalWrite(floor4, HIGH);
delay(2000);
digitalWrite(floor4, LOW);
digitalWrite(floor5, HIGH);
delay(2000);
digitalWrite(floor5, LOW);
digitalWrite(floor6, HIGH);
delay(2000);
changeTime = millis();
}

Analisa Sketch
Dalam proyek DIY ini, diadaptasi sketch yang mirip dengan Interactive Traffic Lights.
Digunakannya command unsigned long changeTime; telah dijelaskan pada analisa
sketch Interactive Traffic Lights. Perbedaan yang ada adalah yang digunakan pada
kegiatan ini adalah hanya perubahan LED setelah push button ditekan. pinMode dalam
void setup mendeklarasikan pin-pin mana yang sebagai INPUT dan yang mana sebagai
OUTPUT. Command digitalWrite digunakan untuk memasukan input pada pin tersebut.
Command yang ada dalam void changeLights() membuat LED mana saja yang akan
menyala atau mati dengan menggunakan command digitalWrite serta lamanya waktu
saat menyala menggunakan command delay.

Kesimpulan

Praktek Mikrokontroler dan Antarmuka | Antarmuka Switch

15

Lampiran

Praktek Mikrokontroler dan Antarmuka | Antarmuka Switch

16

Praktek Mikrokontroler dan Antarmuka | Antarmuka Switch

17

Anda mungkin juga menyukai