1. PENDAHULUAN
Pada modul ini, kita akan
2. STUDI PUSTAKA
3. JUDUL SUB-BAB
Abstrak
3.1.1 Pendahuluan
3.1.2 Studi Pustaka
3.1.3 Metodelogi
3.1.3.1 Alat dan Komponen yang
digunakan
3.1.3.2 Langkah-Langkah
Percobaan
3.1.4 Hasil dan Analisis
3.1.5 Kesimpulan
3.1.6 Daftar Pustaka
4. METODOLOGI
Pada percobaan kali ini membutuhkan Gambar 4.1 Alat-alat yang diperlukan
beberapa alat. Alat-alat yang digunakan :
• Kit Motor DC
2. Berikan tegangan 5V ke VCC pada rotary 4. Modifikasi software ini supaya dapat
encoder (kabel merah) dijalankan menggunakan “Interupsi Pin
Change”, supaya dapat dipakai di pin
selain INT0 dan INT1
4.
0 0
50 3.62
75 4.2
100 5.3
if(pinA==HIGH&& pinB==LOW){
posisi--; // CCW
}
if(pinA==HIGH && pinB==HIGH){
posisi++; // CCW
}
}
void setup() {
// initialize serial communications at
9600 bps:
Serial.begin(9600);
pinMode(LED_BUILTIN, OUTPUT); // untuk
indikator
pinMode(2,INPUT_PULLUP);
pinMode(3,INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(2), ISR_INT0,
CHANGE);
attachInterrupt(digitalPinToInterrupt(3), ISR_INT1,
CHANGE);
}
void loop() {
if(state==0){
state=1;
if(pinA==HIGH&& pinB==LOW){
posisi--; // CCW
kecepatan--;
}
if(pinA==HIGH && pinB==HIGH){
posisi++; // CCW
kecepatan++;
}
}
void motor_power(int power){
int pwm_value;
pwm_value=abs(power);
if(pwm_value<0)
pwm_value=0;
if(pwm_value>255)
pwm_value=255;
if(power>0){
digitalWrite(IN1,LOW); // turn
off
digitalWrite(IN2,HIGH); // turn
off
analogWrite(PWM, pwm_value);
} else if(power<0){
digitalWrite(IN1,HIGH); // turn
off
digitalWrite(IN2,LOW); // turn
off
analogWrite(PWM, pwm_value);
}else{
digitalWrite(IN1,LOW); // turn
off
digitalWrite(IN2,LOW); // turn
off
}
}
void setup() {
// initialize serial communications at
9600 bps:
Serial.begin(9600);
pinMode(LED_BUILTIN, OUTPUT);
attachInterrupt(digitalPinToInterrupt(2), ISR_INT0,
CHANGE);
attachInterrupt(digitalPinToInterrupt(3), ISR_INT1,
CHANGE);
pinMode(IN1, OUTPUT);
pinMode(IN2, OUTPUT);
pinMode(PWM, OUTPUT);
}
void loop() {
static float error_integral=0;
int target;
float control;
float error;
// print the results to the Serial
Monitor:
sensorValue=0;
//posisi=0;