Pages

Kamis, 28 November 2013

Pratikum 2 PERIPERAL MASUKAN DAN KELUARAN DIGITAL


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); 
}



void  loop() { 
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(10,  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(12,  1); 
// pinMode berfungsi untuk mendeklarasikan bahwa pin/kaki micro nomor urut 12 sebagai output //

pinMode(13,  1); 
// 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 //

digitalWrite(9,  HIGH); 
// untuk mengatur bahwa di pin 9 akan hidup atau bernilai 1 (High)dan memiliki tegangan 5 v //
                    
digitalWrite(10,  1); 
// untuk mengatur bahwa di pin 10 akan hidup atau bernilai 1(High) dan memiliki tegangan 5 v //

digitalWrite(11,  LOW); 
// untuk mengatur bahwa di pin11 akan hidup atau bernilai 0 (low) dan memiliki tegangan 0 v //

digitalWrite(12,  LOW); 
// untuk mengatur bahwa di pin12 akan hidup atau bernilai 0 (low) dan memiliki tegangan 0 v //

digitalWrite(13,  0); 
// 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() {

PORTB=0x07; } 
         
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 //

DDRB=0x3F; 
// 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 //

PORTB=0x07;  
// 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(12,  OUTPUT);
 // pinMode berfungsi untuk mendeklarasikan bahwa pin/kaki micro nomor urut 12 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(12,  HIGH); 
// untuk mengatur bahwa di pin 12 akan hidup atau bernilai 1 (High)dan memiliki tegangan 5 v //

delay(1000); 
// untuk mendelay program yang akan di jalankan selama 1000 mS //

digitalWrite(12,  LOW);
 // 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