Anda di halaman 1dari 18

LAPORAN PRAKTIK MIKROKONTROLER DAN ANTARMUKA DASAR

KELAS TT-4ABCD - PSTT JTE PNJ

1 KODE DIY DIY-P8-A3

2 JUDUL Drive Thru Machine

3 PIC Solichana Yusuf

4 DESKRIPSI/CARA KERJA Pada project kali ini, kami membuat rangkaian menggunakan keypad. Cara kerja dari keypad yang
kelompok kami rangkai yaitu akan aktif bila sensor LDR mendapatkan cahaya lebih dari 512, begitu pula
dengan led dan lcd nya. Lalu tiap tombol switch pada keypad digunakan untuk daftar menu dari makanan
mesin tersebut yang nantinya akan muncul di lcd display. Saat keadaan diam (tidak memencet salah satu
tombol / switch di keypad) maka led akan merah. Led akan menyala hijau jika tombol pada keypad ditekan,
dan di lcd display juga akan muncul nama makanannya.

5 KOMPONEN 1. Keypad (1 buah)


2. lcd display (1 buah)
3. sensor LDR (1 buah)
4. led hijau dan merah (masing2 1 buah)
5. resistor 220 ohm (2 buah)
6. resistor 10k ohm (1 buah)
7. arduino uno (1 buah)
8. potensio (1 buah)

6 GAMBAR SKEMATIK
copy paste image ->
7 FLOW CHART START

copy paste image ->


INPUT
valLdr

valLdr valLdr Lcd no display,


> 512? < 512? Keypad dan LED OFF

Tampilkan LCD Display


“DIY-A3-P8”
“Drive thru
machine”

Tampilkan LCD Display


“silahkan tekan” dan
LED merah ON

INPUT
Keypad

Keypad
ditekan?

Scan keypad

Tampilkan LCD
Display (sesuai angka)
dan LED hijau ON

END
8 SKETCH //Drive Thru Machine
copy paste .ino
#include <Keypad.h>
#include <LiquidCrystal.h>

const byte rows = 4;


const byte cols = 3;
const int numRows = 2;
const int numCols = 16;
LiquidCrystal lcd(A5, A4, A3, A2, A1, 13);
char keys[rows][cols]=
{
{'1','2','3'},
{'4','5','6'},
{'7','8','9'},
{'*','0','#'}
};

byte rowPins[rows]={2,3,4,5};
byte colPins[cols]={6,7,8};
Keypad keypad= Keypad(makeKeymap(keys),rowPins,colPins,rows,cols);
int redPin=10;
int greenPin=11;
const int ldrPin=A0;
int val = 0;

void setup() {
pinMode(redPin, OUTPUT);
pinMode(greenPin, OUTPUT);
Serial.begin(9600);
lcd.begin(16,2);
lcd.setCursor(3,0);
lcd.print("DIY-A3-P8");
delay(2000);
lcd.clear();
lcd.setCursor(3,0);
lcd.print("DRIVE THRU");
lcd.setCursor(4,1);
lcd.print("MACHINE");
delay(2000);
lcd.clear();
}

void loop() {
val=analogRead(ldrPin);
Serial.print("nilai LDR = ");
Serial.println(val);
if (val>512)
{
lcd.setCursor(1,1);
lcd.print("silahkan tekan");
digitalWrite(redPin, HIGH);
digitalWrite(greenPin, LOW);
char key = keypad.getKey();
Serial.println(key);
Serial.print("Nilai Key = ");
if (key == '0')
{
lcd.clear();
lcd.setCursor(0,0);
lcd.print("macarons");
lcd.setCursor(0,2);
lcd.print("Rp 15.000");
displayBlink(5,100);
delay(500);
lcd.clear();
digitalWrite(redPin, LOW);
delay(500);
digitalWrite(greenPin, HIGH);
delay(1000);
lcd.setCursor(4,0);
lcd.print("Selamat");
lcd.setCursor(3,1);
lcd.print("Menikmati");
delay(1000);
lcd.clear();
}
if(key == '1')
{
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Burger");
lcd.setCursor(0,2);
lcd.print("Rp 15.000");
displayBlink(5,100);
delay(500);
lcd.clear();
digitalWrite(redPin, LOW);
delay(500);
digitalWrite(greenPin, HIGH);
delay(1000);
lcd.setCursor(4,0);
lcd.print("Selamat");
lcd.setCursor(3,1);
lcd.print("Menikmati");
delay(1000);
lcd.clear();

}
if (key == '2')
{
lcd.clear();
lcd.setCursor(0,0);
lcd.print("hotdog");
lcd.setCursor(0,2);
lcd.print("Rp 15.000");
displayBlink(5,100);
delay(500);
lcd.clear();
digitalWrite(redPin, LOW);
delay(500);
digitalWrite(greenPin, HIGH);
delay(1000);
lcd.setCursor(4,0);
lcd.print("Selamat");
lcd.setCursor(3,1);
lcd.print("Menikmati");
delay(1000);
lcd.clear();
}
if (key == '3')
{
lcd.clear();
lcd.setCursor(0,0);
lcd.print("kebab");
lcd.setCursor(0,2);
lcd.print("Rp 15.000");
displayBlink(5,100);
delay(500);
lcd.clear();
digitalWrite(redPin, LOW);
delay(500);
digitalWrite(greenPin, HIGH);
delay(1000);
lcd.setCursor(4,0);
lcd.print("Selamat");
lcd.setCursor(3,1);
lcd.print("Menikmati");
delay(1000);
lcd.clear();
}
if (key == '4')
{
lcd.clear();
lcd.setCursor(0,0);
lcd.print("fried fries");
lcd.setCursor(0,2);
lcd.print("Rp 10.000");
displayBlink(5,100);
delay(500);
lcd.clear();
digitalWrite(redPin, LOW);
delay(500);
digitalWrite(greenPin, HIGH);
delay(1000);
lcd.setCursor(4,0);
lcd.print("Selamat");
lcd.setCursor(3,1);
lcd.print("Menikmati");
delay(1000);
lcd.clear();
}
if (key == '5')
{
lcd.clear();
lcd.setCursor(0,0);
lcd.print("fried chicken");
lcd.setCursor(0,2);
lcd.print("Rp 15.000");
displayBlink(5,100);
delay(500);
lcd.clear();
digitalWrite(redPin, LOW);
delay(500);
digitalWrite(greenPin, HIGH);
delay(1000);
lcd.setCursor(4,0);
lcd.print("Selamat");
lcd.setCursor(3,1);
lcd.print("Menikmati");
delay(1000);
lcd.clear();
}
if (key == '6')
{
lcd.clear();
lcd.setCursor(0,0);
lcd.print("spaghetti");
lcd.setCursor(0,2);
lcd.print("Rp 15.000");
displayBlink(5,100);
delay(500);
lcd.clear();
digitalWrite(redPin, LOW);
delay(500);
digitalWrite(greenPin, HIGH);
delay(1000);
lcd.setCursor(4,0);
lcd.print("Selamat");
lcd.setCursor(3,1);
lcd.print("Menikmati");
delay(1000);
lcd.clear();
}
if (key == '7')
{
lcd.clear();
lcd.setCursor(0,0);
lcd.print("pizza");
lcd.setCursor(0,2);
lcd.print("Rp 15.000");
displayBlink(5,100);
delay(500);
lcd.clear();
digitalWrite(redPin, LOW);
delay(500);
digitalWrite(greenPin, HIGH);
delay(1000);
lcd.setCursor(4,0);
lcd.print("Selamat");
lcd.setCursor(3,1);
lcd.print("Menikmati");
delay(1000);
lcd.clear();
}
if (key == '8')
{
lcd.clear();
lcd.setCursor(0,0);
lcd.print("waffle");
lcd.setCursor(0,2);
lcd.print("Rp 10.000");
displayBlink(5,100);
delay(500);
lcd.clear();
digitalWrite(redPin, LOW);
delay(500);
digitalWrite(greenPin, HIGH);
delay(1000);
lcd.setCursor(4,0);
lcd.print("Selamat");
lcd.setCursor(3,1);
lcd.print("Menikmati");
delay(1000);
lcd.clear();
}
if (key == '9')
{
lcd.clear();
lcd.setCursor(0,0);
lcd.print("nuggets");
lcd.setCursor(0,2);
lcd.print("Rp 10.000");
displayBlink(5,100);
delay(500);
lcd.clear();
digitalWrite(redPin, LOW);
delay(500);
digitalWrite(greenPin, HIGH);
delay(1000);
lcd.setCursor(4,0);
lcd.print("Selamat");
lcd.setCursor(3,1);
lcd.print("Menikmati");
delay(1000);
lcd.clear();
}
else
{
lcd.clear();
digitalWrite(greenPin,LOW);
digitalWrite(redPin,LOW);
}
}
}

void displayBlink(int blinks, int duration)


{
while(blinks--)
{
lcd.noDisplay();
delay(duration);
lcd.display();
delay(duration);
}
}

9 ANALISIS SKETCH Pada rangkaian ini kami menggunakan 1 buah keypad, 1 buah lcd display, 1 buah potensiometer untuk
mengatur intensitas lcd display, arduino, 1 buah led merah dan 1 buah led hijau yang terhubung ke resistor
220 ohm, dan 1 buah sensor ldr yg terhubung resistor 10k ohm. Lcd dihubungkan pada pin A5, A4, A3, A2,
A1, dan 13. Keypad dihubungkan pada pin 2, 3, 4, 5, 6, 7, dan 8. Led dihubungkan pada pin 10 dan 11,
sedangkan sensor ldr dihubungkan pada pin A0.
10 KESIMPULAN 1. saat sensor LDR mendapatkan cahaya >512 maka keypad, lcd, dan led akan aktif.
2. saat sensor LDR mendapatkan cahaya <512, maka keypad dan led tidak aktif serta lcd no display.
3. saat keypad tidak ditekan maka led merah yang menyala serta lcd display akan menampilkan “silahkan
tekan”
4. saat keypad ditekan maka led hijau yang akan menyala serta lcd display akan menampilkan kata sesuai
angkanya (misalnya angka 1 : “spaggeti Rp 15.000” “silahkan menikmati”.

Anda mungkin juga menyukai