Laporan Akhir 2 Modul 2




Laporan Akhir 2 Modul 2
(Percobaan 5)

1. Prosedur
[Kembali]

1. Rangkai komponen sesuai percobaan dan kondisi yang dipilih.
2. Buat program menggunakan Arduino IDE.
3. Compile program yang telah dibuat lalu Upload ke dalam Arduino Uno.
4. Uji coba program pada rangkaian percobaan sesuai dengan kondisi yang diinginkan.
5. Selesai.

2. Hardware dan Diagram Blok [Kembali]

Hardware :

1. Arduino Uno


  2. Sensor Infrared



3. IC PCF8574
   

4. Dotmatrik 



 5. L293D

     

  6. Motor DC
   


7. Resistor


8. Potensiometer



Diagram Blok  :


3. Rangkaian Simulasi dan Prinsip Kerja [Kembali]

Rangkaian Simulasi :



Prinsip Kerja : 
Komponen yang digunakan pada percobaan 5 kali ini adalah Arduino Uno, Module Dot Matrix, DIP SWITCH, Sensor Infrared, PCF8574, L293D, dan Motor DC. 

Cara kerja dari rangkaian yaitu pertama Sensor Infrared Haruslah memiliki Logika High terlebih dahulu agar rangkaian dapat berjalan. Selanjutnya Potensiometer merupakan inputan yang berupa sinyal analog dan akan divariasikan dari nilai ADC nya terhadap kontrol motor dan dihubungkan ke Arduino melalui pin A0 yang memiliki fungsi ADC. Ketika ADC yang terbaca dibawah 256 maka motor berjalan kearah kanan dan dot matrix menampilkan panah ke arah kanan, ketika diantara 256-768 maka motor akan berhenti berputar juga DOT matrix menampilkan X tandanya tidak jalan dan jika diatas dari 768 maka motor akan bergerak kearah kiri juga dot matrixnya menampilkan arah panah ke kiri. 

jika saat motor berjalan namun sensor infrared tidak lagi mendeteksi halangan maka motor akan berhenti berputar sebab logika untuk kendali motor hanya bisa jalan ketika sensor infrared berlogika High

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 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]);
  }
}


5. Kondisi [Kembali]

Percobaan 5 Modul  2

6. Video Demo [Kembali]




7. Download File [Kembali]

Video Percobaan klik disini
Listing Program klik disini
Datasheet Arduino klik disini
Datasheet L293D klik disini
Datasheet Dot Matrix klik disini

Tidak ada komentar:

Posting Komentar

  BAHAN PRESENTASI MATA KULIAH ELEKTRONIKA Nama: Vigo Danovan Saputra NIM: 2110951023 kelas: Elektronika C Dosen Pengampu ; Darwison,M.T Ref...