LA P5





1. Prosedur  [Kembali]

  1. Rangkai komponen sesuai percobaan dan yang dipilih.
  2. Buat program menggunakan Arduino IDE.
  3. Run program yang telah dibuat ke Arduino Uno.
  4. Uji coba program pada rangkaian percobaan sesuai dengan kondisi yang diinginkan.
  5. Proses selesai setelah uji coba berhasil dilakukan.

2. Hardware dan Diagram Blok [Kembali]

a. Arduino

 


b. Motor DC


c. Driver Motor L293D
 d. Dot Matrix
f. Sensor Infrared



3. Rangkaian Simulasi dan Prinsip Kerja  [Kembali]




         Prinsip kerja dari rangkaian ini adalah, ketika Arduino menerima inputan sinyal digital dari potensiometer, dan sensor infrared berlogika 1, maka Arduino akan menangkapnya sebagai sebuah instruksi, yang mana akan meneruskan ke Dotmatriks. Lalu akan ditampilkan berupa tampilan panah yang sesuai dengan kode yang dibuat, juga motor bergerak.

Selanjutnya apabila nilai dari potensiometer yang terbaca berbeda, maka dotmatriks akan menampilkan arah yang berlawanan begitu juga arah gerakan motor akan berlawanan. Namun apabila kondisi tidak terpenuhi, tampilan pada dotmatriks akan berbentuk X, dan motor tidak berputar.

4. Flowchart dan Listing Program [Kembali]

    Flowchart


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 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]
Modul 2 Percobaan 5

6. Video Demo [Kembali]







7. Link Download [Kembali]
Download HTML [Klik di sini]
Download video rangkaian [Klik di sini]
Download program Arduino [Klik di sini]
Download datasheet Arduino [Klik di sini]
Download datasheet Motor DC [Klik di sini]
Download datasheet IR [Klik di sini]













No comments:

Post a Comment

almajri

  Bahan Presentasi Ini Dibuat Untuk Memenuhi  Tugas Mata Kuliah Sistem Digital Dosen : Darwison, M.T Oleh : ALMAJRI KUSMAIDI 2110952003 Ju...