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.
- 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);
}
}
}
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
HTML klik disini
Rangkaian Simulasi klik disini
Gambar Simulasi klik disini
Video Simulasi klik disini
Listing Program klik disini
Video Simulasi klik disini
Listing Program klik disini