Modul 2
=>Flowchart :
=>Listing Program :
#define A 8
#define B 9
#define C 10
#define D 11
#define PB1 2
#define PB2 3
#define PB3 4
#define PB4 5
#define IR_SENSOR_PIN 6 // Pin yang terhubung ke sensor IR
void setup() {
Serial.begin(9600);
pinMode(A, OUTPUT);
pinMode(B, OUTPUT);
pinMode(C, OUTPUT);
pinMode(D, OUTPUT);
pinMode(PB1, INPUT_PULLUP);
pinMode(PB2, INPUT_PULLUP);
pinMode(PB3, INPUT_PULLUP);
pinMode(PB4, INPUT_PULLUP);
pinMode(IR_SENSOR_PIN, INPUT); // Inisialisasi pin sensor IR sebagai input
}
void pergerakan_1() {
digitalWrite(A, 0);
digitalWrite(D, 1);
digitalWrite(B, 0);
digitalWrite(C, 1);
}
void pergerakan_2() {
digitalWrite(A, 1);
digitalWrite(D, 1);
digitalWrite(B, 0);
digitalWrite(C, 0);
}
void pergerakan_3() {
digitalWrite(A, 1);
digitalWrite(D, 0);
digitalWrite(B, 1);
digitalWrite(C, 0);
}
void pergerakan_4() {
digitalWrite(A, 0);
digitalWrite(D, 0);
digitalWrite(B, 1);
digitalWrite(C, 1);
}
void nonpergerakan() {
digitalWrite(A, 0);
digitalWrite(D, 0);
digitalWrite(B, 0);
digitalWrite(C, 0);
}
void loop() {
int b4 = digitalRead(PB4);
int b3 = digitalRead(PB3);
int b2 = digitalRead(PB2);
int b1 = digitalRead(PB1);
int ir_sensor = digitalRead(IR_SENSOR_PIN); // Baca input dari sensor IR
if (ir_sensor == HIGH) { // Jika sensor IR aktif
if (b4 == LOW) {
pergerakan_1(); // Motor bergerak berlawanan arah jarum jam
} else if (b3 == LOW) {
pergerakan_2();
} else if (b2 == LOW) {
pergerakan_3();
} else if (b1 == LOW) {
pergerakan_4();
} else {
nonpergerakan();
}
} else if(ir_sensor == LOW){ // Jika sensor IR tidak aktif
if (b4 == LOW) {
pergerakan_4(); // Motor bergerak sesuai arah jarum jam
} else if (b3 == LOW) {
pergerakan_3();
} else if (b2 == LOW) {
pergerakan_2();
} else if (b1 == LOW) {
pergerakan_1();
} else {
nonpergerakan();
}
}
}
5. Kondisi [Kembali]
Sertakan dengan IR sensor, ketika berlogika HIGH putaran motor berlawanan arah jarum jam.
.png)




.png)
.png)
.png)

.png)

.png)

.png)

Tidak ada komentar:
Posting Komentar