DAFTAR PUSTAKA [1] Jazi Eko Istiyanto. 2014. Pengantar Elektronika & Instrumentasi. Jakarta: Penerbit Andi [2] Muhammad Syahwil. 2014. Panduan Mudah Simulasi Dan Praktek Mikrokontroller Arduino. Jakarta: Penerbit Andi [3] Anonim. Available at: http://www.immersa-lab.com/jenis-jenismikrokontroler.htm [Accessed on 28 October 2015, 18.25] [4] Anonim. 2015. Arduino Uno. [Online] Available at: https://www.arduino.cc/en/main/arduinoboarduno [Accessed on 11 October 2015, 19.45] [5] Anonim. Available at: http://www.picaxe.com/docs/led008.pdf [Accessed on 1 November 2015, 13.00] [6] Elektronika Dasar. 2012. Sensor Infra Red. [Online] Available at: www.elektronika-dasar.web.id [Accessed on 20 October 2015, 20.48] [7] Anonim. 2015. Arduino reference. [Online] Available at: https://www.arduino.cc/en/reference/homepage [Accessed on 11 October 2015, 20.30] 86
LAMPIRAN Sketch Program di software IDE arduino uno #include <LiquidCrystal.h> LiquidCrystal lcd (13, 12, 11, 10, 9, 8); #include <Servo.h> Servo myservo_in; int pos_in = 0; Servo myservo_out; int pos_out = 0; int PINTU_1A = A0; int PINTU_1B = A1; int PINTU_2 = A2; int PINTU_3 = A3; int buttonpin_in = 7; int buttonstate_in = 0; int buttonpin_out = 4; int buttonstate_out = 0; int GATE_IN; int GATE_OUT; int buzzer = 2; 87
void setup() Serial.begin(9600); myservo_in.attach(6); myservo_out.attach(5); pinmode(buttonpin_in, INPUT); pinmode(buttonpin_out, INPUT); pinmode(buzzer, OUTPUT); lcd.begin(16, 2); void loop() buttonstate_in = digitalread(buttonpin_in); GATE_IN = analogread(a4); Serial.print("Nilai GATE IN: "); Serial.println(GATE_IN); buttonstate_out = digitalread(buttonpin_out); GATE_OUT = analogread(a5); Serial.print("Nilai GATE IN: "); Serial.println(GATE_OUT); PINTU_1A = analogread(a0); Serial.print("Nilai PINTU 1A: "); Serial.println(PINTU_1A); PINTU_1B = analogread(a1); Serial.print("Nilai PINTU 1B: "); Serial.println(PINTU_1B); PINTU_2 = analogread(a2);
Serial.print("Nilai PINTU 2: "); Serial.println(PINTU_2); PINTU_3 = analogread(a3); Serial.print("Nilai PINTU 3: "); Serial.println(PINTU_3); //// PERINTAH GATE MASUK //// // KONDISI PINTU KOSONG if (GATE_IN <= 500 && PINTU_1A > 200 && PINTU_1B > 200 && PINTU_2 > 200 && PINTU_3 > 200) lcd.print(" JALAN PERLAHAN"); // KONDISI PINTU 1 TERISI else if (GATE_IN <= 500 && PINTU_1A <= 200 && PINTU_1B <= 200 && PINTU_2 > 200 && PINTU_3 > 200)
lcd.print(" JALAN PERLAHAN "); // KONDISI PINTU 1 DAN PINTU 2 TERISI else if (GATE_IN <= 500 && PINTU_1A <= 200 && PINTU_1B <= 200 && PINTU_2 <= 200 && PINTU_3 > 200) lcd.print(" JALAN PERLAHAN"); // KONDISI PINTU 2 TERISI else if (GATE_IN <= 500 && PINTU_1A > 200 && PINTU_1B > 200 && PINTU_2 <= 200 && PINTU_3 > 200)
lcd.print(" JALAN PERLAHAN "); // KONDISI PINTU 3 TERISI else if (GATE_IN <= 500 && PINTU_1A > 200 && PINTU_1B > 200 && PINTU_2 > 200 && PINTU_3 < 200) lcd.print(" JALAN PERLAHAN "); // KONDISI PINTU 1 DAN PINTU 3 TERISI else if (GATE_IN <= 500 && PINTU_1A <= 200 && PINTU_1B <= 200 && PINTU_2 > 200 && PINTU_3 <= 200)
lcd.print(" JALAN PERLAHAN "); // KONDISI PINTU 2 DAN PINTU 3 TERISI else if (GATE_IN <= 500 && PINTU_1A > 200 && PINTU_1B > 200 && PINTU_2 <= 200 && PINTU_3 <= 200) lcd.print(" JALAN PERLAHAN "); else if (buttonstate_in == HIGH && GATE_IN > 500)
for (pos_in = 0; pos_in <= 90; pos_in +=1) myservo_in.write(90); digitalwrite(buzzer, LOW); else if (GATE_IN <= 500 && PINTU_1A <= 200 && PINTU_1B <= 200 && PINTU_2 <= 200 && PINTU_3 <= 200) delay (1000); digitalwrite(buzzer, LOW); delay (1000); lcd.print(" WARNING "); lcd.print(" DILARANG MASUK "); //// PERINTAH GATE KELUAR //// else if (GATE_OUT <= 500 && buttonstate_out == LOW) for (pos_out = 0; pos_out <= 90; pos_out += 1) myservo_out.write(0); delay(20);
lcd.print(" SELAMAT JALAN "); lcd.print(" HATI-HATI "); else if (buttonstate_out == HIGH && GATE_OUT > 500) for (pos_out = 90; pos_out >= 0; pos_out -= 1) myservo_out.write(90); digitalwrite(buzzer, LOW); // KONDISI PINTU KOSONG else if ((PINTU_1A > 200) && (PINTU_1B > 200) && (PINTU_2 > 200) && (PINTU_3 > 200)) lcd.write("3 PINTU TERSEDIA");
// KONDISI PINTU 1 TERISI else if ((PINTU_1A <= 200) && (PINTU_1B <= 200) && (PINTU_2 > 200) && (PINTU_3 > 200)) lcd.print("2 PINTU TERSEDIA"); // KONDISI PINTU 2 TERISI else if ((PINTU_2 <= 200) && (PINTU_3 > 200) && (PINTU_1A > 200) && (PINTU_1B > 200)) lcd.print("2 PINTU TERSEDIA"); // KONDISI PINTU 3 TERISI else if ((PINTU_3 <= 200) && (PINTU_2 > 200) && (PINTU_1A > 200) && (PINTU_1B > 200)) lcd.print("2 PINTU TERSEDIA");
// KONDISI PINTU 1 DAN PINTU 2 TERISI else if ((PINTU_1A <= 200) && (PINTU_1B <= 200) && (PINTU_2 <= 200) && (PINTU_3 > 200)) lcd.print("1 PINTU TERSEDIA"); // KONDISI PINTU 2 DAN PINTU 3 TERISI else if ((PINTU_2 <= 200) && (PINTU_3 <= 200) && (PINTU_1A > 200) && (PINTU_1B > 200)) lcd.print("1 PINTU TERSEDIA"); // KONDISI PINTU 1 DAN PINTU 3 TERISI else if ((PINTU_1A <= 200) && (PINTU_1B <= 200) && (PINTU_3 <= 200) && (PINTU_2 > 200)) lcd.print("1 PINTU TERSEDIA");
// SEMUA PINTU TERISI else if ((PINTU_1A <= 200) && (PINTU_1B <= 200) && (PINTU_2 <= 200) && (PINTU_3 <= 200)) lcd.print(" PINTU PENUH "); lcd.print(" MOHON BERSABAR ");