PERCOBAAN 6
Kontrol Putaran Motor Stepper
1. Prosedur [Kembali]
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]
A. Hardware
1. Button
2. Arduino Uno
3. Touch Sensor
4. ULN2003A
B. Digram Blok
Prinsip Kerja
Dalam simulasi menggunakan Proteus, prinsip kerja Rangkaian diatas ialah saat program dimulai, pin yang telah ditetapkan untuk mengendalikan motor (A, B, C, D), tombol (PB1, PB2, PB3, PB4), dan sensor Touch (TOUCH_SENSOR_PIN) akan diinisialisasi sesuai dengan mode yang dibutuhkan. Setelah inisialisasi, program akan memasuki loop utama. Di setiap iterasi loop, status tombol dan sensor Touch akan terus dipantau. Dengan menggunakan fungsi `digitalRead()`, program akan membaca kondisi tombol dan sensor Touch untuk mendapatkan nilai input yang dapat berupa HIGH atau LOW.
Kontrol gerakan motor akan terjadi berdasarkan nilai input yang diberikan oleh sensor Touch dan tombol. Jika sensor Touch mendeteksi adanya objek (nilai HIGH), program akan mengecek status tombol. Jika tombol tertentu ditekan, fungsi yang sesuai untuk menggerakkan motor akan dipanggil sesuai dengan arah yang telah ditentukan. Namun, jika tidak ada tombol yang ditekan, motor akan diam. Sebaliknya, jika sensor Touch tidak mendeteksi adanya objek (nilai LOW), program akan melakukan pengecekan serupa, tetapi motor akan bergerak dalam arah yang berlawanan. Ketika tidak ada tombol yang ditekan, fungsi `nonpergerakan()` akan dipanggil untuk menghentikan gerakan motor. Dengan demikian, dalam simulasi Proteus, pengguna akan melihat bahwa gerakan motor akan dikendalikan secara adaptif sesuai dengan input yang diberikan oleh tombol dan sensor Touch, sesuai dengan logika program yang telah ditetapkan.
A. 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 TOUCH_SENSOR_PIN 6 // Pin yang terhubung ke sensor Touch
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(TOUCH_SENSOR_PIN, INPUT); // Inisialisasi pin sensor Touch 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 touch_sensor = digitalRead(TOUCH_SENSOR_PIN); // Baca input dari sensor Touch
if (touch_sensor == HIGH) { // Jika sensor Touch aktif
if (b4 == LOW) {
pergerakan_3(); // Motor bergerak berlawanan arah jarum jam
} else if (b3 == LOW) {
pergerakan_2();
} else if (b2 == LOW) {
pergerakan_1();
} else if (b1 == LOW) {
pergerakan_4();
} else {
nonpergerakan();
}
} else { // Jika sensor Touch 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();
}
}
}
B. Flowchart
5. Kondisi [Kembali]
Kondisi →Percobaan 6 Kondisi 7
Button 1 - 7 menampilkan “LEI” di kolom 1 ,button 8 membuat tulisan “LEI” dalam keadaan running text ke kanan.
6. Video Simulasi [Kembali]
7. Download File [Kembali]
Download HMTL Klik disini
Download Simulasi Rangkaian Klik disini
Download Video Simulasi Klik disini
Download Datasheet ARDUINO UNO klik disini
Download Datasheet TOUCH SENSOR klik disini
Download Datasheet LCD 2X16 klik disini
Tidak ada komentar:
Posting Komentar