OFFICIAL WEBSITE TECHNOLOGY DIGITAL LABORATORY
Gedung Lab Fisika Unit 10 Lt 2 Jl.Bioteknologi FMIPA Kampus USU
Home » » Motor DC

Motor DC

Posted by Teknologi Digital on Minggu, 04 Juni 2017


Motor DC yang digunakan pada robot-robot experiment pada umumnya adalah type 'geared dc motor', motor dc jenis ini mudah digunakan dan pada umumnya langsung berhasil.


Kebutuhan pertama pada penggunaan motor DC pada robot sederhana adalah pengatur kecepatan putar motor DC tersebut dan juga untuk mengatur arah putaran motor DC. Rangkaian sederhana untuk mengatur kecepatan putaran motor DC adalah dengan mengirimkan sinyal PWM dari mikrokontroller, dengan mengatur lebar pulsa maka kecepatan motor DC juga dapat diatur dengan mudah.
Nilai R1 dan R2 tidak kritis, pada umumnya berapa saja bisa jalan, tetapi saya menggunakan nilai R1 = 1 k_ohm, dan R2 = 10 k_ohm.
juga transistor FET yang digunakan, tidak mesti IRF540, transistor biasa juga bisa pakai misalnya TIP122, hasilnya tidak jauh beda.
Lebih bagus lagi kalau dilengkapi dengan rangkaian proteksi dan snubber, tetapi tidak digunakan juga tidak terlalu bermasalah, kalau rusak iya di ganti, gak ada risiko untuk keselamatan, ini kan robot mainan.


Untuk mengubah arah putaran motor, putar kiri atau putar kanan, biasanya digunakan rangkaian jembatan-H. Rangkaian tersebut diberi nama dengan jembatan-H karena mirip bentuknya seperti jembatan dan huruf H.

Pada gambar diatas, arah putar motor ditentukan dari nilai logika yang masuk melalui R3 dan R4. Jika nilai 0 0, maka motor dc akan berhenti berputar, jika nilai yang diberikan 0 1, maka motor akan putar kanan, dan 1 0 akan membuat motor putar kiri, sementara nilai 1 1, tidak diijinkan untuk diberikan kepada jembatan-H tersebut. Jika diberikan nilai 1 1 keadaannya sama dengan status keadaan -0 0, tetapi tidak biasanya digunakan untuk keperluan menghentikan gerakan motor.

Untuk keperluan robot pengikut garis atau robot beroda, banyak digunakan motor DC seperti pada gambar disamping, dengan motor DC seperti ini, maka sebagian kesulitan seperti mengatur kekuatan putar motor pada roda (torque) juga pemasangan roda sudah teratasi. Motor DC seperti ini juga harganya murah, dan bekerja pada tegangan DC 4.5 s/d 6 volt, sehingga memudahkan dalam pengaturan arus menuju motor.
Motor DC berikut ini lebih kecil dan bertenaga lebih besar, hanya saja tegangan kerja adalah 12 volt, untuk menggunakannya diperlukan 2 bagian power supply yaitu supply 5 volt untuk rangkaian kontrol seperti mikrokontroller dan komponen pendukungnya, dan supply 12 volt untuk keperluan pengendalian motor. Masing-masing ada kelemahan dan kelebihannya.
Untuk menguji kecepatan motor DC tersebut dapat dilakukan dengan mengikuti diagram block berikut ini, nilai pulsa HIGH PWM diambil dari input ADC yang dihubungkan ke trimpot 10k.

Nilai tersebut dikirim melalui output PWM OCR1A pada mikrokontroller ATMega8535, kemudian nilai tersebut juga dikirimkan ke display sekedar untuk melihat perubahan yang terjadi pada saat menggeser trimpot yang terhubung ke potensio 10k.
Sebelum menggunakan PWM dari port OCR1A, sebaiknya dicoba dulu dengan menggunakan on/off pada pin dengan delay high dan delay low yang nilainya diperoleh dari ADC, dan input PWM sementara digunakan PORTC.7 untuk on/off. Program sederhana untuk keperluan menguji rangkaian diatas adalah sbb:
#include
#include
#include
#define led PORTD.7
#define motor PORTC.7
// Alphanumeric LCD functions
#include
// Declare your global variables here
#define ADC_VREF_TYPE ((0<
// Read the AD conversion result
unsigned int read_adc(unsigned char adc_input)
{
ADMUX=adc_input | ADC_VREF_TYPE;
// Delay needed for the stabilization of the ADC input voltage
delay_us(10);
// Start the AD conversion
ADCSRA|=(1<
// Wait for the AD conversion to complete
while ((ADCSRA & (1<
ADCSRA|=(1<
return ADCW;
}
void main(void)
{
// Declare your local variables here
unsigned char buf[33];
unsigned int lebar_h;
// Alphanumeric LCD initialization
// Connections are specified in the
// Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu:
// RS - PORTB Bit 0
// RD - PORTB Bit 1
// EN - PORTB Bit 2
// D4 - PORTB Bit 4
// D5 - PORTB Bit 5
// D6 - PORTB Bit 6
// D7 - PORTB Bit 7
// Characters/line: 16
lcd_init(16);
lcd_gotoxy(0,0);
lcd_putsf("test PWM");
while (1)
      {
      // Place your code here
           lebar_h = read_adc(0);
           lcd_gotoxy(0,1);
           sprintf(buf,"PWM: u u", lebar_h, 1023 - lebar_h);
           lcd_puts(buf);
           motor = 1;
           delay_ms(lebar_h);
           motor = 0;
           delay_ms(1023 - lebar_h);                      
           led = ! led;      
      }
}
Previous
« Prev Post

0 komentar:

Posting Komentar

Popular Posts