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

Share this:

ABOUT THE AUTHOR

Sekecil apapun ilmu yang kita punya alangkah indahnya bila bermanfaat bagi sesama :)

0 komentar:

Posting Komentar