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.
6 GAMBAR SKEMATIK
copy paste image ->
7 FLOW CHART START
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>
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);
}
}
}
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”.