menuju akhir
a. Mempelajari aplikasi output pada mikrokontroller PIC 16F877A
b. Mempelajari aplikasi input pada mikrokontroller PIC 16F877A
c. Mempelajari aplikasi I/O pada mikrokontroller PIC 16F877A
a. Module PIC 16F877A
b. Motor DC
> Dasar Teori Mikrokontroler
Mikrokontroler
PIC16F877A merupakan salah satu mikrokontroler dari keluarga PICmicro
yang popular digunakan sekarang ini, mulai dari pemula hingga para
profesional. Hal tersebut karena PIC16F877A sangat praktis dan
menggunakan teknologi FLASH memori sehingga dapat di program-hapus
hingga seribu kali. Keunggulan mikrokontroler jenis RISC ini dibanding
dengan mikrokontroler 8-bit lain dikelasnya terutama terletak pada
kecepatan dan kompresi kodenya. Selain itu, PIC116F877A juga tergolong
praktis dan ringkas karena memiliki kemasan 40 pin dengan 33 jalur I/O.
Anggota
keluarga PICmicro buatan Microchip Inc. cukup banyak. Ada yang
menggunakan FLASH memori dan ada pula yang jenis OTP (One Time
Programmable). Mikrontroler dari keluarga PICmicro yang popular, antara
lain PIC2C08, PIC16C54, PIC16F84. Agar lebih mengenal PIC16F877A,
berikut ini diberikan fitur-fitur penting yang terdapat pada PIC16F877A.
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnTcbNc9YZf4JFusk26xFr69Mg78u6pWVQcyJ0mF5Yhnr-4bTco5KcNRk3sZpmsTfgJy5CjRqgQa_v6Lh34ExojvNz_LWDpME1MlQ0kUroT7Ddmbk2xRb_ZqfDueIr7jGgsA-wwa7vD3s/s1600/pic1.jpg)
MIkrokontroller PIC16F877A
fitur fitur PIC RISC CPU yang mempunyai performance tinggi
- Hanya 35 jenis instruksi yang perlu dipelajari
- Semua instrujsi mempunyai siklus tunggal kecuali untuk instruksi percabangan.
- Kecepatan Instruksi: DC – 20 MHz clock input DC – 200 ns instruction cycle
- 8K x 14 words of FLASH Program Memory, 368 x 8 bytes of Data Memory (RAM) , 256 x 8 bytes of EEPROM Data Memory
- Pinout compatible dengan PIC16C73B/74B/76/77
- Interrupt (14 sumber interrupt)
- Delapan level hardware stack
- Direct, indirect dan relative addressing modes
- Power-on Reset (POR)
- Power-up Timer (PWRT) dan Oscillator Start-up Timer (OST)
- Watchdog Timer (WDT) dengan on-chip RC oscillator
- Programmable code protection dan Fully static design
- Power saving SLEEP mode
- Selectable oscillator options
- Low power, high speed CMOS FLASH/EEPROM technology
- In-Circuit Serial Programming (ICSP) hanya dengan dua pin
- Single 5V In-Circuit Serial Programming capability
- Processor read/write access to program memory
- Wide operating voltage range: 2.0V to 5.5V
- High Sink/Source Current: 25 mA
- Commercial, Industrial and Extended temperature ranges
Deskripsi pin pin
Mikrokontroler
PIC16F877A di produksi dalam kemasan 40 pin PDIP (Plastik Dual In Line)
maupun 40 pin SO (Small Outline). Namun yang banyak terdapat dipasaran
adalah kemasan PDIP. Pin-pin untuk I/O sebanyak 33 pin, yang terdiri
atas 6 pada Port A, 8 pada Port B, 8 pada Port C, 8 pada Port D, 3 pada
Port E. Ada pula beberapa Pin pada mikrokontroler yang memiliki fungsi
ganda.
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiK9pA8EUk03tNQIww34W2W_myFY9spMqkRbzUO25k7R9wi70fknK56MyqlGFGL-5zMv5E6L4nMbWXrlfNiRUMSTXTjOAMk3GzmxfEFDemHakQ82753sHWcQpzktCqagoO0P81jkkm_ZR0/s320/pic.jpg)
Organisasi Memori
Memori
pada PIC16F877A dapat dipisahkan menjadi dua blok memori, satu untuk
memori program dan satu untuk memori data. Memori EEPROM dan register
GPR didalam RAM merupakan memori data, sedangkan memori FLASH merupakan
memori program.
KOMPONEN MOTOR STEPPER
Jenis-jenis motor stepper
Pembangkit Clock-Oscilator
Suatu
mikrokontroler tidak akan dapat bekerja jika tidak diberi detak (clock) melalui
suatu osilator. Osilator adalah rangkaian yang akan memberikan pulsa pada
mikrokontroler dan berguna untuk mensinkronkan sistem dalam mikrokontroler
tersebut. Untuk mengaktifkan sumber clock ini cukup dengan menambahkan
rangkaian pasif saja seperti resistor dan kapasitor (RC Oscilator), kristal
atau keramik resonator. Salah satu keistimewaan mikrokontroler PIC16F84 adalah
terdapatnya 4 pilihan penggunaan osilator. Untuk pemakaian yang tidak
memerlukan pewaktu kritis, bahkan dapat menggunakan sepasang resistor dan
kapasitor saja sebagai osilator.
Nilai kristal yang dapat dipakai maksimum adalah 4 MHz atau 10 MHz, hal ini karena mikrokontroler PIC16F84 dibuat dalam 2 versi frekuensi kerja. Untuk menentukan frekuensi maksimumnya dapat dilihat pada badan mikrokontroler. Jika terdapat tulisan PIC16F84-04/P berarti frekuensi maksimum yang diijinkan adalah 4 MHz.
Nilai kristal yang dapat dipakai maksimum adalah 4 MHz atau 10 MHz, hal ini karena mikrokontroler PIC16F84 dibuat dalam 2 versi frekuensi kerja. Untuk menentukan frekuensi maksimumnya dapat dilihat pada badan mikrokontroler. Jika terdapat tulisan PIC16F84-04/P berarti frekuensi maksimum yang diijinkan adalah 4 MHz.
KOMPONEN MOTOR STEPPER
Motor stepper adalah
perangkat elektromekanis yang bekerja dengan mengubah pulsa elektronis menjadi
gerakan mekanis diskrit. Motor stepper bergerak berdasarkan urutan pulsa yang
diberikan kepada motor. Karena itu, untuk menggerakkannya diperlukan pengendali
motor stepper yang membangkitkan pulsa-pulsa periodik. Penggunaan motor stepper
memiliki beberapa keunggulan dibandingkan dengan penggunaan motor DC biasa.
Keunggulannya antara lain adalah :
1.
Sudut rotasi motor proporsional dengan pulsa masukan sehingga
lebih mudah diatur.
2.
Motor dapat langsung memberikan torsi penuh pada saat mulai
bergerak
3.
Posisi dan pergerakan repetisinya dapat ditentukan secara
presisi
4.
Memiliki respon yang sangat baik terhadap mulai, stop dan
berbalik (perputaran)
5. Sangat realibel karena tidak adanya sikat yang bersentuhan
dengan rotor seperti pada motor DC
6.
Dapat menghasilkan perputaran yang lambat sehingga beban dapat
dikopel langsung ke porosnya
7.
Frekuensi perputaran dapat ditentukan secara bebas dan mudah
pada range yang luas.
Jenis-jenis motor stepper
Berdasarkan struktur
rotor dan stator pada motor stepper, maka motor stepper dapat dikategorikan
dalam 3 jenis sebagai berikut :
a. 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. Berikut ini adalah penampang
melintang dari motor stepper tipe variable reluctance (VR):
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJLk3Z1vSe9UK60tzMjgg74fPHCnVT7IOqxZTxwn-HNIdEe_MFBh-y3d1lhIbq3Nr99DL3gNqsDXsmqk7YfqO9-VoG4pZfXSi8XSJiAo-vxcX2XDxezMSWiINafoIWqBcRDLzMs-A6pf6L/s1600/G1.png)
b. 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 putarannya. Berikut ini adalah ilustrasi sederhana dari motor stepper tipe permanent magnet :
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 putarannya. Berikut ini adalah ilustrasi sederhana dari motor stepper tipe permanent magnet :
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGVlkNtNovWwPI5CXi14h4_NuijW7zhe43EHua5yUdbTszvLQ9ahMxDeSepq2-bae4dncapdFAJCt6zrk0RAPwRsIFUO1YhkGspiOwqb9hMJXg5Xv1sppjRqZGuDWifeHqx9hypggaFXHV/s1600/G2.png)
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEguyMepan8IBsDQUp2y36fo-513CRq8D10-GEAav0unbzsygbb3WNSzPoFCesgB0uMIFq33fr4OUJO2QHSHDK_IXILwbO0eGPWE541Gg6WiJ9SV0fuAzlzugeLnmCcPgreg9BD5tsXyZLQa/s1600/G3.png)
c. Motor 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 putarannya. Berikut ini adalah penampang melintang dari motor stepper tipe hibrid :
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 putarannya. Berikut ini adalah penampang melintang dari motor stepper tipe hibrid :
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjmvy-YRdxFnZ-rwDGt9LcDKOKgfS9XWTkV8xgc0G_2vho0BvExx1NLjeQqL09a1sW1yIn4TEXvCgXsqaJu1e8E_77Nvc0C6jLH5cILV0PsZRqCJN42a2UPOoaM83bDLJWIGcgs00JCr_u4/s1600/G4.png)
Berdasarkan metode
perancangan rangkain pengendalinya, motor stepper dapat dibagi menjadi 2 jenis
yaitu motor stepper unipolar dan motor stepper bipolar.
a. Motor Stepper Unipolar
a. Motor Stepper Unipolar
Rangkaian pengendali motor stepper unipolar lebih mudah dirancang karena
hanya memerlukan satu switch / transistor setiap lilitannya. Untuk menjalankan
dan menghentikan motor ini cukup dengan menerapkan pulsa digital yang hanya
terdiri atas tegangan positif dan nol (ground) pada salah satu terminal lilitan
(wound) motor sementara terminal lainnya dicatu dengan tegangan positif konstan
(VM) pada bagian tengah (center tap) dari lilitan seperti pada gambar berikut.
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgw0X9jKTYB2DZFfC-zTUdW_RIECdXHF-3bouy4QCsJhs0I5wm3fHrnqtex6odQei3l0-PDtWlAZyeSYEvNzFISIX6lyKVlzlI4XBL5l7PwnIyQeG3M7RsaZnrLX2O9v3p3nruvmvGMiESF/s1600/G5.png)
b. Motor Stepper Bipolar
Untuk motor stepper dengan lilitan bipolar, diperlukan sinyal pulsa yang berubah-ubah dari positif ke negatif dan sebaliknya. Jadi pada setiap terminal lilitan (A & B) harus dihubungkan dengan sinyal yang mengayun dari positif ke negatif dan sebaliknya. Karena itu dibutuhkan rangkaian pengendali yang agak lebih kompleks daripada rangkaian pengendali untuk motor unipolar. Motor stepper bipolar memiliki keunggulan dibandingkan dengan motor stepper unipolar dalam hal torsi yang lebih besar untuk ukuran yang sama.
Untuk motor stepper dengan lilitan bipolar, diperlukan sinyal pulsa yang berubah-ubah dari positif ke negatif dan sebaliknya. Jadi pada setiap terminal lilitan (A & B) harus dihubungkan dengan sinyal yang mengayun dari positif ke negatif dan sebaliknya. Karena itu dibutuhkan rangkaian pengendali yang agak lebih kompleks daripada rangkaian pengendali untuk motor unipolar. Motor stepper bipolar memiliki keunggulan dibandingkan dengan motor stepper unipolar dalam hal torsi yang lebih besar untuk ukuran yang sama.
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicZCi8E4p-H8p4WS_hn_ej2vf0UZn1rHJ1F9woyyQRzqnN3Htamu3jldXI05tP0J5n7Mzz-PIHyXqXNtoSnXFl5pecayf7aYTipxGVE46G7akhyth08ik2zYmESIhaYBAx2XYboFJfKz9W/s400/PIC.jpg)
Mikroprosesor PIC16F877A
4.6 Flowchart[kembali]
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEioSiYMAp334hyOfBVqn0FFa2QKdgDWWg1hgOS1lj8XkinHXMH-Z-GtMZFnJEwT1SQRIF1NEddSRvHqaIPWIrh4qlM9TNxrR2uplOsO9B7RJLOa3KikpLhvz5pRjnY0J4FUl59PgZwutWC3/s1600/flowchart+%25281%2529.png)
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
}
4.8 Video Rangkaian [kembali]
4.9 Link Download [kembali]
simulasi rangkaian klik : https://youtu.be/DGpL13xYb9s
Tidak ada komentar:
Posting Komentar