Lap. 13 Motor
-
Upload
sayyid-al-fuad -
Category
Documents
-
view
228 -
download
0
Transcript of Lap. 13 Motor
-
7/25/2019 Lap. 13 Motor
1/25
LAPORAN PRAKTIKUM
SISTEM MIKROKONTROLER
DAN INTERFACE
SEMESTER V
NOMOR PERCOBAAN : 13
JUDUL PERCOBAAN : Aplikasi Motor
NAMA PRAKTIKAN : Muhamat Fajar
NOMOR BP : 1301041019
KELAS : III B EC
PROGRAM STUDI DIII TEKNIK ELEKTRONIKA
JURUSAN ELEKTRO
POLITEKNIK NEGERI PADANG
2015 2016
-
7/25/2019 Lap. 13 Motor
2/25
i
HALAMAN PENGESAHAN
No. Percobaan/Judul : 13/Aplikasi Motor
Nama Praktikan : Muhamat Fajar
No. BP : 1301041019
Kelas : III B EC
Pembimbing : Era Madona, S.ST, M.Sc
Efrizon, S.ST, M.T
Tanggal Percobaan : 04 Januari 2016
Tanggal Penyerahan : 11 Januari 2016
Nilai :
Keterangan :
-
7/25/2019 Lap. 13 Motor
3/25
ii
DAFTAR ISI
Halaman Pengesahan........i
Daftar Isi.............ii
Kata Pengantar............iii
BAB I PENDAHULUAN
1.1
Tujuan Percobaan....................................1
1.2 Landasan Teori................1
BAB II PERCOBAAN
2.1 Gambar Rangkaian6
2.2 Langkah Kerja...................6
2.2 Program.....7
BAB III PEMBAHASAN
3.1 Data Percobaan........14
3.2 Analisa ........16
BAB IV PENUTUP
4.1 Kesimpulan......................20
4.2 Saran................20
Daftar Pustaka
-
7/25/2019 Lap. 13 Motor
4/25
iii
KATA PENGANTAR
Puji Syukur Alhamdulillah atas kehadirat Allah SWT yang telah melimpahkankan taufik dan
hidayahnya sehingga penulis dapat menyelesaikan laporan Laboratorium Sistem Mikrokontroler
dan Interfaceguna memenuhi tugas perkuliahan di Politeknik Negeri Padang.
Penulis ingin mengucapkan terima kasih atas bantuan dan bimbingan kepada:
1.
Ibu Era Madona, S.ST, M.Sc
2.
Bapak Efrizon, S.ST, M.T
Penulis menyadari bahwa penulisan laporan ini masih banyak kekurangan atau keterbatasan
dalam pembuatannya oleh karena hal itu penulis mengharapkan saran dan kritik dari pembaca dan
pengguna penulisan laporan ini yang akan mengurangi kekurangan penulisan laporan ini. Semoga
penulisan laporan ini bermanfaat bagi kita semua.
Padang, 09 Januari 2016
Penulis
Muhamat Fajar
NIM:1301041019
-
7/25/2019 Lap. 13 Motor
5/25
1
BAB I
PENDAHULUAN
1.1 Tujuan Percobaan
Setelah melakukan praktikum pengontrolan motor ini, mahasiswa dapat:
1.1.1
Memahami cara pengoperasian sistem mikrokontroler ATmega8535.
1.1.2 Mengoperasikan sistem mikrokontroler ATmega8535.
1.1.3 Memahami fungsi PWM pada mikrokontroler ATmega8535.
1.1.4
Mengontrol motor stepper dan motor DC dengan menggunakan sistem mikrokontroler
Atmega8535.
1.2 Landasan Teori
1.2.1
Pengontrolan Motor DC
PWM (Pulse Width Modulator) dapat digunakan untuk mengatur kecepatan motor yaitu
dengan cara mengatur lebar pulsa (waktu on) dari tegangan sumbernya (tegangan DC).
Perbandingan antara waktu ON dan waktu OFF disebut duty cycle (siklus kerja). Semakin besar
siklus kerjany, maka semakin besar pula keluaran yang dihasilkan sehingga kecepatan motor akan
semakin besar. Pembbangkitan sinyal PWM dengan mikrokontroler memiliki beberapa
keuntungan seperti teknik pemrograman yang sederhana, dan rangkaian llistrik menjadi
sederhana. Mikrokontroler Atmega8535 dapat digunakan sebgai pembangkit gelombang PWM.Mikrokontroler Atmega8535 memiliki PWM yang telah terintegrasi dengan chip. Keluaran dari
PWM tersebut terdapat pada pin 15 (OC1). Untuk menjalankan program PWM, diperlukan tiga
unit register timer yaitu:
a. Timer/Counter Control Register (TCCR), untuk menentukan mode PWM.
b. Timer/Counter Register (TCNT), digunakan untuk menentukan modulasi frekuensinya.
c.
Output Compare Register (OCR), untuk menentukan nilai siklus kerjanya.
Dalam Mikrokontroler Atmega8535, terdapat beberapa mode PWM. Mode PWM yang
akan di bahas adalah mode Phase Correct PWM. Pada resolusi untuk mode ini dapat di pilih 8 bit,
9 bit, 10 bit, atau ditentukan nilai ICR1 atau OCR1A. Resolusi minimum yang diperbolehkan
sebesar 2 bit (ICR atau OCR1A=0x0003) dan resolusi maksimum sebesar 16 bit (OCR1A=0xffff).
Resolusi PWM dapat di hitung dengan menggunakan persamaan:
=log( + 1)
log(2)
-
7/25/2019 Lap. 13 Motor
6/25
2
Diagram waktu untuk mode phase correct PWM ditunjukan oleh pada gambar 1.0.
Keterangan yang lebih lengkap terdapat pada datasheet Atmega8535 pada bagian 16 bit
Timer/Counter (Modes of Operation).
Gambar 1.0 Diagram Waktu Timer/Counter untuk Mode Phase Correct.
Frekuensi ouput PWM ketika menggunakan mode Phase Correct dapat di hitung dengan
menggunakan persamaan:
=
2
Dimana N merupakan nilai prescaler 1, 8, 64, 256, atau 1024.
Penggunaan 16 bit Timer/Counter sebagai PWM pada mikrokontroler Atmega8535 untuk
mengendalikan kecepatan putar motor DC.
Untuk menggerakan suatu motor DC menggunakan mikrokontroler diperlukan suatu
rangkaian driver motor. Driver motor digunakan untuk menggerakan motor yang membutuhkan
arus cukup besar dan/atau tegangan motor yang berbeda dengan rangkaian digital (rangkaian
mikrokontroler). Arus yang mampu dikeluarkan atau diterima oleh mikrokontroler sangat kecilsehingga agar mikrokontroler dapat menggerakan motor diperlukan driver motor yang mampu
mengalirkan arus sampai beberapa ampere. Beberapa motor DC mempunyai tegangan kerja yang
berbeda dengan rangkaian mikrokontroler misalnya motor DC 6 Volt, 12 Volt, 24 Volt dan
sebagainya. Rangkaian driver motor ini dapat berupa rangkaian transistor, relay, rangkaian
MOSFET, IC, dan sebagainya. Dalam praktikum ini digunakan IC L293D yang berisi 4 channel
driver dengan kemampuan mengalirkan arus sebedar 600 mA perchannel. Tegangan kerja IC
L293D dari 6 volt hingga 36 volt dan arus impuls tak berulang maksimum sebesar 1,2 Ampere.
Gambar 1.1 menunjukan konfigurasi pin IC L293D.
-
7/25/2019 Lap. 13 Motor
7/25
3
Gambar 1.1 Konfigurasi IC L293D
Pada gambar 1.1 pin Vs/Vcc2 (kaki 8) merupakan sumber tegangan untuk rangkaian
digital (Input) dan pin Vss/Vcc2 (kaki 16) merupakan sumber tegangan untuk rangkaian motor
(Output). Pin enable 1 (kaki 1) digunakan untuk mengaktifkan channel 1 (Input 1) dan channel 2
(Input 2), sedangkan enable 2 (kaki 9) digunakan untuk mengaktifkan channel 3 (Input 3) dan
channel 4 (Input 4). Tabel kebenaran untuk IC L293D ditunjukan pada tabel 1.1
Tabel 1.1 Tabel Kebenarran ICL293D
Input Enable* Output
H H H
L H L
H L Z
L L Z
Catatan: *=relatif terhadap channel yang di pilih, Z = impedansi tinggi.
Gambar 1.2 menunjukan perhubungan IC L293D dengan sebuah motor DC serta
pengubungannya dengan mikrokontrole Atmega8535. Penggunaan pin PD4 (OC1B) dan PD5
(OC1A) pada mikrokontroler Atmega8535 merupakan pin Output PWM untuk 16 bit
timer/counter1. Pada gambar 1.2 digunakan sebuah motor DC dengan tegangan kerja 5 Volt dan
arus motor maksimum (500 mA).
Gambar 1.2 Gambar Rangkaian Motor DC
-
7/25/2019 Lap. 13 Motor
8/25
4
Untuk menggerakan motor DC seperti gambar 1.2 yaitu memberikan logika 1 pada PD4
dan logika 0 pada PD5. Untuk membalik arah putaran motor dengan memberikan logika 0 pada
PD4 dan logika 1 pada PD5. Agar motor berhenti berputar dengan memberikan nilai logika yang
sama pada PD4 dan PD5.
1.2.2
Pengontrolan Motor Stepper
Motor stepper adalah salah satu tipe motor yang sangat populer digunakan sebagai
peralatan penggerak/pemutar (movement unit/aktuator) dalam sistem kontrol otomasi industri,
instrumentasi bahkan printer yang sering digunakan saat ini. Untuk menggerakan suatu motor
stepper menggunakan suatu rangkaian driver motor. Beberapa motor stepper mempunyai
tegangan kerja yang sama atau berbeda dengan mikrokontroler misalnya 5 volt, 24 volt, dan
sebagainya. Driver yang digunakan untuk menggerakan motor stepper sama dengan yang
digunakan pada aplikasi motor DC yaitu L293D. Sedangkan motor stepper yang digunakan dalampraktikum bertipe bipolar dengan tegangan kerja 5 volt.
Gambar 1.3 Gambar Rangkaian Motor Stepper
Untuk menggerakan motor stepper bipolar, seperti gambar 1.3 diperlukan beberapa
langkah agar motor stepper dapat berputar searah jarum jam (CW) maupun berlawanan arah jarum
jam (CCW). Langkah-langkah yang dimaksud adalah urutan pemberian nilai logika pada kaki A,B, C, D seperti yang ditunjukan pada tabel 1.2. Untuk menggerakan motor stepper bipolar
berlawanan arah jarum jam (CCW) secara full step, maka pemberian logika di mulai dari nomor
2, nomor 4, nomor 6, dan nomor 8, kemudian kembali lagi ke nomor 2, nomor 4, dan seterusnya.
Sedangkan untuk menggerakan motor stepper biporal berlawanan arah jarum jam (CCW) secara
half step, maka ppemberian nilai logika dimulai dari nomor 1, nomor 2, ..., nomor 7, nomor 8
kemudian kembali ke nomor 1 dan nomor 2 dan seterusnya. Agar motor stepper bipolar bergerak
searah dengan jarum jam (CW) secara full step atau half step yaitu dengan membalik urutan
pemberian nilai logika. Untuk lebih jelasnya dapat di lihat pada tabel berikut:
-
7/25/2019 Lap. 13 Motor
9/25
5
Tabel 1.2 Tabel Logika untuk Menggerakan Motor Stepper Bipolar
No
Half Step (8 siklus)/Full Step (4 siklus)
KeteranganA B C D
(PD7) (PD6) (PD5) (PD4)
1 1 0 0 0
2 1 1 0 0
3 0 1 0 0
4 0 1 1 0
5 0 0 1 0
6 0 0 1 1
7 0 0 0 1
8 1 0 0 1
Catatan : CCW = Counter Clock Wise, CW = Clock Wise
CCW CW
-
7/25/2019 Lap. 13 Motor
10/25
6
BAB II
PERCOBAAN
2.1 Gambar Rangkaian
2.1.1
Pengontrolan Motor DC
Gambar 2.0 Pengontrolan Motor DC
2.1.2 Pengontrolan Motor Stepper
Gambar 2.1 Pengontrolan Motor Stepper
2.2 Langkah Kerja
2.2.1 Pengontrolan Motor DC
1) Buatlah program pada CodeVision AVR.
2) Ketiklah program pada Editor.c, kemudian simpan.
3) Compile program dengan menekan tombol F9 (Compile) atau melalui menu Project
-
7/25/2019 Lap. 13 Motor
11/25
7
kemudian pilih Compile. Buatlah rangkaian pada papan proyek modul system
mikrokontroler seperti gambar gambar 2.0.
4) Selanjutnya buatlah file hex dari proyek yang dibuat yaitu melalui menu Project kemudian
pilih Make atau dengan tombol Shift + F9. Kemudian isikan file hex tersebut ke modul
sistem mikrokontroler.
2.2.2 Pengontrolan Motor Stepper
1) Buatlah program pada CodeVision AVR.
2) Ketiklah program pada Editor.c, kemudian simpan.
3) Compile program dengan menekan tombol F9 (Compile) atau melalui menu Project
kemudian pilih Compile. Buatlah rangkaian pada papan proyek modul system
mikrokontroler seperti gambar gambar 2.1.
4)
Selanjutnya buatlah file hex dari proyek yang dibuat yaitu melalui menu Project kemudianpilih Make atau dengan tombol Shift + F9. Kemudian isikan file hex tersebut ke modul
sistem mikrokontroler.
2.3 Program
2.3.1 Pengontrolan Motor DC
1) Program 1, Motor DC berputar searah menggunakan PWM channel A.
#include
#include
void main(void){
unsigned int temp;
DDRC=0x00;
PORTC=0xff;
DDRD=0x30;
PORTD=0x00;
TCCR1A=0x82;
TCCR1B=0x12;
TCNT1=0x0000;
ICR1H=0xff;
OCR1A=0x0000;temp=0x0ff;
while(1){
if (PINC.0==0){
delay_ms(100);
temp-=0xff;
if (temp==0xff01) temp=0x000;
else goto a;
}
if (PINC.1==00){
delay_ms(100);temp+=0xff;
-
7/25/2019 Lap. 13 Motor
12/25
8
if (temp>=0x0ff) temp=0xff;
}
a:
OCR1A=temp;
}
}
2)
Program 2, Motor DC dengan arah putaran yang dapat di pilih.
#include
#include
bit i;
void main(void){
unsigned int temp;
DDRC=0x00;
PORTC=0xff;
DDRD=0x30;
PORTD=0x00;TCCR1A=0x82;
TCCR1B=0x12;
TCNT1=0x0000;
ICR1H=0xff;
ICR1L=0xff;
OCR1A=0x0000;
OCR1B=0x0000;
i=0;
temp=0x0ff0;
while(1){
if (PINC.0==0){delay_ms(100);
temp-=0xff;
if (temp==0xff01) temp=0x0000;
else goto a;
}
if (PINC.1==00){
delay_ms(100);
temp+=0xff;
if (temp>=0x0ff) temp=0xffff;
}
a:
if (PINC.2==0){
i=~i;
if (i==0) TCCR1A=0x82;
else TCCR1A=0x22;
delay_ms(100);
}
OCR1A=temp;
OCR1B=temp;
}
}
-
7/25/2019 Lap. 13 Motor
13/25
9
3) Tugas, Program 2 dengan menambahkan PINC.6 (PB1) untuk menggerakan motor
berputar cepat dan PIC.5 (PB2) untuk menghentikan putaran motor.
#include
#include
bit i;
void main(void){
unsigned int temp;
DDRC=0x00;
PORTC=0xff;
DDRD=0x30;
PORTD=0x00;
TCCR1A=0x82;
TCCR1B=0x12;
TCNT1=0x0000;
ICR1H=0xff;
ICR1L=0xff;OCR1A=0x0000;
OCR1B=0x0000;
temp=0x0ff0;
i=0;
while(1){
if (PINC.0==0){
delay_ms(100);
temp-=0xff;
if (temp==0xff01) temp=0x0000;
else goto a;
}if (PINC.1==0){
delay_ms(100);
temp+=0xff;
if (temp>=0x0ff) temp=0xffff;
}
if (PINC.5==0){
delay_ms(100);
temp=0x000;
}
if (PINC.6==0){
delay_ms(100);
temp+=0xff;
if (temp>=0x0ff) temp=0xffff;
}
a:
if (PINC.2==0){
i=~i;
if (i==0) TCCR1A=0x82;
else TCCR1A=0x22;
delay_ms(100);
}OCR1A=temp;
OCR1B=temp;}}
-
7/25/2019 Lap. 13 Motor
14/25
10
2.3.2 Pengontrolan Motor Stepper
1)
Program 1, Motor stepper yang berputar CCW secara full step
#include
#include
flash unsigned char string[]={0xC0,0x60,0X30,0X90};void main (void){
unsigned char i=0;
DDRD=0xF0;
PORTD=0x00;
while (1){//CCW full step
i++;
if (i==4) i=0;
PORTD=string[i];
delay_ms(25);
}}
2) Program 2, Motor stepper yang berputar secara full step atau half step
#include
#include
flash unsigned char string[]={0x80,0xC0,0x40,0x60,0x20,0x30,0x10,0x90};
bit j;
void main (void){
unsigned char i;
DDRC=0x00;PORTC=0xff;
DDRD=0xf0;
PORTD=0x00;
i=1;
j=0;
while(1){
if (PINC.0==0){
if (j==0){
i=i-2;
if (i==0xff) i=7;
PORTD=string[i];
}
else{
i--;
if (i==0xff) i=7;
PORTD=string[i];
}
delay_ms(100);
PORTD=0;
}if (PINC.1==0){
delay_ms(50);
-
7/25/2019 Lap. 13 Motor
15/25
11
if (j==0){
i=i+2;
if (i==9) i=1;
PORTD=string[i];
}
else{
i++;if (i==8) i=0;
PORTD=string[i];
}
delay_ms(100);
PORTD=0;
}
if (PINC.2==0){
delay_ms(100);
j=~j;
i=1;
}}}
3) Program 3, Motor stepper dengan kecepatan putar yang dapat di atur
#include
#include
flash unsigned char string[]={0x80,0xC0,0x40,0x60,0x20,0x30,0x10,0x90};
bit j;
void main (void){
unsigned char i;int temp;
DDRC=0x00;
PORTC=0xff;
DDRD=0xf0;
PORTD=0x00;
TCCR0=0x05;
temp=0xb2;
i=0;
j=0;
while(1){
if (j==0){
i++;
if (i==8) i=0;
PORTD=string[i];
}
else{
i--;
if (i==0xff) i=7;
PORTD=string[i];
}if (PINC.0==0){
delay_ms(100);
-
7/25/2019 Lap. 13 Motor
16/25
12
temp--;
if (temp=0xf9) temp=0xf8;}
if (PINC.2==0){
delay_ms(100);
j=~j;
i=0;
}
TCNT0=temp;
TIFR &=0x01;
while (!(TIFR&0x01));
TIFR &=0x01;
} ;}
4) Tugas, Program 3 dengan menambahkan PB 1 (PINC.7) agar motor berputar cepat secara
half step, dan PB2 (PINC.6) digunakan untuk menghentikan putaran motor DC.
#include
#include
flash unsigned char string[]={0x80,0x40,0x60,0x20,0x30,0x10,0x90};
bit j;
void main(void){
unsigned char i, temp;
PORTC=0x00;
DDRC=0x00;
PORTD=0x00;
DDRD=0xf0;
TCCR0=0x05;
temp=0xB2;
i=0;
j=0;
while (1)
{
if(j==0){
i++;
if(i==8)i=0;
PORTD=string[i];
}
else{
i--;
if(i==0xff) i=7;
PORTD=string[i];}
-
7/25/2019 Lap. 13 Motor
17/25
13
if(PINC.0==0){
delay_ms(100);
temp--;
if(temp==0xff) temp=0;
}
if(PINC.1==0){
delay_ms(100);temp++;
if(temp==0xf9) temp=0xf8;
}
if (PINC.2==0){
delay_ms(100);
j=~j;
i=0;
}
if (PINC.7==1){
delay_ms(100);
temp++;if(temp==0xf9) temp=0xf8;
}
if (PINC.6==0){
break;
}
TCNT0=temp;
TIFR&=0x01;
while(!(TIFR&0x01));
TIFR&=0x01;
};}
-
7/25/2019 Lap. 13 Motor
18/25
14
BAB III
PEMBAHASAN
3.1 Data Percobaan
3.1.1
Pengontrolan Motor DC
1)
Program 1, Motor DC berputar searah menggunakan PWM channel A.
Tombol yang di tekan Kecepatan Motor DC
Tidak Ada Sedang
Push Button 1 (PC0) Berkurang hingga berhenti
Push Button 2 (PC1) Bertambah hingga stabil untuk cepat
2) Program 2, Motor DC dengan arah putaran yang dapat di pilih.
Push ButtonKecepatan
Motor DCKeteranganPB3 PB2 PB1
(PC2) (PC1) (PC0)
Tanpa
di tekan
0 0 Sedang CW
0 1Berkurang
hingga berhentiCW
1 0Bertambah hingga
kecepatan maksimalCW
Di tekan
sesaat
0 0 Sedang CCW
0 1Berkurang
hingga berhentiCCW
1 0Bertambah hingga
kecepatan maksimalCCW
3) Tugas, Program 2 dengan menambahkan PINC.6 (PB1) untuk menggerakan motor
berputar cepat dan PIC.5 (PB2) untuk menghentikan putaran motor.
Push ButtonKecepatanMotor DC
KeteranganPB5 PB4 PB3 PB2 PB1
(PC5) (PC6) (PC2) (PC1) (PC0)
Tanpa
di tekan
0
Tanpa
di tekan
0 0 Sedang CW
0 0 1Berkurang hingga
berhentiCW
1 1 0Bertambah hingga
kecepatan maksimalCW
0
Di tekan
sesaat
0 0 Sedang CCW
0 0 1Berkurang hingga
berhentiCCW
1 1 0Bertambah hingga
kecepatan maksimalCCW
-
7/25/2019 Lap. 13 Motor
19/25
-
7/25/2019 Lap. 13 Motor
20/25
16
0
Di tekan
sesaat
0 0 Sedang CW (Half Step)
0 0 1Berkurang hingga
berhentiCW (Half Step)
1 1 0Bertambah hingga
kecepatan maksimalCW (Half Step)
Di tekan
sesaat 0 0 0 0
Motor berhenti
berputar Stop
3.2 Analisa
3.2.1 Pengontrolan Motor DC
1) Program 1, Motor DC berputar searah menggunakan PWM channel A.
Pada program ini, motor DC di atur kecepatannya menggunakan PWM yang berasal dari
OCR1A (Timer/Counter1 Channel A). Register TCCR1A di isi dengan data 0x82 sehingga
mendeskripsikan bahwa channel A digunakan dengan metode phase correct dengan nilai puncak
sesuai dengan data pada ICR1 yang mana register 16 bit. Output PWM terdapat pada OCR1A
yang mana terhubung dengan PD5.
Saat tidak ada tombol yang di tekan, maka data PWM yang dikeluarkan mikrokontroler
bernilai 0x0ff0, hal ini merepresentasikan kecepatan motor sedang. Saat PB1 (PC.0) di tekan, data
tersebut di kurangi hingga saat data tersebut mencapai 0xff01, maka PWM bernilai 0 (Kecepatan
motor berkurang hingga berhenti). Ketika PB2 (PC.1) di tekan, data PWM saat normal (0x0ff0)
di tambahkan terus-menerus saat data tersebut mencapai 0x0ff, maka PWM yang dikeluarkan
stabil dengan nilai 0xff (Kecepatan motor bertambah hingga kecepatan maksimal).
2)
Program 2, Motor DC dengan arah putaran yang dapat di pilih.
Pada program ini, motor DC di atur kecepatan dan arah putarannya menggunakan PWM
yang berasal dari OCR1 (Timer/Counter1). Register TCCR1A di isi dengan data 0x82 sehingga
mendeskripsikan bahwa channel A digunakan dengan metode phase correct dengan nilai puncak
sesuai dengan data pada ICR1 yang mana register 16 bit. Output PWM terdapat pada OCR1 yang
mana terhubung dengan PD5 dan PD4.
Saat awal program, TCCR1A bernilai 0x82 sehingga hanya channel A yang mengeluarkan
nilai PWM sehingga motor berputar CW (clock wise) dengan kecepatan motor stabil dengan nilai
PWM 0x0ff0, Sedangkan Saat PB3 (PC.2) di tekan data TCCR1A menjadi 0x22 sehingga hanya
channel B yang mengeluarkan PWM sehingga motor berputar berlawanan dengan arah jarum jam
(CCW) dengan nilai awal PWM 0x0ff0.
Saat PB1 (PC.0) di tekan, data tersebut di kurangi hingga saat data tersebut mencapai
0xff01, maka PWM bernilai 0 (Kecepatan motor berkurang hingga berhenti). Ketika PB2 (PC.1)
di tekan, data PWM saat normal (0x0ff0) di tambahkan terus-menerus saat data tersebut mencapai
-
7/25/2019 Lap. 13 Motor
21/25
17
0x0ff, maka PWM yang dikeluarkan stabil dengan nilai 0xffff (Kecepatan motor bertambah
hingga kecepatan maksimal).
3) Tugas, Program 2 dengan menambahkan PINC.6 (PB1) untuk menggerakan motor
berputar cepat dan PIC.5 (PB2) untuk menghentikan putaran motor.
Pada program ini, motor DC di atur kecepatan dan arah putarannya menggunakan PWM
yang berasal dari OCR1 (Timer/Counter1). Register TCCR1A di isi dengan data 0x82 sehingga
mendeskripsikan bahwa channel A digunakan dengan metode phase correct dengan nilai puncak
sesuai dengan data pada ICR1 yang mana register 16 bit. Output PWM terdapat pada OCR1 yang
mana terhubung dengan PD5 dan PD4.
Saat awal program, TCCR1A bernilai 0x82 sehingga hanya channel A yang mengeluarkan
nilai PWM sehingga motor berputar CW (clock wise) dengan kecepatan motor stabil dengan nilaiPWM 0x0ff0, Sedangkan Saat PB3 (PC.2) di tekan data TCCR1A menjadi 0x22 sehingga hanya
channel B yang mengeluarkan PWM sehingga motor berputar berlawanan dengan arah jarum jam
(CCW) dengan nilai awal PWM 0x0ff0.
Saat PB1 (PC.0) di tekan, data tersebut di kurangi hingga saat data tersebut mencapai
0xff01, maka PWM bernilai 0 (Kecepatan motor berkurang hingga berhenti). Ketika PB2 (PC.1)
di tekan, data PWM saat normal (0x0ff0) di tambahkan terus-menerus saat data tersebut mencapai
0x0ff, maka PWM yang dikeluarkan stabil dengan nilai 0xffff (Kecepatan motor bertambah
hingga kecepatan maksimal). Ketika PB3 (PC.6) di tekan, data PWM saat normal (0x0ff0) di
tambahkan terus-menerus saat data tersebut mencapai 0x0ff, maka PWM yang dikeluarkan stabil
dengan nilai 0xffff (Kecepatan motor bertambah hingga kecepatan maksimal). Namun ketika PB4
(PC.5) di tekan, data PWM menjadi 0x0000 sehingga motor berhenti berputar.
3.2.2 Pengontrolan Motor Stepper
1) Program 1, Motor stepper yang berputar CCW secara full step
Pada program ini, data yang akan diberikan ke driver motor untuk menggerakan motor
stepper berasal dari data array pada string[]. Saat program selesai di download ke mikrokontroler,
PD4 hingga PD7 dijadikan sebagai output dengan nilai awal low. Setelah itu data i yang pada
awalnya 0 di incrementkan sehingga karena PORTD menerima data dari string[i] PORT D
mengeluarkan data 0xC0 (siklus pertama), setelah itu menjadi 0x60 (siklus kedua), lalu 0x30
(siklus ketiga), lalu 0x90 (siklus keempat). Perubahan setiap siklus dilakukan secara terus-
menerus setiap 25 mili detik.
-
7/25/2019 Lap. 13 Motor
22/25
18
2) Program 2, Motor stepper yang berputar secara full step atau half step
Pada program ini, data yang akan diberikan ke motor stepper diletakan pada string[].
Ketika belum ada tombol yang di tekan, mikrokontroler tidak mengeluarkan datanya (pada
PD4 hingga PD7) sehingga motor stepper tidak bergerak. Ketika awal program variabel j bernilai
0 sehingga motor berputar secara full step (i=i+2/i=i-2) yaitu ketika PB1 (PC.0) di tekan maka
motor berputar CW karena data string di baca di mulai dari kanan namun ketika PB2 (PC.1) di
tekan, maka motor berputar CCW karena data string di baca mulai dari kiri.
Saat PB2 (PC.2) di tekan data variabel j menjadi 1. Hal ini menyebabkan motor stepper
berputar secara half step (i=i++/i=i--). yaitu ketika PB1 (PC.0) di tekan maka motor berputar CW
karena data string di baca di mulai dari kanan namun ketika PB2 (PC.1) di tekan, maka motor
berputar CCW karena data string di baca mulai dari kiri.
3) Program 3, Motor stepper dengan kecepatan putar yang dapat di atur
Pada program ini, PWM yang digunakan pada OC0 yang mana pada register TCCR0 di
isi dengan data 0x05 sehingga OC0 beroperasi dalam mode normal dengan nilai puncak 0xff
namun OC0 tidak terhubung dengan peralatan luar. Dengan frekuensi 4 Mhz/1024 = 3,9 kHz.
Kecepatan motor di atur dengan nilai PWM yang mana menjadi delay memanfaatkan
fungsi register TIFR (Timer/Counter Interrupt Flag Register). Dalam kondisi normal normal, data
PWM tersebut bernilai 0xb2. PB1 (PC.0) digunakan untuk mengurangi kecepatan motor hingga
motor berhenti berputar dimana data awal PWM di kurangi sehingga saat mencapai 0x01, maka
PWM menjadi 0. PB2 (PC.1) digunakan untuk menambah kecepatan motor hingga motor
berkecepatan maksimal dimana data awal PWM di tambah sehingga saat mencapai 0xf9, maka
PWM menjadi 0xf8.
Arah putaran motor di atur oleh PB3 (PC.2), saat awal program dijalankan, variabel j
bernilai 0 sehingga motor berputar CCW (string di baca dari kiri). Saat PB3 di tekan sesaat, maka
data j dikomplemenkan sehingga menjadi 1, oleh karena itu motor berputar CW (string di baca
dari kanan).
4) Tugas, Program 3 dengan menambahkan PB 1 (PINC.7) agar motor berputar cepat secara
half step, dan PB2 (PINC.6) digunakan untuk menghentikan putaran motor DC.
Pada program ini, PWM yang digunakan pada OC0 yang mana pada register TCCR0 di
isi dengan data 0x05 sehingga OC0 beroperasi dalam mode normal dengan nilai puncak 0xff
namun OC0 tidak terhubung dengan peralatan luar. Dengan frekuensi 4 Mhz/1024 = 3,9 kHz.
Kecepatan motor di atur dengan nilai PWM yang mana menjadi delay memanfaatkan
fungsi register TIFR (Timer/Counter Interrupt Flag Register). Dalam kondisi normal normal, data
-
7/25/2019 Lap. 13 Motor
23/25
19
PWM tersebut bernilai 0xb2. PB1 (PC.0) digunakan untuk mengurangi kecepatan motor hingga
motor berhenti berputar dimana data awal PWM di kurangi sehingga saat mencapai 0x01, maka
PWM menjadi 0. PB2 (PC.1) digunakan untuk menambah kecepatan motor hingga motor
berkecepatan maksimal dimana data awal PWM di tambah sehingga saat mencapai 0xf9, maka
PWM menjadi 0xf8. PB4 (PC.7) digunakan untuk menambah kecepatan motor hingga motor
berkecepatan maksimal dimana data awal PWM di tambah sehingga saat mencapai 0xf9, maka
PWM menjadi 0xf8. PB5 (PC.6) digunakan untuk menghentikan putaran motor dimana dilakukan
dengan menggunakan fungsi break.
Arah putaran motor di atur oleh PB3 (PC.2), saat awal program dijalankan, variabel j
bernilai 0 sehingga motor berputar CCW (string di baca dari kiri). Saat PB3 di tekan sesaat, maka
data j dikomplemenkan sehingga menjadi 1, oleh karena itu motor berputar CW (string di baca
dari kanan).
-
7/25/2019 Lap. 13 Motor
24/25
20
BAB IV
PENUTUP
4.1 Kesimpulan
4.1.1
PWM pada mikrokontroler dapat digunakan setelah sebelumnya melakukan beberapa
pengaturan seperti mode operasi, frekuensi PWM, dan lainnya pada register TCCR, ICR,
dan sebagainya.
4.1.2 Driver motor digunakan untuk mendrive motor yang membutuhkan arus yang tidak
sanggup di suplai oleh mikrokontroler (mikrokontroler pada umumnya hanya
menyediakan daya 5V/20 mA).
4.1.3 Motor DC dan motor stepper dapat dikendalikan kecepatan dan arah putarannya dengan
menggunakan PWM menggunakan driver motor L293D.
4.2 Saran
4.2.1 Pastikan program yang dibuat telah anda pahami dengan baik agar ilmu yang dipelajari
dapat diimplementasikan dalam kehidupan.
4.2.2 Pastikan untuk menggunakan bantuan apabila kesulitan untuk memahami program.
4.2.3 Gunakan cara flowchart untuk membantu anda dalam membuat logika pemrograman.
-
7/25/2019 Lap. 13 Motor
25/25
DAFTAR PUSTAKA
Jobsheet Laboratorium Mikroprsosessor.2015.Praktikum Mikrokontroler dan Interface.Politeknik
Negeri Padang
Modul Training.2009.Mikrokontroler AVR.Institut Teknologi Bandung:HME ITB
Datasheet Atmega8535