b) Menggunakan komponen input dan output sederhana dengan Arduino
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 :
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.
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 } |
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
3. Percobaan 3 Menampilkan input keypad pada LCD
1) Hardwar
1) 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
}
}