Tugas Pendahuluan 1 uP uC Modul 2

TUGAS PENDAHULUAN 1 (MODUL I GMODUL II PWM, ADC, DAN INTERRUPT)





1. Prosedur  [Kembali]

  • Rangkailah seperti rangkaian berikut 
  • Buka Arduino IDE dan masukan listing program Upload program ke Ardino 
  • Variasikan tombol yang ditekan dan amati keluarannya pada Dotmatriks
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     switch dan sesuai dengan program, 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 switch 3 digeser maka motor dipaksa berhenti dan panah menghadap bawah.

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 in1 = A0;
const int in2 = A1;
const int in3 = A2;
const int in4 = A3;
const int infrared = A4;
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(in1, INPUT);
pinMode(in2, INPUT);
pinMode(in3, INPUT);
pinMode(in4, INPUT);
pinMode(infrared, INPUT);
pinMode(motor1Pin1, OUTPUT);
pinMode(motor1Pin2, OUTPUT);
Serial.begin(9600);
}
void loop() {
// Membaca nilai dari infrared
int infrarednya = digitalRead(infrared);
// Mengendalikan arah motor berdasarkan nilai dipswitch
if(infrarednya == HIGH) {
digitalWrite(enable, HIGH);
if (digitalRead(in1) == LOW && digitalRead(in2) == LOW && digitalRead(in3) == HIGH && digitalRead(in4) == LOW) {
// Kanan
digitalWrite(motor1Pin1, HIGH);
digitalWrite(motor1Pin2, LOW);
displayArrowTop();
}
else if (digitalRead(in3) == LOW) {
// berhenti
digitalWrite(motor1Pin1, LOW);
digitalWrite(motor1Pin2, LOW);
displayArrowBottom();
}
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 bawah
void displayArrowBottom() {
byte arrowBottom[8] =
{B00011000,
B00011000,
B00011000,
B10011001,
B11011011,
B01111110,
B00111100,
B00011000};
for (int row = 0; row < 8; row++) {
lc.setRow(0, row, arrowBottom[row]);
}
}
// Menampilkan panah ke atas
void displayArrowTop() {
byte arrowTop[8] =
{B00011000,
B01111110,
B11011011,
B10011001,
B00011000,
B00011000,
B00011000,
B00011000};
for (int row = 0; row < 8; row++) {
lc.setRow(0, row, arrowTop[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]);
}
}
view raw M2P5K5 hosted with ❤ by GitHub

5. Video Demo [Kembali]


Saat Praktikum

6. Kondisi [Kembali]

Semua Switch pullup, switch 1,2, 4 motor ke kanan dan panah ke atas, switch 3 motor dipaksa berhenti dan panah ke bawah


7. Video Simulasi [Kembali]


8. Link Download [Kembali]
Download HTML [Klik di sini]
Download file rangkaian [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]












Komentar