Minggu, 21 Februari 2010

Interfacing Serial Port dengan ATMEGA8535 (Menggerakkan Motor Stepper)

    Motor stepper merupakan motor DC yang tidak memiliki komutator. Pada umumnya motor stepper hanya mempunyai kumparan pada statornya sedangkan pada bagian rotornya merupakan  magnet permanen. Motor stepper banyak digunakan untuk aplikasi-aplikasi yang biasanya cukup menggunakan torsi yang kecil, seperti untuk penggerak piringan disket atau piringan CD. Ada juga yang digunakan pada printer kebanyakan.
    Pada tutorial ini saya menggunkan motor stepper yang saya dapat dari sebuah printer (Merk tidak saya sebutkan,red).bentuknya bisa anda lihat pada gambar.1.



Gambar.1 Motor Stepper

    Pada percobaan yang saya lakukan,saya mengubah sedikit posisi jumper yang ada dimana jumper kedua dan ketiga saya tukar posisinya. Saya menggunakan jumper bertanda biru sabagai indikator.
    Keempat jumper yang ada tersebut akan kita hubungkan langsung dengan Port pada mikrokontroler yang kita gunakan. Saya sendiri menggunakan mikrokontroler AVR dari kelas ATMEGA tipe ATMEGA8535 tentunya. Dan jumper stepper saya hubungkan pada PORTA0-3. Lihat gambar.2.


Gambar.2 Rangkaian Pengendali Stepper Motor
    Untuk program yang akan kita downloadkan,seperti biasa saya menggunkan bahasa pemrograman c menggunakan software CodeVisionAVR. Baca juga Programan Bahasa C menggunakan CodeVisionAVR.

Listing Program Pengendali Stepper Motor:
Step.C
//Percobaan Motor Stepper
//Terhubung pada PortA.0-3
#include
// Standard Input/Output functions
#include
#include

// Declare your global variables here

void main(void)
{
// Declare your local variables here
 unsigned char data;
// Input/Output Ports initialization
PORTA=0x00;
DDRA=0xFF;

PORTB=0x00;
DDRB=0x00;

PORTC=0x00;
DDRC=0x00;

PORTD=0x00;
DDRD=0x00;

//code wizard yang lain tetap

// USART initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART Receiver: On
// USART Transmitter: On
// USART Mode: Asynchronous
// USART Baud Rate: 9600
UCSRA=0x00;
UCSRB=0x18;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x47;

// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;


while (1)
      {
      // Place your code here
      data=UDR;
        if(data==97)    //setara 61H atau anda tekan huruf a dikeyboard
      {
        //stepper   cw
        PORTA=0x01;
        delay_ms(500);
        PORTA=0x08;
        delay_ms(500);
        PORTA=0x02;
        delay_ms(500);
        PORTA=0x04;
        delay_ms(500);
      }
    
        else if(data==98)     //setara 62H atau anda tekan huruf b dikeyboard
      {
        //stepper ccw      
        PORTA=0x01;
        delay_ms(500);
        PORTA=0x04;
        delay_ms(500);
        PORTA=0x02;
        delay_ms(500);
        PORTA=0x08;
        delay_ms(500);                  
       }
       else{
       PORTA=0x00;
       }
       
      };
}
   

    Kompilasi program tersebut dan downloadkan kemikrokontroler ATMEGA8535 anda. Jangan lupa sistem rangkaian Interfacing serila port sudah anda buat.(seperti gambar.2). Lihat yang terjadi pada motor stepper anda.
    Jika anda ingin mempercepat perputaran motor stepper,maka kurangi nilai delay_ms(500); mejadi 50 atau sesuai yang anda inginkan.
    Artikel ini telah saya uji cobakan dengan hasil yang memuaskan. Silakan klik disini untuk download file stepper.zip.

5 komentar:

  1. kang, mana yang didonlot?
    kok g ada?

    BalasHapus
  2. iya mana nie yang di download??

    BalasHapus
  3. mana nih yang di download???

    BalasHapus
  4. sorry brother, linknya nggak ada.
    saya pikir, coding tersebut udah ngewakilin dan cukup.

    BalasHapus
  5. gan bagaimana cara jika ingin mempercepat atau memperlambat putaran motonya?

    BalasHapus

Need Your Comments, Please !!!