Motor Stepper
20.37
Mikrokontroller AT MEGA 128 dan Mikrokontroller
PIC16F877A.
a. Mikrokontroller AT MEGA 128 dan Mikrokontroller ascom AVR
b. Motor Stepper
b. Motor Stepper
Motor stepper adalah salah satu jenis motor dc yang dikendalikan dengan pulsa-pulsa digital. Prinsip kerja motor stepper adalah bekerja dengan mengubah pulsa elektronis menjadi gerakan mekanis diskrit dimana motor stepper bergerak berdasarkan urutan pulsa yang diberikan kepada motor stepper tersebut.
Kelebihan Motor Stepper
Kelebihan motor stepper dibandingkan dengan motor DC biasa adalah :
- Sudut rotasi motor proporsional dengan pulsa masukan sehingga lebih mudah diatur.
- Motor dapat langsung memberikan torsi penuh pada saat mulai bergerak
- Posisi dan pergerakan repetisinya dapat ditentukan secara presisi
- Memiliki respon yang sangat baik terhadap mulai, stop dan berbalik (perputaran)
- Sangat realibel karena tidak adanya sikat yang bersentuhan dengan rotor seperti pada motor DC
- Dapat menghasilkan perputaran yang lambat sehingga beban dapat dikopel langsung ke porosnya
- Frekuensi perputaran dapat ditentukan secara bebas dan mudah pada range yang luas.
Prinsip Kerja Motor Stepper
Prinsip kerja motor stepper adalah
mengubah pulsa-pulsa input menjadi gerakan mekanis diskrit. Oleh karena
itu untuk menggerakkan motor stepper diperlukan pengendali motor stepper
yang membangkitkan pulsa-pulsa periodik.
Berikut ini adalah ilustrasi struktur motor stepper sederhana dan pulasa yang dibutuhkan untuk menggerakkannya :
Jenis-Jenis Motor Stepper
Berdasarkan struktur rotor dan stator pada motor stepper, maka motor stepper dapat dikategorikan dalam 3 jenis sebagai berikut :
Motor stepper Variable reluctance (VR)
Motor stepper jenis ini telah lama ada dan merupakan jenis motor yang secara struktural paling mudah untuk dipahami. Motor ini terdiri atas sebuah rotor besi lunak dengan beberapa gerigi dan sebuah lilitan stator. Ketika lilitan stator diberi energi dengan arus DC, kutub-kutubnya menjadi termagnetasi. Perputaran terjadi ketika gigi-gigi rotor tertarik oleh kutub-kutub stator.Motor stepper Permanent Magnet (PM)
Motor stepper jenis ini memiliki rotor yang berbentuk seperti kaleng bundar (tin can) yang terdiri atas lapisan magnet permanen yang diselang-seling dengan kutub yang berlawanan. Dengan adanya magnet permanen, maka intensitas fluks magnet dalam motor ini akan meningkat sehingga dapat menghasilkan torsi yang lebih besar. Motor jenis ini biasanya memiliki resolusi langkah (step) yang rendah yaitu antara 7,50 hingga 150 per langkah atau 48 hingga 24 langkah setiap putarannyaMotor stepper Hybrid (HB)
Motor stepper tipe hibrid memiliki struktur yang merupakan kombinasi dari kedua tipe motor stepper sebelumnya. Motor stepper tipe hibrid memiliki gigi-gigi seperti pada motor tipe VR dan juga memiliki magnet permanen yang tersusun secara aksial pada batang porosnya seperti motor tipe PM. Motor tipe ini paling banyak digunkan dalam berbagai aplikasi karena kinerja lebih baik. Motor tipe hibrid dapat menghasilkan resolusi langkah yang tinggi yaitu antara 3,60 hingga 0,90 per langkah atau 100-400 langkah setiap putarannyaMotor DC dengan AT Mega
20.21
1. Rangkaian Simulasi [kembali]
Prinsip kerja rangkaian :
Rangkaian terdiri dari LCD, driver motor L293D, keypad, dan 2 switch dengan menggunakan mikrokontroller Atmega 128. Dimana LCD terhubung pada PORT A, switch terhubung pada PORT B dengan switch 1 pada pin 0 ddan switch 2 pada pin 6. Dan juga driver motor terhubung pada PORT D dan keypad terhubung pada PORT E. untuk menjalankan simulasi klik tombol PLAY. untuk memulai operasi maka ditekan tombol RESET terlebih daulu. setelah itu, apabila tombol 1 pada keypad ditekan, maka motor stepper akan berputar. dan apabila switch 1 diaktifkan, maka motor stepper akan berputar juga
2. Flowchart [kembali]
3. Listing Program [kembali]
#include <mega128.h> // Library atmega 128
#include <delay.h> // Libaray delay
#include <alcd.h> // Library LCD
int pin[]={1,2,4,8}; // Deklarasi pin digunakan
int i; // Deklarasi nilai I;
void putar() // Fungsi putar
{
for( i=4;i>0;i--) // Perulangan
{
lcd_gotoxy(1,1); // Posisi tulisan pada LCD
lcd_putsf("Putar"); // Mencetak tulisan pada LCD
delay_ms(50); // Delay selama 50 ms
lcd_clear(); // Membersihkan /reset LCD
PORTD= pin[i]; // Menjalankan motor sesuai biner
}
}
void keypad()
{
PORTE=0b1111011; // PORTE sebagai keypad
delay_ms(1); // Delay selama 1 ms
if (PINE.4 == 0) // Jika PINE.4 ditekan dengan aktif low
{
lcd_gotoxy(1,0); // Posisi kata yang tampil pada LCD
lcd_putsf("Anda Tekan 1"); // Menulis kata pada LCD
putar(); // Memanggil fungsi putar
}
}
void main(void) // Fungsi utama dalam program
{
PORTD=0x00; // PORTD dengan kondisi awal aktif low
DDRD=0xff; // PORTD ditetapkan sebagai ouput
PORTF=0x00; // PORTF dengan kondisi awal aktif low
DDRF=0x00; // PORTF ditetapkan sebagai input
PORTE=0xff; // PORTE dengan kondisi awal aktif high
DDRE=0x0f; // PORTE ditetapkan sebagai input dan output
lcd_init(16); // Inisialisasi tipe LCD yang digunakan
while(1) // Looping dalam program
{
keypad(); // Fungsi keypad
if (PINB.0 == 1) // Jika PINF.0 aktif high saat ditekan
{
putar(); // Memanggil fungsi putar
}
}
}
4. Video [kembali]
Motor DC dengan Arduino
20.18
1. Rangkaian Simulasi [kembali]
Prinsip kerja rangkaian :
Rangkaian terdiri dari 3 switch SPDT, IC L293D, motor DC dan
LCD dengan menggunakan mikrokontroller Arduin Mega 2560 dimana switch SPDT
terhubung ke pin digital (16, 17, 18), untuk IC L293D terhubung ke pin digital
(4, 5, 6, 7) dan LCD terhubung ke pin digital (31, 33, 35, 37, 39, 41). Pertama
untuk menjalankan simulasi klik tombol PLAY, kemudian untuk memulai operasi,
maka ditekan tombol RESET. Setelah itu apabila switch satu ( SW 0) berkondisi
HIGH dan dua switch lainnya berkondisi LOW, maka putaran motor akan lambat dan
LCD menampilkan tulisan “motor pelan”, apabila switch dua ( SW 1) berkondisi
HIGH dan dua switch lainnya berkondisi LOW, maka putaran motor akan sedang dan
LCD menampilkan tulisan “motor sedang”, apabila switch tiga ( SW 2) berkondisi
HIGH dan dua switch lainnya berkondisi LOW, maka putaran motor akan cepat dan
LCD menampilkan tulisan “motor cepat”, apabila seluruh switch berkondisi LOW,
maka motor tidak berputar dan LCD menampilkan tulisan “motor mati” dan apabila
keadaan switch berbeda dari keadaan yang ada sebelumnya, maka motor akan mati
dan LCD menampilkan tulisan “tidak ada kondisi”.
2. Flowchart [kembali]3. Listing Program [kembali]
#include
<LiquidCrystal.h> //library
untuk LCD
LiquidCrystal lcd (41,39,37,35,33,31); // menunjukkan pin yang dihubungkan
pada di LCD
int m1 = 7; //pin
m1 pada L293 dihubungkan ke pin 14 pada Arduino
int m2 = 6; //pin
m2 pada L293 dihubungkan ke pin 15 pada Arduino
int m3 = 5; //pin
m3 pada L293 dihubungkan ke pin 16 pada Arduino
int m4 = 4; //pin
m4 pada L293 dihubungkan ke pin 17 pada Arduino
const int s1 = 16; // switch 1 dihubungkan ke pin 19
pada Arduino
const int s2 = 17;
// switch 2 dihubungkan ke pin 20
pada Arduino
const int s3 = 18; // switch 3 dihubungkan ke pin 21
pada Arduino
void setup() // Settingan kondisi yang akan digunakan
{
pinMode(m1,OUTPUT); //
menjelaskan bahwa pin m1 sebagai output
pinMode(m2,OUTPUT); //
menjelaskan bahwa pin m2 sebagai output
pinMode(m3,OUTPUT); //
menjelaskan bahwa pin m3 sebagai output
pinMode(m4,OUTPUT); //
menjelaskan bahwa pin m4 sebagai output
pinMode(s1, INPUT); // menjelaskan switch 1 sebagai
input
pinMode(s2, INPUT); // menjelaskan switch 2 sebagai
input
pinMode(s3, INPUT); // menjelaskan switch 3 sebagai
input
digitalWrite(s1, HIGH); //
menjelaskan kondisi awal dari switch 1 berlogika high
digitalWrite(s2, HIGH); //
menjelaskan kondisi awal dari switch 2 berlogika high
digitalWrite(s3, HIGH); //
menjelaskan kondisi awal dari switch 3 berlogika high
lcd.begin(16,2);
}
void
loop() //
Perulangan dari semua kondisi yang ditetapkan
{
int switch1 = digitalRead (s1); // tetapkan switch 1
sebagai input dengan pembacaan digital
int switch2 = digitalRead (s2); // tetapkan switch 1
sebagai input dengan pembacaan digital
int switch3 = digitalRead (s3); // tetapkan switch 1
sebagai input dengan pembacaan digital
if (switch1 == LOW && switch2 == LOW
&& switch3 == LOW)
{
lcd.setCursor (0,0); // posisi kursor lcd
lcd.print ("Motor Mati"); // cetak LCD
lcd.clear(); //
reset LCD
digitalWrite (m1,LOW); // m1 kondisi mati
digitalWrite (m2,LOW); // m1 kondisi mati
digitalWrite (m3,LOW); // m1 kondisi mati
digitalWrite (m4,LOW); // m1 kondisi mati
}
else if (switch1 == HIGH && switch2 ==
LOW && switch3 == LOW)
{
lcd.setCursor (0,0); // posisi kursor lcd
lcd.print ("Motor Pelan"); // cetak pada lcd
lcd.clear(); //
reset LCD
delay(1); //
delay selama 1 ms
analogWrite (m1,80); // m1
kondisi dengan nilai analog 50 dari 255
analogWrite (m2,0); // m2 kondisi mati
analogWrite (m3,80); // m3 kondisi dengan nilai analog 50 dari 255
analogWrite (m4,0); // m4 kondisi mati
}
else if (switch1 == LOW && switch2 ==
HIGH && switch3 == LOW)
{
lcd.setCursor (0,0); // posisi lcd
lcd.print ("Motor Sedang"); // cetak tulisan pada LCD
lcd.clear(); //
reset lcd
delay(1); //
delay selama 1 ms
analogWrite (m1,150); // m1 kondisi dengan nilai analog 150 dari 255
analogWrite (m2,0); // m2 kondisi mati
analogWrite (m3,150); // m3 kondisi dengan nilai analog 150 dari 255
analogWrite (m4,0); // m4 kondisi mati
}
else if (switch1 == LOW && switch2 ==
LOW && switch3 == HIGH)
{
lcd.setCursor (0,0); // posisi lcd
lcd.print ("Motor Cepat"); // cetak tulisan pada lcd
lcd.clear(); //
reset lcd
delay(1); //
delay selama 1 ms
analogWrite (m1,255); // m1 kndisi dengan nilai 200 dari 255
analogWrite (m2,0); // m2 kondisi mati
analogWrite (m3,255); // m3 kondisi denga nilai 200 dari 255
analogWrite (m4,0); // m4 kondisi mati
}
else
{
lcd.setCursor (0,0); // posisi lcd
lcd.print ("Tidak Ada Kondisi !!"); // cetak tulisan pada lcd
lcd.clear(); //
reset lcd
analogWrite (m1,0); // m1 kondisi mati
analogWrite (m2,0); // m2 kondisi mati
analogWrite (m3,0); // m3 kondisi mati
analogWrite (m4,0); } } // m4 kondisi mati
4. Video [kembali]Motor DC
20.15
Mikrokontroller AT MEGA 128 dan Mikrokontroller
PIC16F877A.
a. Mikrokontroller Arduino dan Bascom AVR
b. Motor DC
Pengertian Motor DC dan Prinsip Kerjanya – Motor Listrik DC atau DC Motor adalah suatu perangkat yang mengubah energi listrik menjadi energi kinetik atau gerakan (motion). Motor DC ini juga dapat disebut sebagai Motor Arus Searah. Seperti namanya, DC Motor memiliki dua terminal dan memerlukan tegangan arus searah atau DC (Direct Current) untuk dapat menggerakannya. Motor Listrik DC ini biasanya digunakan pada perangkat-perangkat Elektronik dan listrik yang menggunakan sumber listrik DC seperti Vibrator Ponsel, Kipas DC dan Bor Listrik DC.
Motor Listrik DC atau DC Motor ini menghasilkan sejumlah putaran per menit atau biasanya dikenal dengan istilah RPM (Revolutions per minute) dan dapat dibuat berputar searah jarum jam maupun berlawanan arah jarum jam apabila polaritas listrik yang diberikan pada Motor DC tersebut dibalikan. Motor Listrik DC tersedia dalam berbagai ukuran rpm dan bentuk. Kebanyakan Motor Listrik DC memberikan kecepatan rotasi sekitar 3000 rpm hingga 8000 rpm dengan tegangan operasional dari 1,5V hingga 24V. Apabile tegangan yang diberikan ke Motor Listrik DC lebih rendah dari tegangan operasionalnya maka akan dapat memperlambat rotasi motor DC tersebut sedangkan tegangan yang lebih tinggi dari tegangan operasional akan membuat rotasi motor DC menjadi lebih cepat. Namun ketika tegangan yang diberikan ke Motor DC tersebut turun menjadi dibawah 50% dari tegangan operasional yang ditentukan maka Motor DC tersebut tidak dapat berputar atau terhenti. Sebaliknya, jika tegangan yang diberikan ke Motor DC tersebut lebih tinggi sekitar 30% dari tegangan operasional yang ditentukan, maka motor DC tersebut akan menjadi sangat panas dan akhirnya akan menjadi rusak.
Prinsip Kerja Motor DC
Terdapat dua bagian utama pada sebuah Motor Listrik DC, yaitu Stator dan Rotor. Stator adalah bagian motor yang tidak berputar, bagian yang statis ini terdiri dari rangka dan kumparan medan. Sedangkan Rotor adalah bagian yang berputar, bagian Rotor ini terdiri dari kumparan Jangkar. Dua bagian utama ini dapat dibagi lagi menjadi beberapa komponen penting yaitu diantaranya adalah Yoke (kerangka magnet), Poles (kutub motor), Field winding (kumparan medan magnet), Armature Winding (Kumparan Jangkar), Commutator (Komutator) dan Brushes (kuas/sikat arang).Pada prinsipnya motor listrik DC menggunakan fenomena elektromagnet untuk bergerak, ketika arus listrik diberikan ke kumparan, permukaan kumparan yang bersifat utara akan bergerak menghadap ke magnet yang berkutub selatan dan kumparan yang bersifat selatan akan bergerak menghadap ke utara magnet. Saat ini, karena kutub utara kumparan bertemu dengan kutub selatan magnet ataupun kutub selatan kumparan bertemu dengan kutub utara magnet maka akan terjadi saling tarik menarik yang menyebabkan pergerakan kumparan berhenti.
Dot Matrik Bascom
20.431. Rangkaian Simulasi [kembali]
2. Flowchart [kembali]
3. Listing Program [kembali]
$regfile = "m8535.dat" 'memanggil library ATmega 8535
$crystal = 16000000 'menentukan kecepatan crystal
Config Portc = Output 'PORTC sebagai output
Config Porta = Output 'PORTA sebagai output
Ddrb = &B0000 'PORTD sebagai input
Do 'fungsi utama
If Pinb.0 = 1 Then 'pemilihan kondisi pada PORTB
Portc = &B0000000 'PORTC mati
Porta = &B00001 'keluaran pada PORTA
Waitms 0.1 'delay 0.1 ms
Portc = &B0110110 'keluaran pada PORTC
Porta = &B00010 'keluaran pada PORTA
Waitms 0.1 'delay 0.1 ms
Portc = &B0110110 'keluaran pada PORTC
Porta = &B00100 'keluaran pada PORTA
Waitms 0.1 'delay 0.1 ms
Portc = &B0110110 'keluaran pada PORTC
Porta = &B01000 'keluaran pada PORTA
Waitms 0.1 'delay 0.1 ms
Portc = &B0110110 'keluaran pada PORTC
Porta = &B10000 'keluaran pada PORTA
Waitms 0.1 'delay 0.1 ms
Elseif Pinb.1 = 1 Then 'pemilihan kondisi pada PORTB
Portc = &B0111111 'keluaran pada PORTC
Porta = &B10000 'keluaran pada PORTA
Waitms 0.1 'delay 0.1 ms
Portc = &B0000000 'keluaran pada PORTC
Porta = &B00001 'keluaran pada PORTA
Waitms 0.1 'delay 0.1 ms
Portc = &B0111111 'keluaran pada PORTC
Porta = &B00010 'keluaran pada PORTA
Waitms 0.1 'delay 0.1 ms
Portc = &B0111111 'keluaran pada PORTC
Porta = &B00100 'keluaran pada PORTA
Waitms 0.1 'delay 0.1 ms
Portc = &B0111111 'keluaran pada PORTC
Porta = &B01000 'keluaran pada PORTA
Waitms 0.1 'delay 0.1 ms
Portc = &B0111111 'keluaran pada PORTC
Porta = &B10000 'keluaran pada PORTA
Waitms 0.1 'delay 0.1 ms
Elseif Pinb.2 = 1 Then 'pemilihan kondisi pada PORTB
Portc = &B0000000 'keluaran pada PORTC
Porta = &B00001 'keluaran pada PORTA
Waitms 0.1 'delay 0.1 ms
Waitms 0.1
Portc = &B0111110 'keluaran pada PORTC
Porta = &B00010 'keluaran pada PORTA
Waitms 0.1 'delay 0.1 ms
Portc = &B0111110 'keluaran pada PORTC
Porta = &B01000 'keluaran pada PORTA
Waitms 0.1 'delay 0.1 ms
Portc = &B0111110 'keluaran pada PORTC
Porta = &B00100 'keluaran pada PORTA
Waitms 0.1 'delay 0.1 ms
Portc = &B0000000 'keluaran pada PORTC
Porta = &B00001 'keluaran pada PORTA
Waitms 0.1 'delay 0.1 ms
Portc = &B0000000 'keluaran pada PORTC
Porta = &B10000 'keluaran pada PORTA
Waitms 0.1 'delay 0.1 ms
Elseif Pinb.3 = 1 Then 'pemilihan kondisi pada PORTB
Portc = &B0000000 'keluaran pada PORTC
Porta = &B00001 'keluaran pada PORTA
Else
Portc = &B0000000 'keluaran pada PORTC
Porta = &B00000 'keluaran pada PORTA
End If 'pemilihan kndisi selesai
Loop 'fungsi utama
End 'program selesa
4. Video [kembali]
Link download HTML Download here
Link download video simulasi Download here
Link download rangkaian simulasi Download here
Link download listing program Download here
Link download video simulasi Download here
Link download rangkaian simulasi Download here
Link download listing program Download here