Tugas Pendahuluan 2 Modul 2
(Percobaan 2 Kondisi 5)
1. Rangkai rangkaian di proteus sesuai dengan kondisi percobaan.
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 simulasi rangkaian pada proteus.
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 simulasi rangkaian pada proteus.
2. Hardware dan Diagram Blok
[Kembali]
3. Rangkaian Simulasi dan Prinsip Kerja
[Kembali]
Rangkaian Simulasi :
Prinsip Kerja :
Rangkaian diatas merupakan rangkaian percobaan 2 kondisi 5
Ketika tombol ditekan, motor akan berputar ke arah
tertentu sesuai dengan alur waktu yang telah ditentukan, yaitu 3 detik ke
kanan, kemudian mati selama 2 detik, lalu 3 detik ke kiri, dan mati kembali
selama 2 detik, total 10 detik. Selama motor berputar, LED akan menyala sebagai
indikator aktifitas. Jika tombol ditekan kembali selama motor masih berputar
atau sebelum waktu 10 detik berakhir, motor akan berhenti dan mengulangi alur
waktu dari awal. Program ini menggunakan interrupt untuk mendeteksi penekanan
tombol, dan mengatur waktu motor dan tampilan LCD menggunakan fungsi delay dan
millis. Komponen utama yang terlibat dalam operasi ini adalah tombol sebagai
input, motor sebagai output, LED sebagai indikator, dan layar LCD untuk
menampilkan jumlah hitungan (count). Program ini menggunakan interrupt
eksternal untuk menangani penekanan tombol dan loop utama untuk mengatur
perilaku motor dan tampilan LCD.
4. Flowchart dan Listing Program
[Kembali]
Flowchart :
Listing Program :
#include<LiquidCrystal_I2C.h>
#define tombol 2 //pin 2 (pin interrupt) bernama tombol
#define LED 4
#define front 12
#define back 13
static int count = 0;
unsigned long previousMillis = 0; // variabel untuk menyimpan waktu terakhir motor berjalan atau berhenti
const unsigned long motorInterval = 10000; // interval total waktu untuk motor (3 detik + 2 detik + 3 detik + 2detik = 10 detik)
LiquidCrystal_I2C lcd(0x27, 16, 2);
void tombol_ditekan()
{
digitalWrite(LED,HIGH);
delay(1000);
digitalWrite(front, LOW);
digitalWrite(back, LOW);
delay(4000);
count = 0;
}
void setup() {
lcd.init();
lcd.backlight();
pinMode(LED,OUTPUT);
pinMode(front,OUTPUT);
pinMode(back,OUTPUT);
pinMode(tombol,INPUT);
attachInterrupt(digitalPinToInterrupt(2),tombol_ditekan, RISING); //pin 2 (interrupt 0) digunakan sebagai interrupt eksternal
}
void loop() { //Main Program
unsigned long currentMillis = millis();
unsigned long elapsedMillis = currentMillis - previousMillis;
if (elapsedMillis < 3000) { // Motor berputar ke kanan selama 3 detik
digitalWrite(front, HIGH);
digitalWrite(back, LOW);
} else if (elapsedMillis < 5000) { // Motor mati selama 2 detik
digitalWrite(front, LOW);
digitalWrite(back, LOW);
} else if (elapsedMillis < 8000) { // Motor berputar ke kiri selama 3 detik
digitalWrite(front, LOW);
digitalWrite(back, HIGH);
} else if (elapsedMillis < 10000) { // Motor mati selama 2 detik
digitalWrite(front, LOW);
digitalWrite(back, LOW);
}else {
digitalWrite(front, LOW);
digitalWrite(back, LOW);
delay : 4000;
}
int nilai;
nilai = 1+count;
digitalWrite(LED,LOW);
lcd.setCursor(0,0);
lcd.print("Count:");
lcd.setCursor(0,1);
lcd.print(nilai);
count ++ ;
// menambahkan integer count dengan angka 1
if (nilai <= 0){
count =0;
}
delay(1000);
}
Percobaan 2 Kondisi 5
Motor ke kanan selama 3 detik lalu mati 2 detik ke kiri 3 detik dan mati 2 detik ,LCD menampilkan counting dari 0 sampai 50, interrupt counting diulang dari 0 dan motor DC berhenti 4 detik dan 1 led hidup setiap kali dilakukan interrupt
7. 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 Potensiometer klik disini.
Datasheet LCD klik disini.
Datasheet DIP Switch klik disini.
Datasheet L293D klik disini.
Datasheet Motor DC klik disini.
Datasheet PCF8574 klik disini.