Percobaan V
Kontrol Putaran Motor DC
1. Prosedur [Kembali]
- Rangkailah seperti rangkaian berikut
- Buka Arduino IDE dan masukan listing program
- Upload program ke arduino
- Putar potensiometer dan amati keluarannya pada Dot Matriks dan Motor dc
- Tentu, berikut adalah versi parafrase dari deskripsi tersebut:"Percobaan ini memanfaatkan potensiometer sebagai input untuk mengatur output yang terdiri dari dot matriks dan motor DC melalui modul L293D. Saat potensiometer diputar pada rentang nilai tertentu, akan menampilkan gambar panah pada dot matriks sesuai dengan arah yang ditentukan, dan dengan bantuan modul L293D, motor dapat berputar ke kanan atau kiri sesuai dengan nilai input yang diatur dalam program Arduino."
- 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]); } }
- Percobaan
Ketika potensiometer diubah ubah nilainya dengan cara memutar maka akan dibaca oleh Arduino dan, arduino akan memberikan perintah untuk menampilkan panah dengan arah tertentu pada dot matriks dan motor dc yang berputar dengan arah tertentu sesuai nilai potensiometer yang di setting pada program arduino.
᭒ Datasheet Infrared ↠ klik disini
᭒ Datasheet Arduino Uno ↠ klik disini
᭒ Datasheet Potensiometer ↠ klik disini
᭒ Datasheet Arduino Uno ↠ klik disini
᭒ Datasheet Potensiometer ↠ klik disini