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]
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
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#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]); | |
} | |
} |
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
Posting Komentar