Motor Driver BTS7960 43A (4 / 4 steg)
Steg 4: Arduino Mega Timer
timer 0 (styr stift 13, 4)
Timer 1 (styr stift 12, 11)
timer 2 (styr stift 10, 9)
timer 3 (styr stift 5, 3, 2)
Timer 4 (styr stift 8, 7, 6)
Denna kod för arduino mega med Timer 1 och 3:
kod för Arduino Mega2560 och BTS7960 Motor driver
Skrivet av: Mohannad Rawashdeh
int RPWM = 3;
int LPWM = 11;
int L_EN = 7.
int R_EN = 8;
void setPWMfrequency (int freq) {
TCCR1B = TCCR2B & 0b11111000 | Freq;
TCCR3B = TCCR2B & 0b11111000 | Freq;
}
void MotorActiveStatus (char sida, booleska s) {
booleska state = s;
IF(Side=='R') {
digitalWrite(R_EN,s);
}
IF(Side=='L') {
digitalWrite(L_EN,s);
}
}
void setMotor (char sida, byte pwm) {
IF(Side=='R') {
analogWrite(RPWM,pwm);
}
IF(Side=='L') {
analogWrite(LPWM,pwm);
}
}
void closeMotor(char side) {
IF(Side=='R') {
digitalWrite(RPWM,LOW);
}
IF(Side=='L') {
digitalWrite(LPWM,LOW);
}
}
void setup() {
sätta din installation kod här, om du vill köra en gång:
setPWMfrequency(0x02); / / timer 2, 3.92KHz
för (int jag = 5; jag < 9; i ++) {
pinMode(i,OUTPUT);
}
för (int jag = 5; jag < 9; i ++) {
digitalWrite(i,LOW);
}
Delay(1000);
MotorActiveStatus('R',true);
MotorActiveStatus('L',true);
Serial.BEGIN(9600);
}
void loop() {
sätta din huvudsakliga kod här, för att köra flera gånger:
för (int jag = 0; jag < 256; i ++) {
setMotor('R',i);
Delay(50);
}
Delay(500);
closeMotor('R');
Delay(1000);
för (int jag = 0; jag < 256; i ++) {
setMotor('L',i);
Delay(50);
}
Delay(500);
closeMotor('L');
Delay(1000);
}