Tugas Pendahuluan 2 uP uC Modul 2
TUGAS PENDAHULUAN 2 (MODUL II PWM, ADC, DAN INTERRUPT)
1. Prosedur [Kembali]
- Rangkailah seperti rangkaian berikut
- Buka Arduino IDE dan masukan listing program Upload program ke arduino
- 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 button dan sesuai dengan program, maka Arduino akan menangkapnya sebagai sebuah instruksi, yang mana akan meneruskan ke moto stepper. Lalu akan terlihat pergerakan motor stepper yang bergerak secara beraturan.
PB1 akan menggerakkan motor ke 0 derajat, PB2 ke 90 derajat, PB3 ke 180 derajat, sedangkan PB4 ke 270 derajat. Pergerakan tadi bergerak secara clockwise (searah jarum jam). Namun apabila sensor Infrared berlogika low, maka motor stepper akan bergerak dengan arah berlawanan jarum jam.
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
#define A 8 | |
#define B 9 | |
#define C 10 | |
#define D 11 | |
#define PB1 2 | |
#define PB2 3 | |
#define PB3 4 | |
#define PB4 5 | |
#define PB5 12 | |
void setup() { | |
// put your setup code here, to run once: | |
Serial.begin(9600); | |
pinMode(A, OUTPUT); | |
pinMode(B, OUTPUT); | |
pinMode(C, OUTPUT); | |
pinMode(D, OUTPUT); | |
pinMode(PB1, INPUT_PULLUP); | |
pinMode(PB2, INPUT_PULLUP); | |
pinMode(PB3, INPUT_PULLUP); | |
pinMode(PB4, INPUT_PULLUP); | |
pinMode(PB5, INPUT_PULLUP); | |
} | |
void pergerakan_1(){ | |
digitalWrite(A,0); | |
digitalWrite(D,1); | |
digitalWrite(B,0); | |
digitalWrite(C,1); | |
} | |
void pergerakan_2(){ | |
digitalWrite(A,1); | |
digitalWrite(D,1); | |
digitalWrite(B,0); | |
digitalWrite(C,0); | |
} | |
void pergerakan_3(){ | |
digitalWrite(A,1); | |
digitalWrite(D,0); | |
digitalWrite(B,1); | |
digitalWrite(C,0); | |
} | |
void pergerakan_4(){ | |
digitalWrite(A,0); | |
digitalWrite(D,0); | |
digitalWrite(B,1); | |
digitalWrite(C,1); | |
} | |
void nonpergerakan(){ | |
digitalWrite(A, 0); | |
digitalWrite(D, 0); | |
digitalWrite(B, 0); | |
digitalWrite(C, 0); | |
} | |
void loop() { | |
int b4 = digitalRead(PB4); | |
int b3 = digitalRead(PB3); | |
int b2 = digitalRead(PB2); | |
int b1 = digitalRead(PB1); | |
int b5 = digitalRead(PB5); | |
if (b4 == LOW) | |
{ | |
pergerakan_4(); // Pindahkan servo ke 45 derajat | |
} | |
else if (b3 == LOW) | |
{ | |
pergerakan_3(); // Pindahkan servo ke 45 derajat | |
} | |
else if (b2 == LOW) | |
{ | |
pergerakan_2(); // Pindahkan servo ke 45 derajat | |
} | |
else if (b1 == LOW) | |
{ | |
pergerakan_1(); // Pindahkan servo ke 45 derajat | |
} | |
else { | |
nonpergerakan(); | |
delay(100); | |
} | |
if (b5 == LOW) | |
{ | |
pergerakan_2(); | |
delay(10); | |
pergerakan_3(); | |
delay(10); | |
pergerakan_4(); | |
delay(10); | |
pergerakan_1(); | |
delay(10); | |
pergerakan_2(); | |
delay(10); | |
pergerakan_3(); | |
delay(10); | |
pergerakan_4(); | |
delay(10); | |
pergerakan_1(); | |
delay(10); | |
} | |
} |
5. Video Demo [Kembali]
Saat Praktikum
6. Kondisi [Kembali]
P6K4 Sertakan dengan IR sensor, ketika berlogika LOW putaran motor berlawanan arah jarum jam
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 Stepper [Klik di sini]
Download datasheet IR [Klik di sini]
Komentar
Posting Komentar