Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. #include <Wire.h>
  2. #include <LiquidCrystal_I2C.h>
  3.  
  4. LiquidCrystal_I2C lcd(0x27,16,2);
  5. /*
  6.    Forbiddenbit.com
  7. */
  8. const int IR1 = 6; //Sensor bagian kiri
  9. const int IR2 = 7; //sensor bagian kanan
  10. const int motor1 = 2; //pin motor 1 input 1
  11. const int motor2 = 4;//pin motor 2 input 3
  12. #define PWM_motor1 3// pin motor 1 input 2
  13. #define PWM_motor2 5 // pin motor 2 input 4
  14.  
  15. int banding = 0; // perbandingan nilai kondisi terhadap logika 1 atau logika 0
  16.  
  17. void setup() {
  18.  
  19.   pinMode(motor1, OUTPUT); //inisialisasi pin motor bagian 1 input 1 sebagai output
  20.   pinMode(motor2, OUTPUT); //inisialisasi pin motor bagian 2 input 3 sebagai output
  21.   pinMode(PWM_motor1, OUTPUT);//inisialisasi pin motor bagian 1 input 2 sebagai output
  22.   pinMode(PWM_motor2, OUTPUT);//inisialisasi pin motor bagian 2 input 4 sebagai output
  23.  
  24.   pinMode(IR1, INPUT); // inisialisasi sensor kiri sebagai input
  25.   pinMode(IR2, INPUT); // inisialisasi sensor kanan sebagai input
  26.   lcd.begin(16,2);  // inisialisasi ukuran LCD
  27.   lcd.setCursor(0,0); // penanda karakter tercetak
  28.   lcd.print("  KONDISI MOTOR");
  29. }
  30.  
  31. void loop() {
  32.  
  33.   int sensor_kiri = digitalRead(IR1); // pembacaan nilai variabel secara digital
  34.   int sensor_kanan = digitalRead(IR2);
  35.  
  36.   if ((sensor_kiri != banding) && (sensor_kanan != banding)) //MAJU
  37.   {
  38.     digitalWrite(motor1, HIGH);
  39.     digitalWrite(motor2, HIGH);
  40.     digitalWrite(PWM_motor1, LOW);
  41.     digitalWrite(PWM_motor2, LOW);
  42.     lcd.setCursor(0,1);
  43.     lcd.print("     MAJU          ");
  44.   }
  45.  
  46.   else if ((sensor_kiri == banding) && (sensor_kanan != banding)) //BELOK KANAN
  47.   {
  48.     digitalWrite(motor1, HIGH);
  49.     digitalWrite(motor2, HIGH);
  50.     digitalWrite(PWM_motor1, HIGH);
  51.     digitalWrite(PWM_motor2, LOW);
  52.     lcd.setCursor(0,1);
  53.     lcd.print("  BELOK KANAN     ");
  54.   }
  55.  
  56.   else if ((sensor_kiri != banding) && (sensor_kanan == banding)) //BELOK KIRI
  57.   {
  58.     digitalWrite(motor1, HIGH);
  59.     digitalWrite(motor2, HIGH);
  60.     digitalWrite(PWM_motor1, LOW);
  61.     digitalWrite(PWM_motor2, HIGH);
  62.     lcd.setCursor(0,1);
  63.     lcd.print("  BELOK KIRI      ");  
  64.   }
  65.  
  66.   else  //DIAM
  67.   {
  68.     digitalWrite(motor1, LOW);
  69.     digitalWrite(motor2, LOW);
  70.     digitalWrite(PWM_motor1, LOW);
  71.     digitalWrite(PWM_motor2, LOW);
  72.     lcd.setCursor(0,1);
  73.     lcd.print("    BERHENTI        ");  
  74.   }
  75. }