Alat-alat yang dibutuhkan meliputi:
- Arduino UNO (1 set)
- BreadBoard (1 buah)
- Keypad 4x4 (1 buah)
- LCD (1 buah)
- Resistor 220 ohm (1 buah)
- Potensiometer 10 kilo ohm
- Kabel jumper secukupnya
- Laptop
1. Susun rangkaian berikut kabel jumpernya seperti gambar di bawah ini:
Gambar 1: Ilustrasi dari Implementasi Rangkaian
2. Sambungkan Arduino pada PC.
3. Masukkan source code berikut ini:
---
#include <LiquidCrystal.h> //import lcd library
#include <Keypad.h> //import keypad library
LiquidCrystal lcd(5, 4, 3, 2, 1, 0); //lcd pins
const byte ROWS = 4; // four rows
const byte COLS = 4; // four columns
//define the keymap
char keys [ROWS] [COLS] = {
{'7', '4', '1', 'X'},
{'8', '5', '2', '0'},
{'9', '6', '3', '='},
{'/', '*', '-', '+'}
};
byte rowPins[ROWS] = {
9 ,8 ,7 ,6}; //connect keypad ROW1, ROW2, ROW3, ROW4 to these arduino pins
byte colPins[COLS] = {
13, 12, 11, 10}; //connect keypad COL1, COL2, COL3, COL4 to these arduino pins
//create the keypad
Keypad myKeypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
//variables declaration
boolean valOnePresent = false;
boolean next = false;
boolean final = false;
String num1, num2;
int ans;
char op;
void setup(){
lcd.begin(16,2);
lcd.setCursor(2,0);
lcd.print("Hello World!");
delay(2500);
lcd.clear(); //clears the LCD screen and positions the cursor in the upper-left corner.
}
void loop(){
char key = myKeypad.getKey();
if (key != NO_KEY && (key=='1'||key=='2'||key=='3'||key=='4'||key=='5'||key=='6'||key=='7'||key=='8'||key=='9'||key=='0')){
if (valOnePresent != true){
num1 = num1 + key;
int numLength = num1.length();
lcd.setCursor(15 - numLength, 0); //to adjust one whitespace for operator
lcd.print(num1);
}
else {
num2 = num2 + key;
int numLength = num2.length();
lcd.setCursor(15 - numLength, 1);
lcd.print(num2);
final = true;
}
}
else if (valOnePresent == false && key != NO_KEY && (key == '/' || key == '*' || key == '-' || key == '+')){
if (valOnePresent == false){
valOnePresent = true;
op = key;
lcd.setCursor(15,0); //operator on right corner
lcd.print(op);
}
}
else if (final == true && key != NO_KEY && key == '='){
if (op == '+'){
ans = num1.toInt() + num2.toInt();
}
else if (op == '-'){
ans = num1.toInt() - num2.toInt();
}
else if (op == '*'){
ans = num1.toInt() * num2.toInt();
}
else if (op == '/'){
ans = num1.toInt() / num2.toInt();
}
lcd.clear();
lcd.setCursor(15,0);
lcd.autoscroll();
lcd.print(ans);
lcd.noAutoscroll();
}
else if (key != NO_KEY && key == 'X'){
lcd.clear();
valOnePresent = false;
final = false;
num1 = "";
num2 = "";
ans = 0;
op = ' ';
}
}
---
4. Compile dan run code. Maka seharusnya kalkulator dapat berjalan dengan baik.
Seharusnya...
Ya, kami gagal mengerjakannya.
Untuk lebih jelasnya, berikut adalah video hasil pengerjaan kami:
---
---
Untuk kendala yang kami alami, ada banyak. Sebelumnya mohon maaf pada percobaan yang satu ini saya tidak dapat terlibat langsung dalam pengerjaannya sehingga saya hanya akan me-list semua temuan yang teman saya temukan.
Kendala yang ditemukan(oleh teman saya Ifan):
1. Kabel jumper yang kurang bagus sehingga dalam transmisi data kurang baik
2. Gigi pin arduino yang tidak menggigit sehingga kabel jumper mudah terlepas
3. LCD yang tidak disolder sehingga nyala mati ketika dijalankan karena mudah terlepas dari kabel jumper
4. IDE Arduino yang error tidak bisa upload source code ke dalam arduino
5. Kesalahan pemasangan pin sehingga output LCD dan keypad tidak sesuai dengan yang seharusnya
6. Potensiometer yang tidak berjalan dengan baik sehingga tulisan LCD tidak tampak
Referensi percobaan ini:
Well, saya rasa cukup untuk postingan kali ini.
Fikriansyah Adzaka
18213001
Tidak ada komentar:
Posting Komentar