Laporan Akhir 2

MODUL 2


Laporan Percobaan 5

Kontrol Putaran Motor DC

1. Foto Hardware dan Diagram Blok [Kembali]


      1. Arduino Uno







        2. Dip Switch


        3. Dot Matrix


        4. Kabel Jumper





        5. Breadboard


         6. L293D


    7. Sensor Infra Red




    8. Motor



Diagram Blok:



2. Prosedur Percobaan  [Kembali]

  •  Rangkai semua komponen 
  •  Buat program di aplikasi arduino IDE
  •  Setelah selesai masukkan program ke arduino 
  •  Jalankan program pada simulasi dan cobakan dengan modul



Prinsip Kerja


4. Flowchart dan Listing Program [Kembali]



Listing Program:
//Percobaan 5
#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 potensio = 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 adc = analogRead(potensio);
  Serial.println(adc);
  // Membaca nilai dari infrared
  int infrarednya = digitalRead(infrared);
  // Mengendalikan arah motor berdasarkan nilai dipswitch
  if(infrarednya == HIGH){
    digitalWrite(enable, HIGH);
    if (adc <= 256) {
    // Maju
    digitalWrite(motor1Pin1, HIGH);
    digitalWrite(motor1Pin2, LOW);
    displayArrowRight();
    }  
    else if (adc >= 768) {
    // 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]);
}
}

5. Kondisi [Kembali]

   Percobaan 5 Kontrol Putaran Motor DC

Download HTML disini
Download Video percobaan disini
Download Library Arduino Uno disini
Download Datasheet Arduino Uno disini











Komentar

Postingan Populer