TP 1 M2 Percobaan 1 Kondisi 5


1. Prosedur [Kembali]

  • Rangkai semua komponen 
  • Buat program di aplikasi arduino IDE
  • Setelah selesai masukkan program ke arduino 
  • Jalankan program pada simulasi sesuai kondisi


1. Arduino Uno
2. Sensor LDR

3. Dip Switch

4. LCD
5. Logic State

6. Power Supply

7. Ground

8. Motor DC


9. Baterai




10. Resistor

11. Potensiometer



12. IC L239 D



Diagram Blok 



  • Rangkaian Simulasi

  • Prinsip Kerja 
    Pada rangkaian percobaan 1 kondisi 5 ini menggunakan sensor LDR dan dipswitch yang berfungsi sebagai input, LCD dan motor dc berfungsi sebagai output. Ketika nilai sensor LDR < 200 atau >600 dan semua switch aktif maka output pada motor akan berputar ke kanan 3 detik lalu kiri 4 detik dan pada LCD akan menampilkan "Motor Aktif" pada kolom 1 LCD. Dan ketika nilai sensor LDR berada diluar rentang dan terdapat salah satu switch yang tidak aktif maka motor tidak berputar, dimana sesuai dengan kondisi 5 yaitu (Ketika ADC < 200 atau >600) dan semua switch aktif, motor berputar ke kanan 3 detik lalu kiri 4 detik dan muncul karakter pada kolom 1 LCD, namun jika ada salah satu switch yang tidak aktif maka motor tidak berputar.

  • Flowchart 

  • Listing Program 
#include <LiquidCrystal.h> 
LiquidCrystal lcd(13, 12, 11, 10, 9, 8);

int sw1 = 2; 
int sws[] = {3, 4, 7}; 
int numsw = 3; 
int front = 6; 
int back = 5; 

void setup() { 
  lcd.begin(16, 2); 
  pinMode(sw1, INPUT); 
  for(int thesw = 0; thesw < numsw; thesw++){ 
    pinMode(sws[thesw], INPUT); 
  } 
  pinMode(front, OUTPUT); 
  pinMode(back, OUTPUT); 
  Serial.begin(9600); 

void loop() { 
  int s1 = digitalRead(sw1); 
  int ldr = analogRead(A0); 

  if (s1 == HIGH) { 
    int activesw = 0; 
    for (int thesw = 0; thesw < numsw; thesw++) { 
      if (digitalRead(sws[thesw]) == HIGH) { 
        activesw++; 
      } 
    } 
    Serial.print("Number of Switch : "); 
    Serial.println(activesw); 

    if ((ldr < 200 || ldr > 600) && activesw == numsw) { // New condition
      lcd.clear(); 
      lcd.setCursor(0, 1); 
      lcd.print("Character"); // Display character at column 1
      digitalWrite(front, HIGH); // Turn motor right
      digitalWrite(back, LOW); 
      delay(3000); // Rotate right for 3 seconds

      digitalWrite(front, LOW); // Stop motor
      digitalWrite(back, LOW);
      delay(1000); // Pause for 1 second

      digitalWrite(front, LOW); // Turn motor left
      digitalWrite(back, HIGH); 
      delay(4000); // Rotate left for 4 seconds
    } else {
      lcd.clear(); 
      lcd.setCursor(4, 0); 
      lcd.print("KEl 24"); 
      delay(100); 
    } 
  } 
}

5. Kondisi [Kembali]

Percobaan 1 Kondisi 5 :
Ketika ADC < 200 atau >600) dan semua switch aktif, motor berputar ke kanan 3 detik lalu kiri 4 detik dan muncul karakter pada kolom 1 LCD

Rangkaian Simulasi  klik disini
Gambar Simulasi  klik disini
Video Simulasi  klik disini
Listing Program  klik disini