Robotika [Program Pengaturan ON/OFF pada timer dengan winAVR dan BasicCompillerAVR (Bascom)]
Sebelum mengetahui kode untuk program on/off pada driver motor, sebaiknya kita mengetahui macam-macam register pada timer. Register pengatur Timer ada 5, berikut beserta fungsi masing-masing:
1 TCCR1A-TCCr1B:memilih mode timer(WGM10 dan WGM11), menentukan keluaran compare match(COM1A1, COM1A0, COM1B1,COM1B1), clock select
2 TCNT1H-TCNT1L (16 BIT)-> h : BIT HIGHT , L : BIT LOW ->menyimpan data cacahan timer, jika mencacah maksimal maka akan kembali ke 0/over flow
3 OCR1A-OCR1B : fungsi menyimpan data pembanding, nilainya dapat disesuaikan sesuai kebutuhan, ketika OCR1=TCNT1 maka akan tejadi compare match(mode TCT, mode PWM)
4 TIMSK : mengaktifkan interupsi
5 TIFR : sebagai indikator
Jenis-jenis timer ada 3, yaitu timer 0,1, dan 2
untuk timer 0,2 berisi 8 bit, sedangkan timer 1 berisi 16 bit
Teknik mengendalikan putaran motor DCMP ada 2 macam, yaitu:
1. Teknik on /off
2. teknik pulse widht modullation(PWM) : fungsinya mengatur kecepatan dengan lebar pulsa
hal yang harus dilakukan :
-menginventarisasi pin mikrokontroller yang digunakan
-pengkodean pada kendali motor dengan BasCom ON/OFF
$regfile = "m32def.dat"
$crystal = 12000000
Config Portd = Output
Arah1 Alias Portc.0
Arah2 Alias Portc.1
Arah3 Alias Portc.2
Arah4 Alias Portc.3
En1 Alias Portd.5
En2 Alias Portd.4
Do
Arah1 = 1
Arah2 = 0
Arah3 = 1
Arah4 = 0
En1 = 1
En2 = 1
Loop
-pengkodean kendali motor dengan winAVR(sekedar informasi pengaturan port dimasukkan ke dalam program utama, berbeda dengan program pada basic compiler karena program tersebut pengaturan port dapat diluar program utama/main program)
#include <avr/io.h>
#include <compat/deprecated.h>
//port C berhubungan dengan input
#define Input_ICL298 PORTC
int main(void)
{
PORTC=0x00;
DDRC=0xFF;
PORTD=0x00;
//pengaturan register sebagai output atau input(DDRD 1/FF = high/output , DDRD 0 = low/input)
DDRD=0xFF;
while(1)
{
Input_ICL298=0b00000101;
sbi(PORTD,5);
sbi(PORTD,4);
}
return(0);
}
prosedur menggunakan timer 1:
1 mengatur nilai bit register TCCR1A dan TCCR1B
2 menentukan nilai awal pencacah TCNT1
3 mengatur nilai OCR1A/OCR1B jika pake compare match
4 mengatur timer TIMSK utk mengaktifkan interupsi
Sekedar informasi sinyal tersebut terdapat 2 jenis:
sinyal non inverting : dimulai dari 1
sinyal inverting : dimulai dari 0
ABOUT THE AUTHOR

Sekecil apapun ilmu yang kita punya alangkah indahnya bila bermanfaat bagi sesama :)
0 komentar:
Posting Komentar