Praktikum up&uc_Modul 2_Kontrol Putaran Motor DC

Percobaan V

Kontrol Putaran Motor DC

1. Prosedur [Kembali]

  • Rangkailah seperti rangkaian berikut.
  • Buka Arduino IDE dan masukan listing program.
  • Upload program ke arduino.
  • Variasikan suhu dan logika sensor infrared dan amati keluarannya pada motor dan dotmatriks.

2. Hardware dan Diagram Blok [Kembali]



Diagram Blok:



Gambar 2. Rangkaian Simulasi.

Prinsip Kerja:

    Jalan kerja rangkaian ini ialah sensor suhu berfungsi sebagai pengatur arahan motor sedangkan sensor infrared sebagai enable motor driver, ketika suhu < 30 maka akan memutarkan motor kearah kanan dan arahnya ditampilkan pada dotmatriks sedangkan ketika suhu >40 maka akan memutarkan motor kearah kiri dan arahnya ditampilkan pada dotmatriks. Ketika suhu diatara 30 dan 40 maka motor tidak bergerak dan ditampilkan 'x' pada dotmatriks.

4. Flowchart dan Listing Program [Kembali]

Flowchart:

Flowchart Rangkaian

Listing Program:

#include <LedControl.h>

// Inisialisasi modul MAX7219
LedControl lc = LedControl(5,6,7,1); // Pin DIN, CLK, LOAD (CS) dihubungkan ke Arduino

byte patterns[8] = {0, 0, 0, 0, 0, 0, 0, 0}; // Pola LED untuk ditampilkan

// Pengaturan pin untuk dipswitch dan motor
const int LM35 = A0;
const int infrared = 8;
const int enable = 4;
const int motor1Pin1 = 2;
const int motor1Pin2 = 3;

void setup() {
    // Set up dot matrix module
  lc.shutdown(0, false);   // Mengaktifkan modul
  lc.setIntensity(0, 8);  // Mengatur kecerahan (0-15)
  lc.clearDisplay(0);     // Membersihkan tampilan
  // Mengatur pin-pin sebagai output untuk motor
  pinMode(enable, OUTPUT);
  pinMode(infrared, INPUT);
  pinMode(motor1Pin1, OUTPUT);
  pinMode(motor1Pin2, OUTPUT);
  Serial.begin(9600);
}

void loop() {

  // Membaca nilai dari lm35
  float suhu = analogRead(LM35);
  Serial.println(suhu);
  // Membaca nilai dari infrared
  int infrarednya = digitalRead(infrared);
  // Mengendalikan arah motor berdasarkan nilai dipswitch
  if(infrarednya == HIGH){
    digitalWrite(enable, HIGH);
    if (suhu < 62) {
    // Maju
    digitalWrite(motor1Pin1, HIGH);
    digitalWrite(motor1Pin2, LOW);
    displayArrowRight();
    } 
    else if (suhu > 82) {
    // Mundur
    digitalWrite(motor1Pin1, LOW);
    digitalWrite(motor1Pin2, HIGH);
    displayArrowLeft();
    } 
    else {
    // Berhenti
    digitalWrite(motor1Pin1, LOW);
    digitalWrite(motor1Pin2, LOW);
    displayLetterX();
    }
  }
  else{
    digitalWrite(enable, LOW); 
  }
}
// Fungsi untuk menampilkan panah pada dot matrix
void displayArrow(byte pattern) {
  for (int row = 0; row < 8; row++) {
    lc.setRow(0, row, pattern);
  }
  delay(500); // Mengatur kecepatan animasi
  lc.clearDisplay(0);
  delay(500); // Jeda sebelum membaca input lagi
}
// Menampilkan panah ke kanan
void displayArrowRight() {
  byte arrowRight[8] = {
    B00011000,
    B00001100,
    B00000110,
    B11111111,
    B00000110,
    B00001100,
    B00011000,
    B00000000
  };

  for (int row = 0; row < 8; row++) {
    lc.setRow(0, row, arrowRight[row]);
  }
}

// Menampilkan panah ke kiri
void displayArrowLeft() {
  byte arrowLeft[8] = {
    B00011000,
    B00110000,
    B01100000,
    B11111111,
    B01100000,
    B00110000,
    B00011000,
    B00000000
  };

  for (int row = 0; row < 8; row++) {
    lc.setRow(0, row, arrowLeft[row]);
  }
}

// Menampilkan huruf "X"
void displayLetterX() {
  byte letterX[8] = {
    B10000001,
    B01000010,
    B00100100,
    B00011000,
    B00011000,
    B00100100,
    B01000010,
    B10000001
  };

  for (int row = 0; row < 8; row++) {
    lc.setRow(0, row, letterX[row]);
  }
}

6. Kondisi [Kembali]

    Ketika infrared mendeteksi sesuatu maka akan mengaktifkan driver motor yang membuat motor dapat diberikan logika pada driver, ketika suhu < 30 maka motor akan berputar kearah kanan dan ketika suhu > 40 maka motor akan berputar kearah kiri dan ketika suhunya diantara 30 - 40 maka akan mematikan motor. 


᭒ HTML↠ klik disini
᭒ Simulasi ↠ klik disini
Gambar Hardware ↠ klik disini
᭒ Gambar Simulasi ↠ klik disini
Video Demo ↠ klik disini
᭒ Video Simulasi ↠ klik disini
᭒ Listring Program ↠ klik disini



Komentar

Postingan Populer