1. Rangkai semua komponen sesuai kondisi yang dipilih.
2. Buat program di aplikasi arduino IDE.
3. Setelah selesai masukkan program ke arduino di proteus.
4. Jalankan program pada simulasi dan cobakan sesuai dengan
modul dan kondisi.
5. Selesai.
2. Hardware dan diagram blok
[Kembali]
Hardware
1. Arduino Uno
2. Motor Stepper
3. Push Button
4. ULN2003Q
Diagram Blok
3. Rangkaian simulasi dan prinsip kerja
[Kembali]
Rangkaian percobaan sebelum disimulasi
Rangkaian percobaan setelah disimulasi
Prinsip Kerja
Pertama defenisikan dahulu konstanta pin ke arduino, a sebagai pin 8, b sebagai pin 9, c sebagai pin 10 dan seterusnya. Kemudian mulai komunikasi serial pada kecepatan 9600 baud. Kemudian tetapkan mode pin sebagai output dan input pullup. Jika nilai LDR kurang dari 2,5 Maka motor akan bergerak searah jarum jam namun jika LDR lebih dari 2,5 maka motor akan bergerak terbalik. Jika tidak ada button yg ditekan maka ia akan masuk pada kondisi nonpergerakan. Button pertama bergerak sebesar 0 derajat, button kedua 90 derajat, button ketiga 180 derajat, button keempat 270 derajat. Ada juga terdapat delay sebesar 100 Mili second.
Flowchart
Listing Program
// Mendefinisikan konstanta untuk pin Arduino
#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 LDR A0
void setup() {
Serial.begin(9600);
// Mulai komunikasi serial pada kecepatan 9600 baud
// Menetapkan mode pin sebagai OUTPUT atau INPUT_PULLUP
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(LDR, INPUT);
}
void pergerakan_1() {
digitalWrite(A, LOW);
digitalWrite(D, HIGH);
digitalWrite(B, LOW);
digitalWrite(C, HIGH);
}
void pergerakan_2() {
digitalWrite(A, HIGH);
digitalWrite(D, HIGH);
digitalWrite(B, LOW);
digitalWrite(C, LOW);
}
void pergerakan_3() {
digitalWrite(A, HIGH);
digitalWrite(D, LOW);
digitalWrite(B, HIGH);
digitalWrite(C, LOW);
}
void pergerakan_4() {
digitalWrite(A, LOW);
digitalWrite(D, LOW);
digitalWrite(B, HIGH);
digitalWrite(C, HIGH);
}
void pergerakan_5() {
digitalWrite(A, HIGH);
digitalWrite(D, LOW);
digitalWrite(B, HIGH);
digitalWrite(C, LOW);
}
void pergerakan_6() {
digitalWrite(A, LOW);
digitalWrite(D, LOW);
digitalWrite(B, HIGH);
digitalWrite(C, HIGH);
}
void pergerakan_7() {
digitalWrite(A, LOW);
digitalWrite(D, HIGH);
digitalWrite(B, LOW);
digitalWrite(C, HIGH);
}
void pergerakan_8() {
digitalWrite(A, HIGH);
digitalWrite(D, HIGH);
digitalWrite(B, LOW);
digitalWrite(C, LOW);
}
void nonpergerakan() {
digitalWrite(A, LOW);
digitalWrite(D, LOW);
digitalWrite(B, LOW);
digitalWrite(C, LOW);
}
void loop() {
int b4 = digitalRead(PB4);
int b3 = digitalRead(PB3);
int b2 = digitalRead(PB2);
int b1 = digitalRead(PB1);
int ldrValue = analogRead(LDR);
float ldrVoltage = ldrValue * (5.0 / 1023.0); // Ubah nilai ADC ke tegangan (5V sebagai referensi)
// Menampilkan nilai tegangan LDR ke serial monitor
Serial.print("LDR Voltage: ");
Serial.println(ldrVoltage);
if (ldrVoltage < 10) {
if (b4 == LOW) {
pergerakan_4();
} else if (b3 == LOW) {
pergerakan_3 ();
} else if (b2 == LOW) {
pergerakan_2 ();
} else if (b1 == LOW) {
pergerakan_1 ();
} else {
nonpergerakan();
}
} else {
if (b4 == LOW) {
pergerakan_8();
} else if (b3 == LOW) {
pergerakan_7();
} else if (b2 == LOW) {
pergerakan_6();
} else if (b1 == LOW) {
pergerakan_5();
} else {
nonpergerakan();
}
}
delay(100);
}
Kondisi →Percobaan 6 Kondisi 5
Sertakan dengan LDR ketika bernilai <2.50 putaran motor searah jarum jam.
7. Link Download
[Kembali]
Download HTML klik disini
Download Video Praktikum klik disini
Download Listing Program klik disini
Download Library Arduino Uno klik disini
Donwload Datasheet Arduino Uno klik disini
Donwload Datasheet Motor Stepper klik disini
0 komentar:
Posting Komentar