Modul 2 - Tugas Pendahuluan 2



  • Rangkai komponen sesuai percobaan dan kondisi yang dipilih 
  • Buat program menggunakan Arduino IDE. 
  • Transfer program yang telah dibuat ke Arduino yang ada di Proteus.
  • Uji coba program di simulasi sesuai dengan kondisi yang diinginkan.
  • Proses selesai setelah uji coba berhasil dilakukan

  • Rangkaian Simulasi


  • Prinsip Kerja
Program ini mengendalikan motor servo menggunakan keypad pada Arduino. Ketika tombol ditekan, program membaca karakter yang sesuai dan menggerakkan motor servo ke posisi tertentu berdasarkan karakter tersebut.
Program dimulai dengan inisialisasi motor servo dan keypad. Motor servo dihubungkan ke pin PWM pada Arduino (dalam kasus ini, pin 11) dan diberikan posisi awal 90 derajat menggunakan perintah servoMotor.write(90). Kemudian, keypad diatur untuk digunakan.
Selama program berjalan, Arduino terus memeriksa apakah ada tombol yang ditekan pada keypad. Setelah tombol ditekan, program menggunakan struktur switch-case untuk menentukan tindakan selanjutnya berdasarkan karakter tombol yang ditekan.
Setiap karakter tombol dipetakan langsung ke posisi sudut tertentu untuk motor servo. Perintah servoMotor.write() digunakan untuk menggerakkan motor servo ke sudut yang sesuai dengan karakter yang ditekan, sesuai dengan kondisi yang ditentukan yaitu keypad 1 hingga 9 memberikan PWM 255-0 dengan jarak PWM antar keynya 28.
Jika tombol yang ditekan tidak sesuai dengan yang diprogram, tidak ada tindakan yang diambil pada motor servo.

  • Flowchart


  • Listing Program
#include <LedControl.h> //Library untuk LED Dot Matrix

const int DIP_Pins[] = {13, 12, A0, A1, A2, A3, A4, A5}; // Pin DIP switch terhubung ke Arduino
LedControl lc = LedControl(2, 3, 4, 1); // Pin DIN, CLK, LOAD (CS), dan jumlah Dot Matrix yang dihubungkan ke Arduino

byte patterns[8] = {0, 0, 0, 0, 0, 0, 0, 0}; // Pola LED untuk ditampilkan

void setup() {
  for (int i = 0; i < 8; i++) {
    pinMode(DIP_Pins[i], INPUT_PULLUP); // Mengatur pin DIP switch sebagai input dengan pull-up resistor
  }

  lc.shutdown(0, false); // Mengaktifkan display
  lc.setIntensity(0, 8); // Mengatur kecerahan LED (nilai antara 0 dan 15)
  lc.clearDisplay(0); // Membersihkan tampilan dot matrix
}

void loop() {
  // Menghitung jumlah switch yang aktif
  int activeSwitches = 0;
  for (int i = 0; i < 8; i++) {
    if (digitalRead(DIP_Pins[i]) == LOW) {
      activeSwitches++;
    }
  }

  // Menampilkan huruf "123" jika 2 switch aktif
  if (activeSwitches == 2) {
    patterns[0] = B00000000;
    patterns[1] = B10111011;
    patterns[2] = B10001001;
    patterns[3] = B10001001;
    patterns[4] = B10111011;
    patterns[5] = B10100001;
    patterns[6] = B10100001;
    patterns[7] = B10111011;
  }
   else {
    // Menampilkan pola default jika tidak ada 3, 5, atau 7 switch yang aktif
    for (int i = 0; i < 8; i++) {
      patterns[i] = 0;
    }
  }

  // Menampilkan pola LED pada dot matrix
  for (int row = 0; row < 8; row++) {
    lc.setRow(0, row, patterns[row]);
  }

  delay(100); // Delay untuk tampilan LED stabil
}

4. Kondisi [Kembali]

Percobaan 7 tanpa kondisi
    

Simulasi  klik disini
Gambar Simulasi  klik disini
x Video Simulasi  klik disini
Listring Program  klik disini
























Materi MataKuliah SENSOR TE1212 C  Semester Ganjil 2020 (II) Disusun Oleh : Ibrahim 1910953006 Fajar Ruhud M...