PIC 16F877A
Interface Motor Stepper
1. Tujuan [Kembali]
Mempelajari rangkaian yang menggunakan
mikrokontroler dengan Motor Stepper dan programnya.
2. Alat [Kembali]
2.1 Mikrokontroler PIC16F877A.
2.2 Motor Stepper
2.3 Baterai
2.4 Driver Motor Stepper ULN2003A
3. Teori [Kembali]
3.1. Pengertian Mikrokontroler PIC 16F877A
PIC adalah mikrokontroler dari Microchip Technology, dimana Peripheral Interface Controller memiliki arsitektur Harvard dan merupakan jenis RISC (Reduced Instruction Set Computing).
3.1.1 Fitur-Fitur PIC16F877A.
1. Memiliki Instruksi sebanyak 35 buah.
2. Masing-masing instruksi dieksekusi dalam satu siklus mesin kecuali untuk instruksi percabangan yaitu dua siklus.
3. Kecepatan operasi masukan clock dari DC hingga 20MHz.
4. Kapasitas memori program berukuran 8k x 14 words.
5. Kapasitas RAM 268 byte.
6. Kapasitas memory EEPROM berukuran 256 byte.
2. Masing-masing instruksi dieksekusi dalam satu siklus mesin kecuali untuk instruksi percabangan yaitu dua siklus.
3. Kecepatan operasi masukan clock dari DC hingga 20MHz.
4. Kapasitas memori program berukuran 8k x 14 words.
5. Kapasitas RAM 268 byte.
6. Kapasitas memory EEPROM berukuran 256 byte.
3.1.2 Pin Out PIC16F877A.
-Memiliki 5 PORT I/O (PORTA 6 pin, PORTB 8 pin, PORTC 8 pin, PORTD 8 pin, PORTE 3 pin).
-Memiliki 3 buat timer
-Memiliki 2 buah keluaran PWM.
-Komunikasi serial singkron menggunakan SPI dan I2C.
-Komunikasi USART.
-Memiliki 3 buat timer
-Memiliki 2 buah keluaran PWM.
-Komunikasi serial singkron menggunakan SPI dan I2C.
-Komunikasi USART.
3.1.3 Pemograman PIC16F877A.
3.1.4 Rangkaian Dasar Sistem Mikrokontroler PIC16F877A.
Rangkaian crystal sebagai clock atau oscilator
eksternal sebagai jantung untuk memberikan kecepatan eksekusi dari
mikrokontroler tersebut.
3.2. Pengertian Motor Stepper
(Motor stepper )mengubah pulsa-pulsa listrik yang diberikan menjadi
gerakan-gerakan diskrit rotor yang disebut langkah (steps). Nilai rating
dari suatu motor stepper diberikan dalam langkah per putaran (steps per
revolution). Motor stepper umumnya mempunyai kecepatan dan [torsi] yang
rendah.
Motor stepper bekerja berdasarkan pulsa-pulsa yang diberikan pada
lilitan fasenya dalam urut-urutan yang tepat. Selain itu, pulsa-pulsa
itu harus juga menyediakan arus yang cukup besar pada lilitan fase
tersebut. Karena itu untuk pengoperasian motor stepper pertama-tama
harus mendesain suatu sequencer logic untuk menentukan urutan pencatuan
lilitan fase motor dan kemudian menggunkan suatu penggerak (driver)
untuk menyediakan arus yang dibutuhkan oleh lilitan fase
3.3. Pengertian Driver Motor ULN2003A
IC ULN2003A merupakan salah satu driver motor yang sering digunakan. Di
dalam IC ULN2003A terdapat 7 buah rangkaian transistor darlington yang
membentuk logika kerja seperti gerbang logika NOT (inverter/pembalik
kondisi). Sehingga dalam penggunaannya akan lebih mudah mengingat bahwa
IC ULN2003A itu berisi gerbang NOT dari pada mengingat bahwa IC ULN2003A
itu berisi rangkaian transistor darlington. Untuk lebih memahaminya,
mari melihat gambar konfigurasi pin IC ULN2003A pada gambar berikut.
Dengan melihat gambar, dapat diketahui bahwa dengan memberikan logika low (tegangan 0 volt) pada kaki In1 maka akan menghasilkan kondisi keluaran (output) pada kaki Out1 berlogika high (tegangan ±5 volt). Demikian juga sebaliknya, dengan memberikan logika high (tegangan ±5 volt) pada kaki In1 maka akan menghasilkan kondisi keluaran (output) pada kaki Out1 berlogika low (tegangan 0 volt).
Dengan melihat gambar, dapat diketahui bahwa dengan memberikan logika low (tegangan 0 volt) pada kaki In1 maka akan menghasilkan kondisi keluaran (output) pada kaki Out1 berlogika high (tegangan ±5 volt). Demikian juga sebaliknya, dengan memberikan logika high (tegangan ±5 volt) pada kaki In1 maka akan menghasilkan kondisi keluaran (output) pada kaki Out1 berlogika low (tegangan 0 volt).
4. Rangkaian [Kembali]
5. Program [Kembali]
void main()
{
TRISD = 0b0000000; // PORT D Output
PORTD = 0b1111111; // nilai awal PORTD high
do
{
PORTD = 0b00000011; // Menggerakkan motor stepper Full Wave mode dual phasa
Delay_ms(200); // delay
PORTD = 0b00000110;
Delay_ms(200);
PORTD = 0b00001100;
Delay_ms(200);
PORTD = 0b00001001;
Delay_ms(200);
}while(1); // looping
}
{
TRISD = 0b0000000; // PORT D Output
PORTD = 0b1111111; // nilai awal PORTD high
do
{
PORTD = 0b00000011; // Menggerakkan motor stepper Full Wave mode dual phasa
Delay_ms(200); // delay
PORTD = 0b00000110;
Delay_ms(200);
PORTD = 0b00001100;
Delay_ms(200);
PORTD = 0b00001001;
Delay_ms(200);
}while(1); // looping
}
Tidak ada komentar:
Posting Komentar