#include <LiquidCrystal.h>
LiquidCrystal lcd (12, 11, 5, 4, 3, 2);
int PD_1 = 7;
int PD_2 = 6;
int counter=0;
int currentState=0;
int previousState_1=0;
int previousState_2=0;
int PD_1_op;
int PD_2_op;
void setup() {
serial.begin (9600);
pinMode(PD_1, INPUT);
pinMode(PD_2, INPUT);
LCD.BEGIN (16,2);
}
void loop () {
lcd.setCursor (0,0);
lcd.print("Parkir");
lcd.setCursor (0,1);
lcd.print("Mobil");
PD_1_op = digitalRead(PD_1);
PD_2_op = digitalRead(PD_2);
serial.println(digitalRead(PD_2);
if (PD_1_op == HIGH '' PD_2_op == LOW)
{
currentState=1;
}
else
{
currentState=0;
if (currentState!=previousState_1)
{
if(currentState==1)
{
counter=countert+1;
lcd.setCursor(13,0);
lcd.print(counter);
lcd.setCursor(5,1);
lcd.print
("Masuk");
}
}
previousState_1=currentState;
delay (250);
serial.println(counter);
if (PD_1_op == LOW '' PD_2_op == HIGH)
{
currentState=1;
}
else
{
currentState=0;
}
if(currentState!=previousState_2)
{
if(currentState==1)
{
counter=counter-1;
lcd.setCursor(13,0);
lcd.print(counter);
lcd.setCursor(5,1);
lcd.print("Keluar");
}
}
previousState_2=currentState;
delay (250);
serial.println(counter);
}
Penjelasan Listing Program :
#include <LiquidCrystal.h>
LiquidCrystal lcd (12, 11, 5, 4, 3, 2);
Code diatas
berfungsi
untuk
memasukan library untuk
penggunaan LCD.
int PD_1 = 7;
int PD_2 = 6;
Program yang
digunakan untuk menentukan input 1 yaitu PD_1 sebagai pin 7 dan input
2 sebagai pin 6 pada Nuvoton NUC 131.
int counter=0;
int currentState=0;
int previousState_1=0;
int previousState_2=0;
int PD_1_op;
int PD_2_op;
void setup() {
Program diatas berfungsi untuk membuat kondisi dimana counternya dimulai dari nilai 0.
serial.begin (9600);
pinMode(PD_1, INPUT);
pinMode(PD_2, INPUT);
lcd.begin (16,2);
Program diatas berfungsi untuk memulai inisialisasi, selanjutnya variabel PD_1 dan PD_2 yang telah
didefinisikan
sebagai pin 7 pada
nuvoton NUC 131 berdasarkan
program sebelumnya akan dibuat menjadi input pada
nuvoton NUC 131.
void loop () {
lcd.setCursor (0,0);
lcd.print("Parkir");
lcd.setCursor (0,1);
lcd.print("Mobil");
Program diatas berfungsi untuk membuat output berupa
tampilan
teks Parkir pada baris 1 kolom 1 lcd
dan
untuk
membuat output berupa
teks Mobil pada LCD bariske 2 kolom
ke 1.
PD_1_op = digitalRead(PD_1);
PD_2_op = digitalRead(PD_2);
serial.println(digitalRead(PD_2);
Program diatas berfungsi untuk mengatur agar PD_1 dan PD_2 yang telah
didefinisikan
sebagai input berdasarkan
program sebelumnya akan diubah menjadi pin input digital.
if (PD_1_op == HIGH '' PD_2_op == LOW)
{
currentState=1;
}
else
{
currentState=0;
if (currentState!=previousState_1)
Program diatas berfungsi untuk melakukan proses percabangan yang terdiri
dari
beberapa
kondisi. Kondisi yang
pertama adalah saat input digital PD_1 bernilai 1 dan input digital
PD_2 bernilai 0.
if(currentState==1)
{
counter=countert+1;
lcd.setCursor(13,0);
lcd.print(counter);
lcd.setCursor(5,1);
lcd.print
("Masuk");
}
}
Program diatas
berfungsi
untuk
membuat
nilai
dari counter akan
bertambah
satu
apabila
dalam
keadaan input digital 1
dalam keadaan off dan input digital 2 dalam
keadaan on
dan nilai dari counter tersebut akan ditampilkan pada LCD.