Senin, 25 Maret 2024




MODUL 2
PERCOBAAN 5 KONDISI 2

1. Prosedur
[Kembali]

1. Rangkai rangkaian di proteus sesuai dengan kondisi percobaan.
2. Tulis program untuk arduino di software Arduino IDE.
3. Compile program tadi, lalu upload ke dalam arduino.
4. Setelah program selesai di upload, jalankan simulasi rangkaian pada proteus.


2. Hardware dan diagram blok [Kembali]
         a. hardware
                                                                 
1. SW SPDT


2. Arduino Uno
                                   

3. Driver Motor L293D


4. Motor DC


5. Max7219


6. Dot Matrix


  b. Digram Blok



3. Rangkaian Simulasi dan Prinsip kerja [Kembali]

Gambar Rangkaian Sebelum Disimulasikan



                                    

Gambar Rangkaian Setelah Disimulasikan

                                        





PRINSIP KERJA
   Dalam rangkaian ini, menggunakan konfigurasi INPUT PULL DOWN dimana switch terhubung ke tegangan eksternal dan resistor terhubung ke ground. Sebuah resistor diletakkan di antara switch dan Arduino, membolehkan aliran arus dari tingkat potensial yang tinggi ke tingkat potensial yang rendah. Ketika switch dihidupkan, tegangan dari luar mengalir melalui switch dan tidak menuju ke ground karena adanya hambatan. Hal ini menyebabkan input Arduino ketika switch dalam posisi ON menjadi HIGH. Namun, ketika beralih ke mode mati, Arduino tidak mendapatkan suplai listrik dari luar dan sinyal input-nya berada dalam keadaan rendah. Pull Down Configuration ini bertolak belakang dengan Pull Up.
Pada proyek ini, Arduino dan modul MAX7219 digunakan untuk mengontrol motor DC dan menampilkan gambar pada dot matrix. Proses awal dimulai dengan mengatur modul MAX7219 menggunakan objek LedControl. Pin yang terhubung ke saklar dan mesin ditentukan apakah sebagai masukan atau keluaran. Dalam bagian utama perulangan, nilai dari setiap saklar didapat dengan menggunakan fungsi digitalRead(). Jika semua sakelar dalam keadaan aktif (HIGH), motor akan dimatikan dan tampilan dot matrix akan dikosongkan. Jika tidak, program akan memperoleh arah pergerakan motor berdasarkan kombinasi switch yang sedang aktif. Dalam hal mengendalikan putaran motor DC:
Jika switch1 dan switch3 dalam keadaan aktif, motor akan bergerak ke arah kanan.
Apabila switch2 dan switch4 dalam keadaan hidup, maka displayArrowRight() akan dipanggil untuk menampilkan gambar panah menghadap kanan pada dot matrix, sementara motor tidak bergerak.
Array byte mengandung informasi dari panah dan akan ditampilkan menggunakan metode setRow() dari objek LedControl.

4. FlowChart [Kembali]

a. Listing Program 

#include <LedControl.h>

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

const int switch1Pin = A0; // Switch 1 connected to pin A0
const int switch2Pin = A1; // Switch 2 connected to pin A1
const int switch3Pin = A2; // Switch 3 connected to pin A2
const int switch4Pin = A3; // Switch 4 connected to pin A3

const int pin3Output = 3; // Output pin connected to pin 3 (motor control)
const int pin4Output = 4; // Output pin connected to pin 4 (motor control)

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

  // Set up pins for motor
  pinMode(pin3Output, OUTPUT);
  pinMode(pin4Output, OUTPUT);
  pinMode(motor1Pin1, OUTPUT);
  pinMode(motor1Pin2, OUTPUT);

  pinMode(switch1Pin, INPUT);
  pinMode(switch2Pin, INPUT);
  pinMode(switch3Pin, INPUT);
  pinMode(switch4Pin, INPUT);

  Serial.begin(9600);
}

void loop() {
  int switch1State = digitalRead(switch1Pin);
  int switch2State = digitalRead(switch2Pin);
  int switch3State = digitalRead(switch3Pin);
  int switch4State = digitalRead(switch4Pin);

  // Check if all switches are active (LOW)
  if (switch1State == HIGH && switch2State == HIGH && switch3State == HIGH && switch4State == HIGH) {
    digitalWrite(pin3Output, LOW);
    digitalWrite(pin4Output, LOW);
    lc.clearDisplay(0);
  } else {
    if (switch1State == HIGH && switch3State == HIGH) {
      digitalWrite(pin3Output, HIGH);
      digitalWrite(pin4Output, LOW);
      lc.clearDisplay(0);
    } else {
      digitalWrite(pin3Output, LOW);
    }

    if (switch2State == HIGH && switch4State == HIGH) {
      digitalWrite(pin3Output, LOW);
      digitalWrite(pin4Output, LOW);
      displayArrowRight();
    }
  }
}

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]);
  }
  delay(500);
  lc.clearDisplay(0);
  delay(500);
}

b. Flowchart




5. Kondisi [Kembali]

Kondisi  →Percobaan 5 Kondisi 2
        Semua Switch pull-down, switch 1 dan 3 motor ke kanan, switch 2 dan 4 panah ke kanan

6. Video Simulasi [Kembali]




7. Download File [Kembali]

Download HMTL Klik disini
Download Simulasi Rangkaian Klik disini
Download Video Simulasi Klik disini
Download Datasheet ARDUINO UNO klik disini
Download Datasheet Driver Motor L293D klik disini
Download Datasheet dotmatrix klik disini
Download Datasheet MAX7219 klik disini
Download Datasheet  motor dc klik disini




Tidak ada komentar:

Posting Komentar

Mikro 2024 Modul  4 [KEMBALI KE MENU SEBELUMNYA] DAFTAR ISI     1. Pendahuluan     2. Tujuan     3. Alat dan Bahan     4. Dasar...