LAPORAN PRAKTIKUM II
ANTARMUKA MOTOR STEPPER DENGAN MIKROKONTROLER
ATmega8535
Untuk memenuhi Tugas Mata Kuliah Sistem Mikrokontroler Lanjut
Yang di bimbing oleh Ibu Dyah Lestari, S. T., M.Eng.
Oleh :
Alvina Rizky
190532547220
D3 ELKA ’19 OFF A
TUJUAN
MOTOR STEPPER
C. Rangkaian Pengendali Motor Stepper dengan L293D
+5V
16 8 U1
2 3
PORTC.0 7
IN1 VSS VS OUT1
6
PORTC.1 1
IN2 OUT2
EN1
+88.8
9
EN2
10 11
PORTC.2 15
IN3 OUT3
14
PORTC.3 IN4 GND GND OUT4
L293D
1 set PC/Laptop yang sudah berisi program Code Vision dan Khazama
1 set modul praktikum mikrokontroler
1 buah modul driver motor stepper
1 buah motor stepper
PROSEDUR
1. Rangkailah peralatan yang diperlukan seperti dalam Gambar 3.3. Hubungkan kabel
data modul driver motor pada PORTD minimum system. Hubungkan terminal OUTA,
OUTB, OUTC, dan OUTD pada modul driver motor ke kaki A, B, C dan D pada motor
stepper. Hubungkan catu daya +5V dan GND di modul trainer ke terminal VCC dan
GND modul driver motor.
Catu Daya
+5V
Kabel
Kabel USB
downloader Minimum
ISP Downloader Driver Motor Motor stepper
system AVR
// Port A initialization
PORTA=0xFF;
DDRA=0x00;
// Port C initialization
PORTC=0x00;
DDRC=0xFF;
5. Buat program untuk memutar motor stepper ke arah dan sudut tertentu dengan
mengaktifkan saklar toggle.
5
Saklar 0 : motor stepper berputar full step CW 30
Saklar 1 : motor stepper berputar full step CCW 30
Saklar 2 : motor stepper berputar full step CW 90
Saklar 3 : motor stepper berputar full step CCW 270
Saklar 4 : motor stepper berputar half step CW 30
Saklar 5 : motor stepper berputar half step CCW 30
Saklar 6 : motor stepper berputar half step CW 180
Saklar 7 : motor stepper berputar half step CCW 360
void FullCW(){
PORTA=0b0001; delay_ms(50);
PORTA=0b0010; delay_ms(50);
PORTA=0b0100; delay_ms(50);
PORTA=0b1000; delay_ms(50);
}
void FullCCW(){
PORTA=0b0001; delay_ms(50);
PORTA=0b0010; delay_ms(50);
PORTA=0b0100; delay_ms(50);
PORTA=0b1000; delay_ms(50);
}
void HalfCW(){
PORTA=0b0011; delay_ms(50);
PORTA=0b0110; delay_ms(50);
PORTA=0b1100; delay_ms(50);
PORTA=0b1001; delay_ms(50);
}
void HalfCCW(){
PORTA=0b1001; delay_ms(50);
PORTA=0b1100; delay_ms(50);
PORTA=0b0110; delay_ms(50);
PORTA=0b0011; delay_ms(50);
}
void main(void)
{
DDRC=0x00;
PORTC=0xFF;
6
DDRA=0xFF;
PORTA=0x00;
while (1){
if (PINC.0==1){
FullCW();
}
if (PINC.0==1){
FullCCW();
}
if (PINC.1==1){
FullCCW();
}
if (PINC.2==1){
for (i=1;i<=3;i++){
FullCW();
}
}
if (PINC.3==1){
for (i=1;i<=9;i++){
FullCW();
}
}
if (PINC.4==1){
HalfCW();
}
if (PINC.5==1){
HalfCW();
}
if (PINC.6==1){
for (i=1;i<=6;i++){
HalfCW();
}
}
if (PINC.7==1){
for (i=1;i<=12;i++){
HalfCW();
}
}
7
break;
}
}
2.
Tabel 3.3 Hasil percobaan
Toggle switch yang Sudut yang
No Sudut terukur
diaktifkan diinginkan
1 Switch 0 30 270
2 Switch 1 30 270
3 Switch 2 90 270
4 Switch 3 270 270
5 Switch 4 30 315
6 Switch 5 30 315
7 Switch 6 180 315
8 Switch 7 360 -315
Switch 0
Switch 1
8
Switch 2
Switch 3
Switch 4
9
Switch 5
Switch 6
Switch 7
10
ANALISIS DATA