LA 2: Percobaan 5
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. 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]
3. Rangkaian Simulasi dan Prinsip Kerja [Kembali]
Rangkaian Simulasi :
Prinsip Kerja :
Prinsip kerja dari rangkaian ini adalah menggunakan IR sensor dan potensio sebagai input lalu motor DC dan dot matrix sebagai output nya. IR sensor dihubungkan ke arduino sebagai triger dari enable pada motor driver L298D dimana memiliki fungsi sebagai aktivasi nya, kemudian potensio meter dihubungkan dengan arduino sebagai triger tegangan. pada pemrograman sudah diatur pada ADC tertentu akan mentriger motor dan dot matrix. salah satu contohnya saat potensio diatur tegangan sebesar 1,25 V atau dalam ADC dengan nilai 256, maka akan di triger motor DC bergerak ke kanan dan dot matrix memberi panah ke kiri.
4. Flowchart dan Listing Program [Kembali]
Flowchart :
#include <LedControl.h>
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
2. kenapa saat percobaan sensor infrared justru memberikan kondisi yang berbeda?
3. Bagaimana cara potensio mengubah nilai ADC yang masuk ke arduino?
8. Download File [Kembali]
HTML klik disini
File Rangkaian klik disini
Video Percobaan klik disini
Video Percobaan klik disini
Listing Program klik disini
Datasheet Arduino klik disini
Datasheet Motor DC klik disini
Datasheet IR sensor klik disini
Datasheet motor driver klik disini
Datasheet dot matrix klik disini
Tidak ada komentar:
Posting Komentar