MODUL 1 - μp dan μc



1. Tujuan Percobaan [Kembali]
a) Memahami cara penggunaan input dan output digital pada mikrokontroler

b) Menggunakan komponen input dan output sederhana dengan Arduino


2. Alat dan Bahan [Kembali]



a) Modul Arduino

b) Keypad

c) 7-Segment


3. Dasar Teori [Kembali]

1.4.1 General Input Output

Input adalah semua data dan perintah yang dimasukkan ke dalam memori untuk diproses lebih lanjut oleh mikroprosesor. Sebuah perangkat input adalah komponen piranti keras yang memungkinkan user atau pengguna memasukkan data ke dalam mikroprosesor. Output adalah data hasil yang telah diproses. Perangkat output adalah semua komponen piranti keras yang menyampaikan informasi kepada orang-orang yang menggunakannya.

Pada Arduino, pin input/output terdiri dari digital dan analog yang jumlah pin-nya tergantung jenis Arduino yang digunakan. Input digital digunakan untuk mendeteksi perubahan logika biner pada pin tertentu. Adanya input digital memungkinkan mikrokontroler untuk dapat menerjemahkan 0V menjadi logika LOW dan 5V menjadi logika HIGH. Membaca sinyal digital pada Arduino dapat menggunakan sintaks digitalRead(pin);

Output digital terdiri dari dua buah logika, yaitu kondisi logika HIGH dan kondisi logika LOW. Untuk menghasilkan output kita dapat menggunakan sintaks digitalWrite(pin,nilai); yang sebelumnya pin sudah diset ke mode OUTPUT, lalu parameter kedua adalah set nilai HIGH atau LOW. Apabila pin diset dengan nilai HIGH, maka voltase pin tersebut akan diset ke 5V atau 3.3V dan bila pin diset ke LOW, maka


voltasepin tersebut akan diset ke 0V.

1.4.2 Arduino

Arduino adalah kit elektronik atau papan rangkaian elektronik open source yang di dalamnya terdapat komponen utama yaitu sebuah chip mikrokontroler dengan jenis AVR dari perusahaan Atmel. Arduino yang kita gunakan dalam praktikum ini adalah Arduino Uno yang menggunakan chip AVR ATmega 328P. Dalam memprogram Arduino, kita bisa menggunakan komunikasi serial agar Arduino dapat berhubungan dengan komputer ataupun perangkat lain.

Adapun spesifikasi dari Arduino Uno ini adalah sebagai berikut :


Gambar 1. Arduino Uno

 

Microcontroller ATmega328P

Operating Voltage 5 V

Input Voltage (recommended) 7 – 12 V

Input Voltage (limit) 6 – 20 V

Digital I/O Pins 14 (of which 6 provide PWM output)

PWM Digital I/O Pins 6

Analog Input Pins 6

DC Current per I/O Pin 20 mA

DC Current for 3.3V Pin 50 mA

Flash Memory 32 KB of which 0.5 KB used by bootloader

SRAM 2 KB

EEPROM 1 KB

Clock Speed 16 MHz


A. BAGIAN-BAGIAN ARDUINO UNO

1. POWER USB

Digunakan untuk menghubungkan Papan Arduino dengan komputer lewat koneksi USB.

2. POWER JACK

Supply atau sumber listrik untuk Arduino dengan tipe Jack. Input DC 5 - 12 V.

3. Crystal Oscillator

Kristal ini digunakan sebagai layaknya detak jantung pada Arduino. Jumlah cetak menunjukkan 16000 atau 16000 kHz, atau 16 MHz.

4. Reset

Digunakan untuk mengulang program Arduino dari awal atau Reset.

5. Digital Pins I / O

Papan Arduino UNO memiliki 14 Digital Pin. Berfungsi untuk memberikan nilai logika ( 0atau 1 ). Pin berlabel " ~ " adalah pin-pin PWM ( Pulse Width Modulation ) yang dapat digunakan untuk menghasilkan PWM.

6. Analog Pins

Papan Arduino UNO memiliki 6 pin analog A0 sampai A5. Digunakan untuk membaca sinyal atau sensor analog seperti sensor jarak, suhu dsb, dan mengubahnya menjadi nilai digital.

7. LED Power Indicator

Lampu ini akan menyala dan menandakan Papan Arduino mendapatkan supply listrik denganbaik.

 

B. BAGIAN-BAGIAN PENDUKUNG

1. RAM

RAM (Random Access Memory) adalah tempat penyimpanan sementara pada komputer yang isinya dapat diakses dalam waktu yang tetap, tidak memperdulikan letak data tersebut dalam memori atau acak. Secara umum ada 2 jenis RAM yaitu SRAM (Static Random Acces Memory) dan DRAM (Dynamic Random Acces Memory).

2. ROM

ROM (Read-only Memory) adalah perangkat keras pada computer yang dapat menyimpan data secara permanen tanpa harus memperhatikan adanya sumber listrik. ROM terdiri dariMask ROM, PROM, EPROM, EEPROM.


1.1 Prosedur Percobaan

1. Percobaan 1 ON- OFF LED

1) Hardware

Gambar 2. LED

2) Rangkaian Percobaan

Gambar 3. Rangkaian Percobaan ON-OFF LED


3) Listing Program

 

int led [ ] = {2, 3, 4, 5, 6, 7, 8, 9}; //mendeklarasikan pin 2-9 yang digunakan

void setup() //semua kode dalam fungsi ini hanya dibaca sekali

{

for (int i = 0; i < 8; i++) //perulangan dari 0 dengan nilai batas kecil sama dengan 8; increase

{

pinMode (led[i], OUTPUT); //menyatakan pin yang dihubungkan ke LED sebagai OUTPUT

}

}

void loop(){ //Semua kode dalam fungsi ini dibaca berulang

for (int hidup = 0; hidup < 8; hidup++) //Kondisi perulangan dari 0 dengan batas nilai 8 untuk menghidupkan LED

{

digitalWrite(led[hidup], HIGH); //LED diberi logika 1 sehingga LED menyala delay(100); //Jarak waktu 100 ms antar LED yang akan menyala

}

delay(100); //Jarak waktu 100 ms sebelum memulai perulangan

for (int mati = 0; mati < 8; mati++) //Kondisi perulangan dari 0 dengan batas nilai 8; untuk mematikan LED

{

digitalWrite(led[mati], LOW); //LED diberi logika 0 sehingga LED mati delay(100); //Jarak waktu 100 ms antar LED yang akan mati

}

delay(100); //Jarak waktu 100 ms sebelum memulai perulangan

}


4) Flowchart

 


Gambar 4.Flowchart Rangkaian Percobaan ON-OFF LED

2. Percobaan 2 Menampilkan Karakter Pada 7-Segment

1) Hardware

Gambar 5. Seven Segment


2) Rangkaian Percobaan

 

3) Listing Program

byte pin[] = {2, 3, 4, 5, 6, 7, 8, 9}; //Deklarasi pin yang digunakan pada 7-segment dengan tipe data byte

void setup() //Semua kode dalam fungsi ini hanya dieksekusi sekali

{ for (int i = 0; i < 9; i++) //Kondisi perulangan dari 0 hingga batas kecil dari 9;Increase

{

pinMode(pin[i], OUTPUT); //Deklarasi pin yang digunakan sebagai OUTPUT

}

}

void loop() //Semua kode dalam fungsi ini di eksekusi berulang

{

digitalWrite(2, HIGH); 

digitalWrite(3, LOW); 

digitalWrite(4, LOW); 

digitalWrite(5, LOW); 

digitalWrite(6, LOW); 

digitalWrite(7, HIGH);

digitalWrite(8, HIGH); 

digitalWrite(9, HIGH);

}

4). Flowchart


Gambar 7. Flowchart Rangkaian Percobaan 7 Segment


3. Percobaan 3 Menampilkan input keypad pada LCD

1) Hardwar

Gambar 8. Keypad

Gambar 9. LCD Character

1) Rangkaian Percobaan


2) Rangkaian Percobaan


3) 
Listing Program

#include <LiquidCrystal.h> //Deklarasi library LCD #include <Keypad.h>  //Deklarasi library keypad

const byte ROWS = 4; //Deklarasi jumlah baris const byte COLS = 3; //Deklarasi jumlah kolom char keys[ROWS][COLS] = {

{'1','2','3'},

{'4','5','6'}, //Inisialisasi keypad matriks 4x3

{'7','8','9'},

{'*','0','#'}

};

byte rowPins[ROWS] = {10, 9, 8, 7}; //Deklarasi pin yang digunakan untuk baris byte colPins[COLS] = {13, 12, 11}; //Deklarasi pin yang digunakan untuk kolom

// Inisialisasi library dengan pin yang digunakan LiquidCrystal lcd(A0, A1, A2, A3, A4, A5);

Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS ); void setup() { //Semua kode dalam fungsi ini akan dieksekusi sekali

// Set baris dan kolom LCD lcd.begin(20, 4); lcd.setCursor(1,2); lcd.setCursor(4,3); lcd.setCursor(0,0);

}

void loop() { //Semua kode dalam fungsi ini akan dieksekusi berulangchar key = keypad.getKey(); //Membaca keypad

if (key) //Kondisi pilihan jika keypad ditekan

{

lcd.print(key); //Menampilkan input dari keypad pada LCD

}

}


4) Flowchart


Gambar 11. Flowchart Rangkaian Percobaan Keypad dan LCD

Electricity LightningElectricity Lightning