Anda di halaman 1dari 6

BUKU PANDUAN PRAKTIKUM

SISTEM MIKROKONTROLER

Oleh

Hendawan Soebhakti, ST., MT.










Agustus 2014


Parkway Street, BatamCentre
Batam 29461
Telp. 62-778 469856 469861
Fax. 62-778 463620
http://www.polibatam.ac.id





Prakt ikum Sistem Mikrokontroler Hendawan Soebhakti Page 1 of 6
Program Studi Teknik Mekatronika
Jurusan Teknik Elektro
Politeknik Negeri Batam

PERCOBAAN II
INPUT/OUTPUT DIGITAL

TUJ UAN
Mampu menjelaskan fungsi dan menggunakan input/out put digital pada Arduino.
Mampu menjelaskan dan menggunakan register digital port.

PERALATAN
Personal Computer
Program Arduino IDE
Board Arduino Uno
Resistor 330 ohm
LED
Protoboard
Kabel Jumper
Push Button Switch
: 1 buah

: 1 set
: 2 buah
: 2 buah
: 1 buah
: 3 buah
: 1 buah

PROSEDUR

A. Digital Output
1. Hubungkan pin 11 dan 12 masing-masing ke resistor 330 ohm dan LED seperti pada gambar
berikut :

Gambar 2.1 Digital Output

2. Buat sketch baru kemudian tuliskan program berikut :

int LED0 = 11;
int LED1 = 12;

void setup() {
// put your setup code here, to run once:
pinMode(LED0,OUTPUT);
pinMode(LED1,OUTPUT);
}

void loop() {
// put your main code here, to run repeatedly:
digitalWrite(LED0,HIGH);
digitalWrite(LED1,HIGH);
}

3. Verify dan upload jika tidak ada kesal ahan. Perhatikan apa yang terjadi pada kedua LED!
4. Modifikasi sketch hingga menjadi seperti berikut :

int LED0 = 11;
int LED1 = 12;

void setup() {
// put your setup code here, to run once:
pinMode(LED0,OUTPUT);



Prakt ikum Sistem Mikrokontroler Hendawan Soebhakti Page 2 of 6
Program Studi Teknik Mekatronika
Jurusan Teknik Elektro
Politeknik Negeri Batam

pinMode(LED1,1);
}

void loop() {
// put your main code here, to run repeatedly:
digitalWrite(LED0,HIGH);
digitalWrite(LED1,1);
}
5. Verify dan upload jika tidak ada kesal ahan. Perhatikan apakah terdapat perubahan kondisi LED?

B. Digital Input
1. Hubungkan pi n 2 ke GND mel alui push button switch seperti pada gambar berikut :

Gambar 2.2 Digital Input

2. Buat sketch baru kemudian tuliskan program berikut :

int switchPin = 2; // Switch connected to digital pin 2

void setup()
{
Serial.begin(9600); // set up Serial library at 9600 bps
pinMode(switchPin, INPUT); // sets the digital pin as input to read switch
}

void loop()
{
Serial.print("Read switch input: ");
Serial.println(digitalRead(switchPin)); // Read the pin and display the value
delay(100);
}

3. Verify dan upload jika tidak ada kesal ahan.
4. Pada aplikasi Ardui no, klik Tools -> Seri al Monit or.
5. Tekan push button dan perhatikan nilai pada Serial Monitor. Catat hasil pengamatan pada Tabel
2.1.
6. Perhatikan juga nilai pada Seri al Monitor ketika tidak ada penekanan push button. Catat hasil
pengamatan pada Tabel 2.1.

Tabel 2. 1 Hasil Pengamatan Kondisi Input Pin 2
No Push Button Nilai Pada Seri al Monitor Nilai Berubah-ubah atau Tetap?
1 Ditekan
2 Ti dak ditekan

7. Modifikasi sketch hingga menjadi seperti berikut :

int switchPin = 2; // Switch connected to digital pin 2

void setup()
{
Serial.begin(9600); // set up Serial library at 9600 bps
pinMode(switchPin, INPUT); // sets the digital pin as input to read switch
digitalWrite(switchPin,HIGH); // Pull up activated
}

void loop()



Prakt ikum Sistem Mikrokontroler Hendawan Soebhakti Page 3 of 6
Program Studi Teknik Mekatronika
Jurusan Teknik Elektro
Politeknik Negeri Batam

{
Serial.print("Read switch input: ");
Serial.println(digitalRead(switchPin)); // Read the pin and display the value
delay(100);
}

8. Verify dan upload jika tidak ada kesal ahan.
9. Pada aplikasi Ardui no, klik Tools -> Seri al Monit or.
10. Tekan push button dan perhatikan nilai pada Serial Monitor. Catat hasil pengamatan pada Tabel
2.2.
11. Perhatikan juga nilai pada Seri al Monitor ketika tidak ada penekanan push button. Catat hasil
pengamatan pada Tabel 2.2.

Tabel 2. 2 Hasil Pengamatan Kondisi Input Pin 2 Dengan Pull up
No Push Button Nilai Pada Seri al Monitor Nilai Berubah-ubah atau Tetap?
1 Ditekan
2 Ti dak ditekan

C. Menghitung Penekanan Tombol
1. Masih menggunakan rangkai an pada Gambar 2.2, buatlah sketch seperti berikut :

int switchPin = 2; // switch is connected to pin 2
int val; // variable for reading the pin status
int buttonState; // variable to hold the button state
int buttonPresses = 0; // how many times the button has been pressed

void setup() {
pinMode(switchPin, INPUT); // Set the switch pin as input
digitalWrite(switchPin,HIGH);
Serial.begin(9600); // Set up serial communication at 9600bps
buttonState = digitalRead(switchPin); // read the initial state
}

void loop(){
val = digitalRead(switchPin); // read input value and store it in val

if (val != buttonState) { // the button state has changed!
if (val == LOW) { // check if the button is pressed
buttonPresses++; // increment the buttonPresses variable
Serial.print("Button has been pressed ");
Serial.print(buttonPresses);
Serial.println(" times");
}
}
buttonState = val; // save the new state in our variable
}

2. Verify, upl oad kemudi an buka Seri al Monitor !
3. Tekan push button switch. Perhatikan nil ai pada Serial Monitor, apakah nilai nya bertambah 1
setiap kali push button ditekan? Atau ada kalanya lompat beberapa nilai? Catat pada Tabel 2.3 !

Tabel 2. 3 Menghitung Jumlah Penekanan Tombol
Penekanan push button ke- Nilai Pada Seri al Monitor
1
2
3
4
5
6
7
8



Prakt ikum Sistem Mikrokontroler Hendawan Soebhakti Page 4 of 6
Program Studi Teknik Mekatronika
Jurusan Teknik Elektro
Politeknik Negeri Batam

Penekanan push button ke- Nilai Pada Seri al Monitor
9
10

4. Modifikasi sketch menjadi seperti berikut :

int switchPin = 2; // switch is connected to pin 2
int val; // variable for reading the pin status
int buttonState; // variable to hold the button state
int buttonPresses = 0; // how many times the button has been pressed

void setup() {
pinMode(switchPin, INPUT); // Set the switch pin as input
digitalWrite(switchPin,HIGH);
Serial.begin(9600); // Set up serial communication at 9600bps
buttonState = digitalRead(switchPin); // read the initial state
}

void loop(){
val = digitalRead(switchPin); // read input value and store it in val
delay(10); // wait 10mS
if (val != buttonState) { // the button state has changed!
if (val == LOW) { // check if the button is pressed
buttonPresses++; // increment the buttonPresses variable
Serial.print("Button has been pressed ");
Serial.print(buttonPresses);
Serial.println(" times");
}
}
buttonState = val; // save the new state in our variable
}

5. Tekan push button switch. Perhatikan nil ai pada Serial Monitor, apakah nilai nya bertambah 1
setiap kali push button ditekan? Atau ada kalanya lompat beberapa nilai? Catat pada Tabel 2.4 !

Tabel 2. 4 Menghitung Jumlah Penekanan Tombol Dengan Sistem Debounci ng
Penekanan push button ke- Nilai Pada Seri al Monitor
1
2
3
4
5
6
7
8
9
10

TUGAS DAN PERTANYAAN
1. Hubungkan push button switch ke pin 2 dan LED ke pin 11 melalui resistor 330 ohm.
Kemudi an buatlah sketch yang akan membaca kondisi push button dengan ketentuan
sebagai berikut :
Jika push button ditekan, LED akan berkedip (nyal a dan padam) sel ama 5 kali dengan
interval 100mS .
Jika push button tidak ditekan, LED akan padam.

2. Dengan rangkaian yang sama seperti Gambar 2.2, buatlah sketch yang akan membaca
kondisi push button dan menampilkan sebuah nil ai mel alui Serial Monitor dengan ketentuan
sebagai berikut :



Prakt ikum Sistem Mikrokontroler Hendawan Soebhakti Page 5 of 6
Program Studi Teknik Mekatronika
Jurusan Teknik Elektro
Politeknik Negeri Batam

Pada saat awal, set nilai perhitungan sebesar 10.
Setiap kali push button switch ditekan, maka nilai perhitungan akan berkurang 1.
Ketika nilai perhitungan sudah mencapai 0, maka meskipun push button ditekan tidak
akan berpengaruh apa-apa.

3. Buatlah Kesimpulan dari percobaan ini !

Anda mungkin juga menyukai