Hello sahabat Anak Kendali.
pada kesemaptan kali ini saya akan menulis artikel tentang Atmega16/32, Cara Mengakses Driver Motor BTS7960 CVAVR.
selain dengan CVAVR, saya juga sudah menulis Artikel tentang Driver BTS7960 dengan Arduino, silahkan baca Artikel nya Arduino, Cara Mengakses Driver BTS7960
tidak perlu dijelaskan panjang lebar, karena saya sudah menjelaskan sedikit pada artikel Arduino, Cara Mengakses Driver BTS7960
Keyword :
Cara Mengakses Motor DC CVAVR
Cara Mengakses Motor Driver BTS7960 CVAVR
Cara Mengakses Motor Driver BTN7971 CVAVR
Cara Mengakses PWM Motor DC CVAVR
Program Driver Motor BTS7960 CVAVR
Program PWM CVAVR
Contoh Program PWM CVAVR
Contoh program PWM Codevision AVR
project CVAVR nya bisa di download pada link berikut | DOWNLOAD
program utama nya yaitu program PWM, pada CAVR terdapat register OCR yang menghasilkan nilai pwm, contoh syntak nya seperti berikut :
OCR1A = 255;
OCR1B = 0;
255 karena saya menggunakan resolusi 8bit, kamu bisa gunakan resolusi 10bit atau 16bit. dengan mengatur di codewizard nya.
berikut adalah program yang saya buat dengan menggunakan CVAVR.
/*****************************************************
This program was produced by the
CodeWizardAVR V2.05.3 Standard
Automatic Program Generator
© Copyright 1998-2011 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com
Project :
Version :
Date : 11/10/2018
Author : Chaerul Anam
Company : Unisi Robotik
Comments:Chip type : ATmega32
Program type : Application
AVR Core Clock frequency: 16.000000 MHz
Memory model : Small
External RAM size : 0
Data Stack size : 512
*****************************************************/
#include <mega32.h>
#include <delay.h>
// Declare your global variables here
void motor (int spd)
{
if (spd >=0){
OCR1A = spd;
OCR1B = 0;
}
else if (spd <0){
OCR1A = 0;
OCR1B = -spd;
}
}
void main(void)
{
// Declare your local variables here
// Input/Output Ports initialization
// Port A initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTA=0x00;
DDRA=0x00;
// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTB=0x00;
DDRB=0x00;
// Port C initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTC=0x00;
DDRC=0x00;
// Port D initialization
// Func7=In Func6=In Func5=Out Func4=Out Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=0 State4=0 State3=T State2=T State1=T State0=T
PORTD=0x70;
DDRD=0x70;
// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
// Mode: Normal top=0xFF
// OC0 output: Disconnected
TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;
// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: 16000.000 kHz
// Mode: Fast PWM top=0x00FF
// OC1A output: Non-Inv.
// OC1B output: Non-Inv.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0xA1;
TCCR1B=0x09;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;
// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer2 Stopped
// Mode: Normal top=0xFF
// OC2 output: Disconnected
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;
// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
// INT2: Off
MCUCR=0x00;
MCUCSR=0x00;
// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;
// USART initialization
// USART disabled
UCSRB=0x00;
// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;
// ADC initialization
// ADC disabled
ADCSRA=0x00;
// SPI initialization
// SPI disabled
SPCR=0x00;
// TWI initialization
// TWI disabled
TWCR=0x00;
while (1)
{
// Place your code here
motor(100);
delay_ms(1000);
motor(-100);
delay_ms(1000);
motor(255);
delay_ms(1000);
motor(-255);
delay_ms(1000);
motor(0);
delay_ms(1000);
}
}
mungkin culup sekian tutorial kali ini, semoga bermanfaat, silahkan bagikan link artikel nya dan jangan lupa untuk berlangganan dengan www.anakkendali.com melalui email, submit email kamu di bawah ini.
jika ada pertanyaan silahkan berkomentar di bawah.