Lap. 13 Motor

download Lap. 13 Motor

of 25

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