M2 TP2 P5K3

Tugas Pendahuluan 2 : Modul 2 Percobaan 5 Kondisi 3

*Klik teks untuk menuju

1. Prosedur [Kembali]

Langkah-langkah percobaan :

1. Siapkan alat dan bahan yaitu dengan komponen utama Arduino Uno, Switch, LCD

2. Rangkai sesuai gambar percobaan

3. Rancang kerja rangkaian sesuai flowchat

4. Tekan tombol “Play” untuk menjalankan simulasi


2. Hardaware dan Diagram Blok [Kembali]

  • Max 7219
  • Infrared sensor
  • Arduino
  • 8 x 8 Dot Matrix
  • Keypad
  • Motor DC



3. Rangkaian Simulasi dan Prinsip Kerja [Kembali]






 Prinsip Kerja
    
     Pada Percobaan IR digunakan untuk membolehkan rangkaian Kontrol sebelah kanan untuk dapat dijalankan, jika IR mengirimkan sinyal High.

    Untuk kondisi switch 1 dan 3 aktif maka motor akan berputar ke arah kiri dan menampilkan indikator arah kiri pada dot matrix
    Untuk kondisi switch 2 dan 4 aktif maka motor berputar ke arah kanan dan menampilkan indikator arah kanan pada dot matrix
    Diluar kondisi tersebut aka motor tidak akan berputar dan Tampil Indikator X pada dot matrix
4. Flowchart dan listing Program [Kembali]

Flowchart :



Listing Program :
#include <LedControl.h> 

// Inisialisasi modul MAX7219 
LedControl lc = LedControl(9, 10, 11, 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 saklar dan motor 
const int switch1 = 2; 
const int switch2 = 3; 
const int switch3 = 4; 
const int switch4 = 5; 
const int enable = 6; 
const int motor1Pin1 = 7; 
const int motor1Pin2 = 8; 
const int infrared = A0; 

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(motor1Pin1, OUTPUT); 
  pinMode(motor1Pin2, OUTPUT); 
  // Mengatur pin-pin sebagai input untuk saklar dan sensor infrared
  pinMode(switch1, INPUT); 
  pinMode(switch2, INPUT); 
  pinMode(switch3, INPUT); 
  pinMode(switch4, INPUT); 
  pinMode(infrared, INPUT); 
  Serial.begin(9600); 

void loop() { 
  // Membaca status saklar 
  int switch1Status = digitalRead(switch1); 
  int switch2Status = digitalRead(switch2); 
  int switch3Status = digitalRead(switch3); 
  int switch4Status = digitalRead(switch4); 
  // Membaca nilai dari sensor infrared
  int infraredValue = analogRead(infrared);
  // Mengendalikan motor berdasarkan status saklar dan sensor infrared
  if (switch1Status == HIGH && switch3Status == HIGH) { 
    // Motor ke kiri 
    digitalWrite(enable, HIGH); 
    digitalWrite(motor1Pin1, LOW); 
    digitalWrite(motor1Pin2, HIGH); 
    displayArrowLeft(); 
  } else if (switch2Status == HIGH && switch4Status == HIGH) { 
    // Motor ke kanan 
    digitalWrite(enable, HIGH); 
    digitalWrite(motor1Pin1, HIGH); 
    digitalWrite(motor1Pin2, LOW); 
    displayArrowRight(); 
  } else { 
    // Motor berhenti 
    digitalWrite(enable, LOW); 
    digitalWrite(motor1Pin1, LOW); 
    digitalWrite(motor1Pin2, LOW); 
    displayLetterX(); 
  } 

// 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]

     Semua Switch pull-down, switch 1 dan 3 motor ke kiri, switch 2 dan 4 panah ke kanan dan motor  ke kanan
6. Video Simulasi [Kembali]








7. Download File [Kembali]
HTML Disini
Simulasi Disini
Gambar Hardware Disini
Video Simulasi Disini
Listing Program Disini



























Tidak ada komentar:

Posting Komentar

TP-2 Modul 1

Tugas Pendahuluan 2 - Modul 1 [KEMBALI KE MENU SEBELUMNYA] DAFTAR ISI     1. Kondisi     2. Gambar     3. Video Simulasi     4. ...