F Renaldi Kapri Utama (2110957003) : Tugas Pendahuluan 2

Tugas Pendahuluan 2




Modul 2

Tugas Pendahuluan 2 
Percobaan 6 Kondisi 3

1. Rangkailah seperti rangkaian berikut
2. Buka Arduino IDE dan masukan listing program
3. Upload program ke arduino
4.Variasikan logika sensor yang ditekan dan amati keluarannya pada Motor

2. Hardware dan Diagram Blok [Kembali]

Hardware :

1. Arduino





    2. Sensor Infrared


    3. IC ULN2003



    4. Power supply



    5. Ground



    6. Motor Stepper





    7. Button







=>Diagram Blok:



3. Rangkaian Simulasi dan Prinsip Kerja [Kembali]

=>Rangkaian Simulasi :



=>Prinsip Kerja :

a. Menggunakan sensor inframerah yang tersambung ke pin 1 pada board Arduino. 
b. Ada Button yang terhubung ke pin 2 hingga 5 pada board Arduino. 
c. Ada sirkuit terintegrasi (IC) yang terhubung ke pin 8 hingga 11 pada board Arduino, dan IC ini terhubung ke motor stepper.

    Sensor inframerah memiliki fungsi yang jelas, yaitu ketika mendeteksi High tinggi (1) atau aktif, motor akan berputar berlawanan arah jarum jam, dan apabila mendeteksi sinyal Low(0) maka motor berputar searah jarum jam. Tombol-tombol berperan dalam mengatur putaran motor:
a. ketika satu tombol ditekan, motor akan berputar 90 derajat.
b. ketika dua tombol ditekan, motor akan berputar 180 derajat, dan seterusnya.
   
 
4. Flowchart dan Listing Program [Kembali]

=>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.

6. Video Simulasi [Kembali]



7. Download File [Kembali]
a. HTML                 [klik]
b. File Rangkaian    [klik]
c. Video Percobaan [klik]
d. Listing Program  [klik]
e. Datasheet           [klik]

Tidak ada komentar:

Posting Komentar