Stap 4: Arduino Mega Timer
timer 0 (bepaalt pin 13, 4)
Timer 1 (bepaalt pin 12, 11)
timer 2 (bepaalt pin 10, 9)
timer 3 (bepaalt pin 5, 3, 2)
timer 4 (bepaalt pin 8, 7, 6)
Deze code voor arduino mega met Timer 1 en 3:
code voor Arduino Mega2560 en BTS7960 Motor-driver
geschreven door: 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 kant, Booleaanse s) {}
Booleaanse staat = s;
if(side=='R') {}
digitalWrite(R_EN,s);
}
if(side=='L') {}
digitalWrite(L_EN,s);
}
}
VOID setMotor (char side, 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 {}
Zet uw setup-code hier, om het eenmalig uit te voeren:
setPWMfrequency(0x02); / / timer 2, 3.92KHz
for (int i = 5; ik < 9; i ++) {}
pinMode(i,OUTPUT);
}
for (int i = 5; ik < 9; i ++) {}
digitalWrite(i,LOW);
}
delay(1000);
MotorActiveStatus('R',true);
MotorActiveStatus('L',true);
Serial.begin(9600);
}
void loop {}
Zet uw belangrijkste code hier, om het herhaaldelijk uitvoeren:
for (int i = 0; ik < 256; i ++) {}
setMotor('R',i);
delay(50);
}
delay(500);
closeMotor('R');
delay(1000);
for (int i = 0; ik < 256; i ++) {}
setMotor('L',i);
delay(50);
}
delay(500);
closeMotor('L');
delay(1000);
}