Laporan Akhir 2 - M2




1. Prosedur
[Kembali]

1. Rangkai rangkaian pada alat sesuai dengan modul.
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 rangkaian.

2. Hardware dan Diagram Blok [Kembali]

Hardware :



1. Arduino Uno











2. Servo Motor








3. Power Supply


    4. Dot Matrix


 
                                        

    5. Infrared Sensor



Diagram Blok:

                







3. Rangkaian Simulasi dan Prinsip Kerja [Kembali]











Prinsip Kerja :
 Pada rangkaian di atas terdapat infrared dan potensiometer sebagai input yang terhubung ke arduino. Untuk output terdapat 2 output yaitu motor, dan dot matrix. Saat infrared berlogika high, dan nilai ADC potensiometer kurang sama dari 256, maka output motor ke arah kanan, dan dotmatrix menunjukkan panah ke kanan. Saat infrared berlogika high, dan nilai ADC potensiometer lebih sama dari 768, maka output motor ke arah kiri, dan dotmatrix menunjukkan panah ke kiri. Saat infrared berlogika high, dan nilai ADC potensiometer lebih dari 256, dan kurang dari 768 maka output motor diam, dan dotmatrix menunjukkan huruf X. Jika infrared berlogika low, maka untuk motor akan diam, dan dotmatrix tidak menunjukkan display apa apa
    

   

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 potensio = 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 adc = analogRead(potensio);
Serial.println(adc);
// Membaca nilai dari infrared
int infrarednya = digitalRead(infrared);
// Mengendalikan arah motor berdasarkan nilai dipswitch
if(infrarednya == HIGH){
digitalWrite(enable, HIGH);
if (adc <= 256) {
// Maju
digitalWrite(motor1Pin1, HIGH);
digitalWrite(motor1Pin2, LOW);
displayArrowRight();
}
else if (adc >= 768) {
// 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: Kontrol Putaran Motor DC

6. Video Demo [Kembali]







7. Soal Analisa [Kembali]

1. Bandingkan rangkaian TP dengan rangkaian praktikum
    Jawab :
        Perbedaannya terletak pada input rangkaian, pada rangkaian TP, inputnya menggunakan 4 buah switch pull down. Sedangkan pada rangkaian praktikum, inputnya menggunakan potensiometer dan sensor infrared. Untuk output tidak ada perbedaan antara kedua rangkaian tersebut.

2. Kenapa saat percobaan sensor infrared justru memberikan kondisi yang berbeda?
    Jawab :
        Pada percobaan praktikum, output motor ataupun servo akan bekerja saat infrared berlogika high, lalu apabila infrared berlogika high dan potensiometer memberikan relay yang sesuai dengan yang tertera pada kodingan, maka mikrokontroller akan mengirimkan sinyal output ke motor servo maupun dotmatrix, sesuai dengan yang tertera pada kodingan.

3. Bagaimana cara potensiometer mengubah nilai ADC yang masuk ke arduino?
    Jawab :
        Hubungkan potensiometer ke pin analog arduino, lalu pada arduino gunakan fungsi analogRead() untuk membaca nilai ADC. Nilai ADC berkisar antara 0 - 1023, yang mana 0 mewakili 0 V dan 1023 mewakili 5 V

8. Download File [Kembali]

HTML Download
Video Percobaan Download
Listing Program Download
Datasheet Servo motor Download
Datasheet Dot Matrix Download
Datasheet Infrared Sensor Download
Datasheet Potensiometer Download








Tidak ada komentar:

Posting Komentar

                                                                 BAHAN PRESENTASI UNTUK MATAKULIAH                                          ...