Interface Motor Stepper Menggunakan ATMega128 (CodevisionAVR)



1. Tujuan [Kembali]

a. Merangkai dan menguji output pada mikrokontroller ATMEGA 128
b. Merangkai dan menguji input pada mikrokontroller ATMEGA 128
c. Merangkai dan menguji I/O pada mikrokontroller ATMEGA 128

2. Alat [Kembali]

2.1 Mikrokontroler ATMega128

2.2 Motor Stepper

2.3 Baterai

2.4 Driver Motor Stepper ULN2003A

3. Teori [Kembali]

3.1. Mikrokontroler ATMega128

Mikrokontroller ATMEGA 128 merupakan mikrokontroller keluarga AVR yang mempunyai kapasitas flash memori 128KB. AVR (Alf and Vegard’s Risc Processor) merupakan seri mikrokontroler CMOS 8-bit buatan ATEMEL inc, berdasarkan arsitektur RISC (Reduced Instruction Set Computer). Secara umum, AVR dapat terbagi menjadi 4 kelas, yaitu keluarga ATtiny, keluarga AT90Sxx, keluarga AT-Mega, dan AT86RFxx. Pada dasarnya yang membedakan masing-masing kelas adalah memori, peripheral, dan fungsinya. Dari segi arsitektur dan instruksi yang digunakan, bisa dikatakan hampir sama. Semua jenis AVR dilengkapi dengan flash memori sebagai memori program. Kapasitas dari flash memori ini berbeda antara chip yang satu dengan chip yang lain. Tergantung dari jenis IC yang digunakan. Untuk flash memori yang paling kecil adalah 1 kbytes (ATtiny11, ATtiny12, dan ATtiny15) dan paling besar adalah 128 kbytes (AT-Mega128). Berikut ini adalah spesifikasi Mikrokontroler AVR ATMega-128 dan konfigurasi pin ATMEGA 128.

3.1.1 Fitur-Fitur ATMega128

1. Saluran I/O sebanyak 56 buah, yaitu Port A, Port B, Port C, Port D, Port E, Port F dan Port G.
2. ADC 10 bit sebanyak 8 saluran.
3. 2 buah Timer/Counter 8 bit dan 2 buah Timer/Counter 16 bit.
4. Dua buah PWM 8 bit.
5. Watchdog Timer dengan osilator internal.
6. Internal SRAM sebesar 4 kbyte.
7. Memori flash sebesar 128 kBytes.
8. Interupsi Eksternal.
9. Port antarmuka SPI.
10. EEPROM sebesar 4 kbyte.
11. Real time counter.
12. 2 buah Port USART untuk komunikasi serial.
13. Enam kanal PWM.
14. Tegangan operasi sekitar 4,5 V sampai dengan 5,5V


3.2. Pengertian Motor Stepper

Stepper motor bekerja pada prinsip yang sama motor dc. Ini adalah motor dc sinkron yang bergerak dalam langkah-langkah terpisah untuk menyelesaikan rotasinya. Biasanya, setiap langkah bergerak 1,8 derajat dan oleh karena itu total 200 langkah untuk rotor menyelesaikan rotasi tunggal. Tidak seperti motor dc biasa, ia mengandung beberapa magnet stator yang digunakan untuk memicu setiap langkah.

Prinsip dasar di balik kerja motor stepper adalah elektromagnetisme. Karena motor stepper bekerja dengan prinsip motor dc yang sama, motor stepper biasanya dianggap sebagai motor dc. Tapi tidak seperti motor dc, mereka memiliki beberapa koil stator yang disebut fase. Dengan memberi energi setiap fase dengan cara yang terkendali atau dengan urutan pulsa yang telah ditentukan, motor menyelesaikan revolusi penuhnya dengan satu langkah setiap kalinya. Kita bisa mencapai gerak dengan cara yang lebih tepat dan terkendali dengan bantuan sirkuit kontrol.


Mirip dengan motor lain, motor stepper memiliki bagian berputar yang secara tepat disebut rotor dan bagian statis disebut stator. Stator dan rotor memiliki kutub magnet. Dengan memberi energi pada batang stator, rotor bergerak agar bisa sejajar dengan stator. Sebuah rotor adalah gigi berbentuk gigi berbentuk pusat. Stator adalah seperangkat elektromagnet bergigi yang tersusun di sekitar roda gigi.

Bila lilitan fasa motor stepper dilengkapi dengan arus, fluks magnetik yang sesuai akan dikembangkan di stator dalam arah yang tegak lurus terhadap arah aliran arus. Elektromagnet diberi energi satu per satu. Ketika satu elektromagnet diberi energi dengan bantuan sirkuit pengemudi eksternal atau mikrokontroler, poros rotor berputar sedemikian rupa sehingga menyesuaikan dirinya dengan stator dalam posisi yang meminimalkan pertentangan fluks. Itu berarti elektromagnet menarik gigi gigi dimana elektromagnet diimbangi dari sisa elektromagnet. Karena ini, ketika elektromagnet berikutnya dinyalakan, elektromagnet pertama dimatikan yang menghasilkan gigi gigi yang tertarik pada elektromagnet kedua.

Menurut susunan koil elektromagnetik yang berkelok-kelok dalam motor stepper dua fasa, mereka diklasifikasikan sebagai motor stepper unipolar dan bipolar. Pada motor stepper unipolar yang bekerja dengan satu lilitan dengan keran tengah per fasa, setiap bagian lilitan fasa dihidupkan untuk setiap arah medan magnet. Karena motor stepper unipolar cukup mudah dioperasikan, ini sangat disukai di kalangan penggemar.

Pada motor stepper bipolar, ada belitan tunggal per fase. Hal ini membuat sirkuit pengemudi jauh lebih rumit saat membalikkan kutub magnet yang pada gilirannya membalikkan arus pada belitan. Biasanya pengaturan H-Bridge digunakan untuk melakukan tugas ini. Seseorang juga bisa membeli chip chips sederhana agar tugasnya tidak terlalu rumit.

Motor stepper unipolar hanya bekerja pada voltase positif. Itu berarti hanya ada satu polaritas. Tingkat tegangan atas dan bawah positif. Misalnya level tegangan atas 5V dan level tegangan rendah 0V. Motor stepper unipolar membutuhkan kawat di tengah setiap koil untuk memungkinkan arus mengalir.
Terutama ada 3 jenis mode stepping pada motor stepper Unipolar:
1. Langkah penuh
2. Setengah langkah
3. Langkah mikro

Karena kami mensimulasikan motor stepper unipolar yang langkah penuh dengan mode dual phase, maka hanya langkah penuh saja yang akan kami bahas disini.
Dalam mode dual phase, motor yang dioperasikan di kedua fase mendapat energi pada saat bersamaan. Mode ini memberikan torsi dan kecepatan tinggi. Tapi mode ini membutuhkan dua kali jumlah daya yang digunakan dalam satu mode langkah

3.3. Pengertian Driver Motor ULN2003A

IC ULN2003A merupakan salah satu driver motor yang sering digunakan. Di dalam IC ULN2003A terdapat 7 buah rangkaian transistor darlington yang membentuk logika kerja seperti gerbang logika NOT (inverter/pembalik kondisi). Sehingga dalam penggunaannya akan lebih mudah mengingat bahwa IC ULN2003A itu berisi gerbang NOT dari pada mengingat bahwa IC ULN2003A itu berisi rangkaian transistor darlington. Untuk lebih memahaminya, mari melihat gambar konfigurasi pin IC ULN2003A pada gambar berikut.



Dengan melihat gambar, dapat diketahui bahwa dengan memberikan logika low (tegangan 0 volt) pada kaki In1 maka akan menghasilkan kondisi keluaran (output) pada kaki Out1 berlogika high (tegangan ±5 volt). Demikian juga sebaliknya, dengan memberikan logika high (tegangan ±5 volt) pada kaki In1 maka akan menghasilkan kondisi keluaran (output) pada kaki Out1 berlogika low (tegangan 0 volt).

4. Rangkaian [Kembali]



Rangkaian diatas merupakan rangkaian sederhana dari pengunaan ATMega128 untuk menggerakkan motor stepper. Pada rangkaian jika tombol 1 keypad ditekan maka motor akan bergerak adan lcd akan ditampilkan tulisan.

5. Program [Kembali]


#include <mega128.h>   
#include <delay.h>           
#include <alcd.h>                     

void putar()            //Fungsi menggerakkan motor stepper           
{
lcd_gotoxy(1,1);        // Cetak tulisan di baris 1 kolom 1 LCD                       
lcd_putsf("Motor Bergerak");
PORTD=0b00000011;       // Menggerakkan Motor Stepper FullWave Mode dual phasa
delay_ms(50);
PORTD=0b00000110;
delay_ms(50);
PORTD=0b00001100;
delay_ms(50);
PORTD=0b00001001;
delay_ms(50);
}
void keypad()           // Fungsi keypad
{
PORTE=0b1111011;                       
delay_ms(1);                                   
if (PINE.4 == 0)       // Jika tombol 1 ditekan                       
  {         
    lcd_gotoxy(1,0);           // Cetak tulisan di baris 0 kolom 1 LCD             
    lcd_putsf("Anda Tekan 1");     
    putar();                   // Panggil Fungsi Putar                     
  }
}

void main(void)                // Program Utama               
{       
    PORTD=0x00;                // Nilai awal PORTD low           
    DDRD=0xff;                 // PRORTD sebagai Output                                                         
    PORTE=0xff;                // Nilai Awal PORTE high               
    DDRE=0x0f;                 // 4 pin pertama PORTE output, 4 pin teralhir sebagai input                                 
    lcd_init(16);              // Inisialisasi LCD                 
 
    while(1)                   // Looping                   
    {   lcd_clear();           // Bersihkan layar LCD
        lcd_gotoxy(1,1);       // Cetak tulisan di baris 1 kolom 1 LCD                 
    lcd_putsf("Motor Diam");
       keypad();               // Panggil fungsi keypad
                                             
    }

}


6. Flowchart [Kembali]



7. Video Simulasi [Kembali]




8. Analisa Hubungan Rangkaian & Program[Kembali]

Rangkaian di atas menggunakan 3 buah komponen pendukung. pertama yaitu LCD. untuk mengkoneksikan LCD ini dengan Mikrokontrolernya dihunbungkan pin-pin seperti gambar rangkaian di atas. kedua Keypad yang hanya digunakan tombol 1 saja.Untuk mengakses tombol satu ini program akan memberikan nilai PORT yang dihubungkan ke keypad (Dalam hal ini E) berlogika 1 kecuali kolom yang memuat tombol 1 yaitu kolom 1 akan diberi logika 0. ketika tombol 1 ditekan maka baris yang memuat tombol 1 akan berlogika 0, sehingga saat kolom dan baris yang memuat tombol 1 nol, maka data akan dikirimkan ke mikrokontroler. Selanjutnya juga meggunakan driver motor stepper ULN2003A. saat tombol 1 ditekan maka program akan mengirimkan data ke LCD berupa tulisan "Anda Tekan 1" pada baris 0 dan " motor Bergerak " pada baris 1 dan program juga akan memberikan nilai agar motor stepper bergerak dengan fullwave mode. ketika tombol 1 tidak ditekan program tidak memberikan data ke driver motor sehinga motor tidak bergerak namun program tetap memberikan data ke LCD berupa tulisan "Motor Diam".



           


          


Share
Tweet
Pin
Share