Anda di halaman 1dari 7

1.

Tampilan LCD dengan Input Digital

#include <LiquidCrystal.h>
const int switchPin = 8;
const int ledPin = 13;
int state;
int lastState;
int buttonCounter = 0;
// initialize the library with the umber of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup() {
// set up the LCD's number of columns and rows:
lcd.begin(16, 2);
// Print a message to the LCD.
lcd.print("Mikro&Antarmuka");
Serial.begin(9600);
pinMode(switchPin, INPUT);
pinMode(ledPin, OUTPUT);
}
void loop() {
// set the cursor to column 0, line 1
// (note: line 1 is the second row, since counting begins with 0):
lcd.setCursor(0, 1);
// print the number of seconds since reset:
state = digitalRead(switchPin);
if (state != lastState){
if (state == HIGH){
if (buttonCounter <= 8){
buttonCounter++;
} else buttonCounter=0;
Serial.println(buttonCounter);
}
lastState = state;
}
lcd.print(buttonCounter);
delay(2);
}

I. Hasil dan Analisa


Dari percobaan yang telah dilakukuan dapat disimpulkan bahwa pada percobaan ini
menggunakan LCD dalam menampilakn outputnya. Alat yang digunakan pada percobaan ini
berupa modul Arduino, modul LCD 2x16 karakter, potensiometer 10K ohm, resistor 220 ohm
dan protoboard. Rangkaian dirangkai seperti gambar rangkaian diatas dan jika rangkaian
sudah dibuat, board Arduino dihubungkan ke PC. Pada PC settingan port Arduino yang
masuk ke PC dilihat dan pada saat memogram Arduino pada settingannya disesuaikan
dengan port Arduino yang masuk ke PC. Selanjutnya buat program yang akan ditampilkan
pada LCD.
 Untuk percobaan pertama seperti program yang sudah dituliskan diatas akan
diperoleh gambar tampilan pada LCD berupa gambar berikut :

Dari hasil percobaan pertama yang dilakukan dapat diperoleh hasil seperti gambar
tersebut dengan menambahkan tulisan pada program
// Print a message to the LCD.
lcd.print("Mikro&Antarmuka");
dari ketikkan program tersebut diperintahkan untuk menghasilkan tampilan berupa
tulisan Mikro&Antarmuka, jika akan mengganti dengan tulisan lain cukup dengan
mengganti pada program yang bertuliskan “Mikro&Antarmuka” dengan tulisan yang
diinginkan. Tulisan ini akan ditampilkan pada baris 2 dan memulai tulisan di kolom ke
16, pada program cukup dituliskan dengan
lcd.begin(16, 2);
Sedangkan pada baris 1 dan kolom 0 akan ditampilkan perhitungan dimulai dari angka 0,
setelah angka 0 muncul berganti dengan angka 1 dan begitu seterusnya dengan
pertambahan perhitungan setiap pergantian sebayak 1 dan delay yang diberikan
sebesar 1detik.
Fungsi Potensiometer pada percobaan ini digunakan untuk mengatur cahaya yang
ditampilkan pada LCD. Semakin besar hambatan yang diberikan dengan memutar
potensiometer kea rah kanan maka semakin cerah tampilan pada LCD.
 Pada tugas percobaan pertama diminta untuk menampilkan tampilan seperti
gambar berikut dengan kedua baris bergerak ke kiri hingga semua karakter hilang,
kemudian bergerak ke kanan hingga semua karakter hilang dan berulang.

Hasil percobaan seperti gambar diatas bisa didapatkan dengan membuat program yang
dijalankan dengan perintah berikut :
#include <LiquidCrystal.h>

// initialize the library with the numbers of the interface pins


LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {
// set up the LCD's number of columns and rows:
lcd.begin(16, 2);
// Print a message to the LCD.
lcd.print("ERNI NOVITA");
delay(1000);
lcd.setCursor(0,1);
//Print a message to the LCD.
lcd.print("3.33.13.0.08");
delay (1000);
}
void loop() {
// scroll 13 positions (string length) to the left
// to move it offscreen left:
for (int positionCounter = 0; positionCounter < 13; positionCounter++) {
// scroll one position left:
lcd.scrollDisplayLeft();
// wait a bit:
delay(150);
}

// scroll 29 positions (string length + display length) to the right


// to move it offscreen right:
for (int positionCounter = 0; positionCounter < 29; positionCounter++) {
// scroll one position right:
lcd.scrollDisplayRight();
// wait a bit:
delay(150);
}

// scroll 16 positions (display length + string length) to the left


// to move it back to center:
for (int positionCounter = 0; positionCounter < 16; positionCounter++) {
// scroll one position left:
lcd.scrollDisplayLeft();
// wait a bit:
delay(150);
}

// delay at the end of the full loop:


delay(1000);

}
Dari program yang ditiliskan seperti gambar diatas akan diperoleh tampilan dengan
kedua baris akan menggeser ke kiri kemudian bergeser kekanan dan kembali lagi
kemudian berhenti dan berlanjut. Saat berhenti dan dilanjut untuk menggeser diberikan
delay selama 1 detik.
 Pada percobaan kedua pada jobsheet ini setelah diberikan program seperti pada
program ke dua LCD dengan input Digital akan diperoleh tampilan seperti gambar
berikut :
Dalam percobaan ini diberikan inputan berupa switch button, jadi jika tombol pada
switch ditekan tampilan yang awalnya pada baris 2 menampilkan angka 0 akan berganti
menjadi 1 saat ditekan tombol switchnya dan akan berganti setiap tombol pada switch
ditekan hingga hitungan sampai pada 9, setelah itu akan berganti kembali ke 0. Hal ini dapat
terjadi karena pada program telah diatur dengan menuliskan program berikut :
// set the cursor to column 0, line 1
// (note: line 1 is the second row, since counting begins with 0):
lcd.setCursor(0, 1);
// print the number of seconds since reset:
state = digitalRead(switchPin);
if (state != lastState){
if (state == HIGH){
if (buttonCounter <= 8){
buttonCounter++;
} else buttonCounter=0;
Serial.println(buttonCounter);
}
lastState = state;
}
lcd.print(buttonCounter);
delay(2);
}

 Pada percobaan berikutnya yaitu pada tugas membuat program sama seperti pada
tugas percobaan pertama tadi hanya saja pergeseran pada tampilan terjadi saat
switch ditekan. Hasil percobaan seperti gambar berikut :
Untuk menghasilkan tampilan seperti gambar diatas dan dengan menekan tombol
switch dapat menggeser kedua baris berjalan ke keiri kemudian kembali bergeser
kekanan dengan mengetikkan program sebagai berikut :
#include <LiquidCrystal.h>

const int switchPin = 8;


const int ledPin = 13;
int state;
int lastState;
int buttonCounter =3;
//initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup()
{
// set up the LCD's number of columns and rows:
lcd.begin(16, 2);
// Print a message to the LCD.
lcd.print("Erni");
delay(1000);
lcd.setCursor(0,1);
//Print a message to the LCD.
lcd.print("3.33.13.0.08");
delay (1000);
}
void loop()
{
//set the cursor to coloumn 0, line 1
// (note:line 1 is the second row, since counting begins with 0):
lcd.setCursor(0,1);
//print the number of seconds since reset:
state = digitalRead(switchPin);
if (state !=lastState) {
if (state==HIGH){
if(buttonCounter<=8){
// scroll 13 positions (string length) to the left
// to move it offscreen left:
for (int positionCounter =0; positionCounter <13; positionCounter++) {
lcd.scrollDisplayLeft();
delay(150);
}
for (int positionCounter =0; positionCounter<29; positionCounter++) {
lcd.scrollDisplayRight();
delay(150);
}

for (int positionCounter=0; positionCounter<16; positionCounter++) {


lcd.scrollDisplayLeft();
delay(150);
}

// delay at the end of the full loop:


delay(1000);
}
else buttonCounter=0;
Serial.println(buttonCounter);
}
lastState = state;
}
lcd.print(buttonCounter);
delay(2);
}
Dari program diatas ketika tombol switch ditekan tampilan akan bergeser ke kiri dan
kembali bergeser ke kanan seteleh itu berhenti. Pergeseran ini hanya terjadi saat
diberikan input dengan menekan tombol switch.

Anda mungkin juga menyukai