PRAKTIKUM 2
PERIPERAL MASUKAN DAN KELUARAN DIGITAL
TUJUAN :
1. Mampu membuat program untuk mengakses periperal masukan digital menggunakan fungsi Arduino.
2. Mampu membuat program untuk mengakses periperal masukan digital menggunakan konfigurasi register mikrokontroler.
3. Mampu membuat program untuk mengakses periperal keluaran digital menggunakan fungsi Arduino.
4. Mampu membuat program untuk mengakses periperal keluaran digital menggunakan konfigurasi register mikrokontroler.
PERALATAN :
1. Komputer : 1 set
2. Arduino Uno : 1 pcs
3. Kabel USB : 1 pcs
4. Project Board : 1 pcs
5. Kabel jumper : 1 set
6. Buzzer : 1 pcs
7. Transistor 2N2222 : 1 pcs
8. Resistor 2K2 : 1 pcs
9. LED : 6 pcs
10 . Resistor 330 ohm : 6 pcs
PERCOBAAN :
2.1 Pemrograman Digital Output Menggunakan Library Arduino
Pada praktikum kali ini akan dibuat program yang berfungsi untuk mengontrol 6 buah lampu LED.. 3 buah lampu LED akan dinyalakan dan 3 buah sisanya akan dimatikan melalui program. Program yang dibuatt akan menggunakan fungsi yang disediakan oleh Arduino IDE.
Prosedur :
1. Rangkailah rangkaian pada Gambar 2.1
2. Tuliskan sintaks program di bawah ini pada Arduino IDE,, kemudian lakukan kompilasi dan upload program ke sistem minimum Arduino.
void setup() {
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
pinMode(11, 1);
pinMode(12, 1);
pinMode(13, 1);
}
digitalWrite(8, HIGH);
digitalWrite(9, HIGH);
digitalWrite(10, 1);
digitalWrite(11, LOW);
digitalWrite(12, LOW);
digitalWrite(13, 0);
}
3. Amati kondisi dari keenam LED yang terhubung ke Arduino.
Tugas dan Pertanyaan :
1. Isilah tabel 2.1 sesuai dengan hasil pengamatan pada kondisi LED !
2. Jelaskan fungsi tiap baris dari sintaks program pada Percobaan 2.1 !
void setup() {
// berfungsi sebagai salah satu fungsi yang hanya di panggil sekali dan
satu kali eksekusi ketika awal program berjalan //
pinMode(8, OUTPUT);
// pinMode berfungsi untuk
mendeklarasikan bahwa pin/kaki micro nomor urut 8 sebagai output //
pinMode(9, OUTPUT);
// pinMode berfungsi untuk mendeklarasikan bahwa pin/kaki micro nomor
urut 9 sebagai output //
// pinMode
berfungsi untuk mendeklarasikan bahwa pin/kaki micro nomor urut 10 sebagai
output //
pinMode(11, 1);
// pinMode
berfungsi untuk mendeklarasikan bahwa pin/kaki micro nomor urut 11 sebagai
output //
// pinMode
berfungsi untuk mendeklarasikan bahwa pin/kaki micro nomor urut 12 sebagai
output //
// pinMode
berfungsi untuk mendeklarasikan bahwa pin/kaki micro nomor urut 10 sebagai
output //
}
void loop() {
// berfungsi sebagai tempat kita menaruh source code yang akan diproses
dan Fungsi loop akan
dijalankan setelah fungsi setup dan akan dijalankan terus menerus selama board
Arduino menyala (on) dan mengeksekusi program tersebut
berulang ulang //
digitalWrite(8, HIGH);
// untuk mengatur bahwa di pin
8 akan hidup atau bernilai 1 (High)dan memiliki tegangan 5 v //
// untuk mengatur bahwa di pin
9 akan hidup atau bernilai 1 (High)dan memiliki tegangan 5 v //
// untuk mengatur bahwa di pin
10 akan hidup atau bernilai 1(High) dan memiliki tegangan 5 v //
// untuk mengatur bahwa di
pin11 akan hidup atau bernilai 0 (low) dan memiliki tegangan 0 v //
// untuk mengatur bahwa di
pin12 akan hidup atau bernilai 0 (low) dan memiliki tegangan 0 v //
// untuk mengatur bahwa di
pin13 akan hidup atau bernilai 0 (low) dan memiliki tegangan 0 v //
}
2.2 Pemrograman Digital Output Menggunakan Konfigurasi Register
Pada praktikum kali ini akan dibuat program yang memiliki fungsi sama dengan Percobaan 2.1. Namun pada percobaan kali ini program yang dibuat akan menggunakan konfigurasi register untuk mengakses pin digital.
Prosedur :
1. Gantilah sintaks program pada PPercobaan 2.1 dengan sintaks program berikut ini, kemudian lakukan kompilasi dan upload program ke minimum sistem Arduino Uno.
void setup() {
DDRB=0x3F;
void loop() {
2. Amati kondisi nyala/mati dari keenam LED yang terhubung ke Arduino.
Tugas dan Pertanyaan
1. Isilah Tabel 2.2 sesuai dengan hasil pengamatan pada kondisi LED !
2. Jelaskan fungsi tiap baris dari sintaks program pada Percobaan 2.2 !
void setup() {
// berfungsi sebagai salah satu fungsi yang hanya di panggil sekali dan
satu kali eksekusi ketika awal program berjalan //
// menyatakan bahwa itu adalah bilangan heksadesimal yang akan di biner
kan sehingga dalam biner tersebut 3 (biner = 0011) dan F=15 (biner = 1111)
sehingga pada pin 8 sampai 13 adalah sebagai output//
void loop() {
// berfungsi sebagai tempat kita menaruh source code yang akan diproses
dan Fungsi loop akan
dijalankan setelah fungsi setup dan akan dijalankan terus menerus selama board
Arduino menyala (on) dan mengeksekusi program tersebut
berulang ulang //
// menyatakan
bahwa itu adalah bilangan heksadesimal yang akan di biner kan sehingga dalam
biner tersebut 7 (biner = 0111).sehingga pada pin 8,9,10 akan bernilai High (1)
atau nyala.//
}
3. Jelaskan perbedaan penggunaan fungsi Arduino dan konfigurasi register pada pengaksesan digital output !
Jawab : Jika dengan fungsi arduino maka untuk pengaksesan outputnya di
kenalkan satu persatu,dan bahasa pemrogram banyak yang akan di perkenalkan.tapi
untuk konfigurasi register dengan menggunakan port B,C,D maka outputnya akan
High secara langsung sehingga bahasa pemrogramannya sedikit.
4. Menurut Anda, program menggunakan konfigurasi register lebih tepat ditujukan untuk aplikasi yang seperti apa ? Jelaskan alasannya !
Jawab : seperti seven segment, untuk
mengaktifkan dan mengenalkan pin tersebut bisa secara banyak atau langsung
dengan menggunakan konfigurasi register. jika
dengan fungsi arduino maka pengenalan pin tersebut secara satu persatu.sehingga
bahasa pemrogramannya sedikit.
2.3 Penggunaan Fungsi Delay
Pada percobaan kali ini akan dipraktekkan penggunaan fungsi delay pada program. Program yang akan dibuat bertujuan untuk membuat buzzer menyala dan mati secara bergantian dengan sela waktu tertentu. Konfigurasi nyala dan mati buzzer dengan sela waktu tertentu ini akan membuat suara seperti alarm ataupun sirine.
Prosedur :
1. Rangkailah rangkain pada gambar 2.2
Prosedur :
1. Rangkailah rangkain pada gambar 2.2
2. Tuliskan sintaks program di bawah ini, kemudian lakukan kompilasi dan upload program.
void setup() {
pinMode(12, OUTPUT);
}
void loop() {
digitalWrite(12, HIGH);
delay(1000);
digitalWrite(12, LOW);
delay(1000);
}
3. Amati suara dari buzzer.
Tugas dan Pertanyaan :
1. Jelaskan fungsi tiap baris dari sintaks program pada Percobaan 2.3 !
void setup() {
// berfungsi sebagai salah satu fungsi yang hanya di panggil sekali dan
satu kali eksekusi ketika awal program berjalan //
// pinMode berfungsi untuk
mendeklarasikan bahwa pin/kaki micro nomor urut 12 sebagai output //
digitalWrite(12, HIGH);
delay(1000);
digitalWrite(12, LOW);
}
void loop() {
// berfungsi sebagai tempat kita menaruh source code yang akan diproses
dan Fungsi loop akan
dijalankan setelah fungsi setup dan akan dijalankan terus menerus selama board
Arduino menyala (on) dan mengeksekusi program tersebut
berulang ulang //
// untuk mengatur bahwa di pin
12 akan hidup atau bernilai 1 (High)dan memiliki tegangan 5 v //
// untuk mendelay program yang
akan di jalankan selama 1000 mS //
// untuk mengatur bahwa di pin
12 akan mati atau bernilai 0 (Low) dan memiliki tegangan 0 v //
delay(1000);
// untuk mendelay program yang
akan di jalankan selama 1000 mS //
}
2. Gantilah parameter masukan untuk fungsi delay dengan 300, 1000, 1500, dan 2000, kemudian amati perubahan suara buzzer. Jelaskan fungsi parameter masukan dari fungsi delay !
Jawab :
1. delay 300.jika program yang di jalankan dengan delay 300 mS (0.3
detik) maka output dari suara buzzer akan bersuara selama 0.3 detik dan mati
selama 0.3 detik
2. delay 1000.jika program yang di jalankan dengan delay 1000 mS (1
detik) maka output dari suara buzzer akan bersuara selama 1 detik dan mati
selama 1 detik
3. delay 1500.jika program yang di jalankan dengan delay 1500 mS (1.5
detik) maka output dari suara buzzer akan bersuara selama 1.5 detik dan mati
selama 1.5 detik
4. delay 2000.jika program yang di jalankan dengan delay 2000 mS (2
detik) maka output dari suara buzzer akan bersuara selama 2 detik dan mati
selama 2 detik.
2.4 Pemrograman Digital Input Menggunakan
Fungsi Arduino
Pada percobaan
k ali ini akan
dipraktekkan pemrograman untuk
mengakses
masukan dalam bentu k digital.
Program bertujuan untuk menyalakan buzzer ketika tombol ditekan. Untuk
melakukan pengkaksesan terhadap mas ukan digital akan digunakan fungsi Arduino.
Prosedur :
1.Rangkailah rangkaian pada gambar 2.3
2.
Tuliskan sintaks program berikut
ini, kemudian lakukan ko mpilasi dan upload program.
void setup() {
pinMode(A0, INPUT);
digitalWrite(A0, HIGH);
pinMode(12, OUTPUT)
}
void loop()
{
if(digitalRead(A0)==LOW) {
digitalWrite(12, HIGH);
}
else{
digitalWrite(12, LOW);
}
}
3. Tekanlah switch pushbutton kemudian
amati kondisi buzzer.
void setup() {
// berfungsi sebagai salah satu fungsi yang hanya di panggil sekali dan
satu kali eksekusi ketika awal program berjalan //
pinMode(A0, INPUT);
// pinMode berfungsi untuk mendeklarasikan bahwa pin/kaki di analog
input yaitu (A0) sebagai input //
digitalWrite(A0, HIGH);
// untuk mengatur bahwa di pin A0 akan hidup atau bernilai 1
(High)dan memiliki tegangan 5 v //
pinMode(12, OUTPUT);
// untuk mengatur bahwa di pin 12 akan hidup atau bernilai 1
(High)dan memiliki tegangan 5 v //
}
void loop()
// berfungsi sebagai tempat kita menaruh source code yang akan diproses
dan Fungsi loop akan
dijalankan setelah fungsi setup dan akan dijalankan terus menerus selama board
Arduino menyala (on) dan mengeksekusi program tersebut berulang
ulang //
{ if(digitalRead(A0)==LOW) {
//jika
A0 sama dengan LOW maka
digitalWrite(12, HIGH);
//maka pada pin 12 akan
bernilai 1 atau High //
}
else{
// jika A0 tidak sama
dengan low //
digitalWrite(12, LOW);
//maka pada pin 12 akan bernilai
0 atau Low //
}
}
2. Perhatikan pada fungsi setup()
void setup()
{
pinMode(A0,INPUT);
digitalWrite(A0, HIGH);
pinMode(12, OUTPUT);
}
Setelah pin A0 dikonfigurasi
menjadi input, kemudian pin A0 diperintahkan untuk berlogika high.
Apa yang akan terjadi pada pin A0 setelah baris program diatas dieksekusi ?
Jelaskan !
Jawab : Jika pin A0 menjadi input maka akan bernilai
high (1) dan pada saat program di eksekusi maka pin A0 akan menerima di pin12.
2.5 Pemrograman
Digital Input Menggunakan Konfigurasi Register
Pada percobaan k ali ini akan
dipraktekkan pemrograman untuk mengakses masukan dalam bentuk digital sama
seperti Percobaan 2.4. Pada percobaan kali ini pengkaksesan terhadap masukan
digital akan menggunakan konfigurasi register.
Prosedur :
1. Gantilah sintaks program pada percobaan 2.5 menjadi seperti di bawah ini, kemudian kompilasi dan upload program.
void setup()
{
DDRC =
0x00;
PORTC =
0x01;
DDRB =
0x10;
}
void loop() {
if(bit_is_clear(PINC,0))
{
PORTB = 0x10;
}
else {
PORTB = 0x00;
}
}
2. Tekanlah switch
pushbutton kemudian amati kondisi dari buzzer
Tugas dan
Pertanyaa n :
1. Jelaskan fungsi tiap
baris dari sintaks program pada Percobaan 2.5 !
void setup()
{
// berfungsi sebagai salah satu
fungsi yang hanya di panggil sekali dan satu kali eksekusi ketika awal program
berjalan //
DDRC =
0x00;
//untuk mendeklarasikan pada port c sebagai input atau output //
PORTC =
0x01;
// mendeklarasikan atau mengatur pada port c menjadi output //
DDRB = 0x10;
// menyatakan bahwa adalah bilangan hexadesimal diubah kebilangan
biner sehingga menjadi 00010000 maka pada pin 12 dan menjadi output //
}
void loop() {
// berfungsi sebagai tempat kita menaruh source code yang akan diproses
dan Fungsi loop akan dijalankan
setelah fungsi setup dan akan dijalankan terus menerus selama board Arduino
menyala (on) dan mengeksekusi program tersebut berulang
ulang //
if(bit_is_clear(PINC,0)) {
//
untuk memeriksa apakah PinC akan bernilai 0 jika bernilai 0 maka perintah
fungsi akan berubah menjadi 1//
PORTB = 0x10;
//maka pada pin 12 akan bunyi//
}
else {
//jika
bukan bernilai 1 //
PORTB = 0x00;
// maka pin tersebut akan bernilai 0 atau low//
}
}
2.
Jelaskan perbedaan penggunaan
fungsi Arduino dan konfigurasi register untuk penggunaan periperal masukan digital !
Jawab : untuk
konfigurasi register dengan menggunakan port pin maka akan mempermudah dalam
melakukan pemrograman dan waktu yang di perlukan lebih cepat tapi mengkonversi
lebih dahulu seperti bilangan heksadesimal ke biner. sedangkan untuk fungsi
arduino hanya antara 1 (high) / 0 (low) tetapi untuk mengenalkan pin nya itu
satu persatu sehingga untuk melakukan pemrograman memperlama waktu yang di
perlukan.
Tidak ada komentar:
Posting Komentar