Selasa, 19 Maret 2024

Tugas Pendahuluan 2



Modul II PWM, ADC dan INTERUPT


PERCOBAAN 6 ( Kontrol Putaran Motor Stepper)

1. Prosedur[Kembali]

    • Rangkailah seperti rangkaian berikut 
    • Buka Arduino IDE dan masukan listing program Upload program ke arduino 
    • Variasikan tombol yang ditekan dan amati keluarannya pada LCD









Prinsip Kerja

Rangkaian ini berfungsi sebagai berikut:
Mendefinisikan pin dan variabel:

Mendefinisikan pin yang dapat digunakan dengan nama standar menggunakan #define.
Misalnya, A sebagai pin 8, B sebagai pin 9, dan seterusnya untuk mempermudah pin . untuk mengidentifikasi

Pada fungsi setup(), inisialisasi koneksi serial pada 9600 baud.
Atur pin sebagai input atau output sesuai kebutuhan, beberapa pin menggunakan resistor pull-up internal.

Fungsi pemindahan:
Ada beberapa fungsi yang mengontrol pergerakan motor stepper berdasarkan urutan kumparan motor.
n nFungsi diam:
Fungsi statis () menonaktifkan semua kumparan motor stepper sehingga motor tidak bergerak.
Sirkuit utama:

Dalam fungsi Loop()
nSelain itu, nilai sensor LDR (Lum Dependent Resistor) dibaca untuk menentukan apakah motor harus beroperasi dalam mode normal atau mundur tergantung pada kondisi cahaya yang terdeteksi. .

Logika kontrol:
Jika nilai LDR rendah (kurang dari 2,5), motor akan bergerak searah jarum jam
Jika nilai LDR tinggi (lebih besar atau sama dengan 10), motor akan bergerak berlawanan arah.
Jika tidak Saat Anda menekan tombol atau nilai LDR tidak memenuhi ketentuan, maka motor tidak akan bergerak (tidak bergerak()).
Delay:
Referensinya adalah 100 milidetik (delay(100)) di akhir loop untuk memeriksa kecepatan pemutaran dan memberi waktu pada motor untuk bergerak..
    





Listing Program

// Mendefinisikan konstanta untuk pin Arduino
#define A 8
#define B 9
#define C 10
#define D 11
#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(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 nonpergerakan() {
  digitalWrite(A, LOW);
  digitalWrite(D, LOW);
  digitalWrite(B, LOW);
  digitalWrite(C, LOW);
}

void loop() {
  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 < 2.5) {
    pergerakan_1();
    delay(100);
    pergerakan_2();
    delay(100);
    pergerakan_3();
    delay(100);
    pergerakan_4();
    delay(100);
  } else {
    pergerakan_4();
    delay(100);
    pergerakan_3();
    delay(100);
    pergerakan_2();
    delay(100);
    pergerakan_1();
    delay(100);
  }
}


Saat Praktikum

   
 P6K5 (Sertakan dengan LDR ketika bernilai <2.50 putaran motor searah jarum jam )





Download File HTML klik disini
Download Rangkaian Simulasi Proteus klik disini
Download File Video Rangkaian klik disini
Download File Arduino klik disini
Download Datasheet Komponen klik disini
 






Tidak ada komentar:

Posting Komentar

Entri yang Diunggulkan

  [ MENUJU AKHIR ] [KEMBALI KE MENU SEBELUMNYA] DAFTAR ISI 1. Pendahuluan 2. Tujuan 3. Alat dan Bahan 4. Dasar Teori 5. Perc...