P1010056

Sistem Kendali Jarak Jauh Motor Stepper Melalui RS-232 Berbasis Mikrokontroler MCS-51

Sebuah system kendali jarak jauh melalui RS-232 untuk motor stepper dengan spesifikasi hardware:

  • Sistem minimum AT89S51 dengan clock 11.0592 MHz dilengkapi dengan downloader ISP dan komunikasi serial RS-232 ke PC.

 

  • Motor stepper tipe unipolar 4 fase (kutub) 1.8 derajat/step dengan driver transistor/uln 2803 dan tegangan supplai 12 V.
  • Sistem terhubung via RS-232 ke PC dengan pengaturan via hyperterminal pada baudrate 19200bps.

Cara kerja system :

Bila salah satu tombol [0] s.d [9] pada keyboard PC ditekan maka motor akan berputar searah jarum jam. Semakin besar nilai tombol maka motor stepper tersebut berputar lebih cepat dan bila ditekan tombol ‘0’ maka motor berhenti.

Kecepatan putar stepper = nilai tombol * RPM (putaran/menit).

Solusi :

1. Perhitungan Baudrate

Listing program untuk inisialisasi baudrate :

Mensetting register TMOD dengan nilai 20H, menggunakan timer 8 bit mode 2, auto reload jadi saat overflow nilai TH-1 sama dengan nilai saat disetting. Pada saat auto reload ini, TH yang diisikan dengan nilai awalan cacahan akan menyalin isinya pada TL. Yang selanjutnya TL akan selalu mencacah mulai dari nilai seperti isi TH. Sementara itu isi TH sendiri tidak berubah. Listing program : MOV TMOD,#20h ;Timer-1, Mode-2, auto-reload

Register SCON adalah register 8-bit yang digunakan untuk memprogram bit start dan bit stop pada pembingkaian data, dan hal lainnya. Register SCON diisi dengan nilai 52h, yang berarti serial mode-1, 8-bit data yang dibingkai dengan start dan stop bit. Listing program : MOV SCON,#52h.

Dengan tidak mengubah frekuensi kristal osilator, kita dapat mendua-kalikan baud rate dengan membuat SMOD menjadi = 1 . Saat bit SMOD pada register PCON ini = 1, peralatan serial beralih menggunakan frekuensi yang 1/16 dari siklus mesin ( sebelumnya

1/32 ). Sehingga perhitungannya menjadi MC (Siklus Mesin) = 11.0592 MHz / 12 = 921600 Hz. Baud dasar = 921.6 kHz / 16 = 57,600 Hz (SMOD =1) sehingga untuk menghasilkan frekuensi yang diinginkan yaitu 19200 maka 57600/3= 19200. Nilai 3 diisikan pada register TH1= -3.

Listing program :

MOV A,PCON ;A = PCON

SETB ACC.7 ;Buat D7 = 1 (Double rate)

MOV PCON,A ;

MOV TH1,#-3 ;dengan SMOD=1 === 57600/3 = 19200

2. Perhitungan Kecepatan motor

Pada motor stepper dengan spesifikasi 1,8 derajat/step. Sehingga untuk mencapai satu putaran penuh membutuhkan : 1 putaran = 360 derajat maka banyak step dalam 1 putaran 360/1.8 = 200 step. Crystal yang dipakai yaitu 11059200 Hz. Timer yang akan digunakan yaitu Timer 0 mode 1 sehingga TH0 dan TL0 dapat diisi masing-masing 8 bit.

Kecepatan putar stepper = nilai Tombol * 10 RPM (putaran/menit). Maka untuk mendapatkan nilai yang diisi pada register TH0 adalah dengan perhitungan :

11059200/12 = 921600 Hz sehingga 1 langkah/klik timer 1/921600= 1,085 us. Untuk 10 RPM maka jumlah step 200 step * 10 = 2000 step . Maka tiap step membutuhkan waktu :

60/2000 = 0.03. Untuk mendapatkan nilai TL0 dan TH0 dengan 10 RPM : 0.03 s/1,085 us = 0.03/0.000001085 = 27649 langkah. TL0 dan TH0 bisa diisi dengan 65536-27649=37888. Nilai hexadecimal dari 37887 adalah 93ffh sehingga TL0 =0FFh dan TH0= 93h.

 

11 gagasan untuk “Sistem Kendali Jarak Jauh Motor Stepper Melalui RS-232 Berbasis Mikrokontroler MCS-51

  1. kang ibnu

    Makasih artikel yang menarik dan buagus untuk dicoba….mudah-mudahan yg nulis di blog ini diberikan rizqi yg melimpah….. amiin

    Pake C apa assembly..? boleh minta mohon kirim di email, untuk donasi dikirm kemana.. trims

    1. Musbikhin Penulis

      Sory bru bls, sudah lama tidak mngunjungi blog ini..

      pake assembly mas…
      untuk donasi bisa kesini pak No Rekening BCA: 8220.108.962
      atas nama : Musbikhin
      Masih buth filennya apa tidak mas..kalo iya bisa sms ata blas coment ini…Terimakasih….

  2. elhana

    selamat siang, saya ingin bertanya.,.
    saya menggunakan program CV AVR mikrokontroler AtMega16 untuk menggerakkan motor agar berputar cepat..
    tadinya motor berputar cepat, tapi setelah saya mengatur usart untuk interface rs232/usb serial motornya tidak lagi bergerak secepat biasanya, motornya jadi pelan sekali,.,
    kenapa ya?? atau ada listing program yang salah??
    saya minta emailnya, biar saya bisa mengirim listing programnya..
    terima kasih sebelumnya.,
    God Bless.,.:)

  3. elhana

    hai..,
    aku mau nanya, aku gunakan program CV AVR mikrokontroler untuk gerakkan motor stepper, tadinya motor berputar cepat, tapi sewaktu aku setting usart untuk interface rs 232/ usb serial motornya malah nggak berputar atau kadangkala berputar tapi pelan sekali.,,
    kenapa ya.,.,tolong bantuannya.,kalau masih kurang jelas penjelasanku, aku minta emailnya agar bisa aku kirim listing programnya.,.
    terima kasih.,.
    God Bless

Tinggalkan Balasan