Gambar 1. Calculator with LCD Display and Keypad
Hallo selamat malam. Kembali lagi saya akan membagikan hasil proyek Arduino ke empat kami mengenai kalkulator dari LCD dan keypad. Proyek ini menghasilkan sebuah kalkulator yang terbentuk dari rangkaian arduino, LCD, keypad, dan potensiometer. Cara kerja alat ini sama seperti kalkulator pada umumnya, dimana untuk masukan input dengan menekan tombol pada keypad dan ditampilkan pada LCD.
Pada proyek ini kami menggunakan beberapa komponen yaitu sebagai berikut:
Gambar 2. Komponen-komponen yang digunakan
Hallo selamat malam. Kembali lagi saya akan membagikan hasil proyek Arduino ke empat kami mengenai kalkulator dari LCD dan keypad. Proyek ini menghasilkan sebuah kalkulator yang terbentuk dari rangkaian arduino, LCD, keypad, dan potensiometer. Cara kerja alat ini sama seperti kalkulator pada umumnya, dimana untuk masukan input dengan menekan tombol pada keypad dan ditampilkan pada LCD.
Pada proyek ini kami menggunakan beberapa komponen yaitu sebagai berikut:
1. Arduino UNO ATMega328 + Kabel USB
2. LCD 2x16
3. Potensiometer 1 kilo ohm
4. Keypad 4x4
5. Kabel Jumper male-male
6. Breadboard
7. Laptop
Berikut ini merupakan diagram skematik dari proyek ini:
#include <LiquidCrystal.h>
#include <Keypad.h>
//Inisiasi Pin
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
const byte ROWS = 4;
const byte COLS = 4;
char keys [ROWS] [COLS] = {
{'1', '2', '3', '+'},
{'4', '5', '6', '-'},
{'7', '8', '9', '*'},
{'C', '0', '=', '/'}
};
byte rowPins[ROWS] = {13, 10, 9, 8};
byte colPins[COLS] = {7, 6, 1, 0};
Keypad myKeypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
boolean presentValue = false;
boolean next = false;
boolean final = false;
String num1, num2;
float answer;
char op;
void setup()
{
lcd.begin(16,2);
lcd.setCursor(0,0);
lcd.print("Kalkulator Sayur");
lcd.setCursor(0,1);
lcd.print(" dari");
delay(5000);
lcd.setCursor(0,0);
lcd.print(" Jampang Team ");
lcd.setCursor(0,1);
lcd.print(" ~~~~~~~~~~ ");
delay(5000);
lcd.clear();
}
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 (presentValue != 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 (presentValue == false && key != NO_KEY && (key == '/' || key == '*' || key == '-' || key == '+'))
{
if (presentValue == false)
{
presentValue = true;
op = key;
lcd.setCursor(15,0);
lcd.print(op);
}
}
else if (final == true && key != NO_KEY && key == '='){
if (op == '+'){
answer = num1.toInt() + num2.toInt();
}
else if (op == '-'){
answer = num1.toInt() - num2.toInt();
}
else if (op == '*'){
answer = num1.toInt() * num2.toInt();
}
else if (op == '/'){
answer = num1.toFloat() / num2.toFloat();
}
lcd.clear();
lcd.setCursor(15,0);
lcd.autoscroll();
lcd.print(answer);
lcd.noAutoscroll();
}
else if (key != NO_KEY && key == 'C'){
lcd.clear();
presentValue = false;
final = false;
num1 = "";
num2 = "";
answer = 0;
op = ' ';
}
}
Sumber: http://playground.arduino.cc/Main/KeypadCalculator (dengan beberapa penyesuaian)
Hasil implementasi selengkapnya dapat dilihat di:
https://youtu.be/BtphYU1WAmu
Gambar 2. Komponen-komponen yang digunakan
Hallo selamat malam. Kembali lagi saya akan membagikan hasil proyek Arduino ke empat kami mengenai kalkulator dari LCD dan keypad. Proyek ini menghasilkan sebuah kalkulator yang terbentuk dari rangkaian arduino, LCD, keypad, dan potensiometer. Cara kerja alat ini sama seperti kalkulator pada umumnya, dimana untuk masukan input dengan menekan tombol pada keypad dan ditampilkan pada LCD.
Pada proyek ini kami menggunakan beberapa komponen yaitu sebagai berikut:
1. Arduino UNO ATMega328 + Kabel USB
2. LCD 2x16
3. Potensiometer 1 kilo ohm
4. Keypad 4x4
5. Kabel Jumper male-male
6. Breadboard
7. Laptop
Berikut ini merupakan diagram skematik dari proyek ini:
#include <LiquidCrystal.h>
#include <Keypad.h>
//Inisiasi Pin
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
const byte ROWS = 4;
const byte COLS = 4;
char keys [ROWS] [COLS] = {
{'1', '2', '3', '+'},
{'4', '5', '6', '-'},
{'7', '8', '9', '*'},
{'C', '0', '=', '/'}
};
byte rowPins[ROWS] = {13, 10, 9, 8};
byte colPins[COLS] = {7, 6, 1, 0};
Keypad myKeypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
boolean presentValue = false;
boolean next = false;
boolean final = false;
String num1, num2;
float answer;
char op;
void setup()
{
lcd.begin(16,2);
lcd.setCursor(0,0);
lcd.print("Kalkulator Sayur");
lcd.setCursor(0,1);
lcd.print(" dari");
delay(5000);
lcd.setCursor(0,0);
lcd.print(" Jampang Team ");
lcd.setCursor(0,1);
lcd.print(" ~~~~~~~~~~ ");
delay(5000);
lcd.clear();
}
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 (presentValue != 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 (presentValue == false && key != NO_KEY && (key == '/' || key == '*' || key == '-' || key == '+'))
{
if (presentValue == false)
{
presentValue = true;
op = key;
lcd.setCursor(15,0);
lcd.print(op);
}
}
else if (final == true && key != NO_KEY && key == '='){
if (op == '+'){
answer = num1.toInt() + num2.toInt();
}
else if (op == '-'){
answer = num1.toInt() - num2.toInt();
}
else if (op == '*'){
answer = num1.toInt() * num2.toInt();
}
else if (op == '/'){
answer = num1.toFloat() / num2.toFloat();
}
lcd.clear();
lcd.setCursor(15,0);
lcd.autoscroll();
lcd.print(answer);
lcd.noAutoscroll();
}
else if (key != NO_KEY && key == 'C'){
lcd.clear();
presentValue = false;
final = false;
num1 = "";
num2 = "";
answer = 0;
op = ' ';
}
}
#include <Keypad.h>
//Inisiasi Pin
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
const byte ROWS = 4;
const byte COLS = 4;
char keys [ROWS] [COLS] = {
{'1', '2', '3', '+'},
{'4', '5', '6', '-'},
{'7', '8', '9', '*'},
{'C', '0', '=', '/'}
};
byte rowPins[ROWS] = {13, 10, 9, 8};
byte colPins[COLS] = {7, 6, 1, 0};
Keypad myKeypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
boolean presentValue = false;
boolean next = false;
boolean final = false;
String num1, num2;
float answer;
char op;
void setup()
{
lcd.begin(16,2);
lcd.setCursor(0,0);
lcd.print("Kalkulator Sayur");
lcd.setCursor(0,1);
lcd.print(" dari");
delay(5000);
lcd.setCursor(0,0);
lcd.print(" Jampang Team ");
lcd.setCursor(0,1);
lcd.print(" ~~~~~~~~~~ ");
delay(5000);
lcd.clear();
}
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 (presentValue != 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 (presentValue == false && key != NO_KEY && (key == '/' || key == '*' || key == '-' || key == '+'))
{
if (presentValue == false)
{
presentValue = true;
op = key;
lcd.setCursor(15,0);
lcd.print(op);
}
}
else if (final == true && key != NO_KEY && key == '='){
if (op == '+'){
answer = num1.toInt() + num2.toInt();
}
else if (op == '-'){
answer = num1.toInt() - num2.toInt();
}
else if (op == '*'){
answer = num1.toInt() * num2.toInt();
}
else if (op == '/'){
answer = num1.toFloat() / num2.toFloat();
}
lcd.clear();
lcd.setCursor(15,0);
lcd.autoscroll();
lcd.print(answer);
lcd.noAutoscroll();
}
else if (key != NO_KEY && key == 'C'){
lcd.clear();
presentValue = false;
final = false;
num1 = "";
num2 = "";
answer = 0;
op = ' ';
}
}
Sumber: http://playground.arduino.cc/Main/KeypadCalculator (dengan beberapa penyesuaian)
Hasil implementasi selengkapnya dapat dilihat di:
https://youtu.be/BtphYU1WAmu
0 komentar:
Posting Komentar