L298N motorn förarens styrkort (7 / 11 steg)
Steg 7: Kontrollera Motors hastighet med en Arduino
Skissen nedan styra hastigheten på två likströmsmotorer.
Bort ta bygeln från ENA & ENB, ENA & ENB kopplas sedan till Digital 9 och Digital 10 respektive.
#define framåt 8
#define bakåt 2
#define STOP 5
#define PWM_PIN_1 9 //speed kontroll stift för motor1
#define PWM_PIN_2 10 ///speed kontroll PIN-kod för motor2
int Motor [2] [2] = //two dimensionell array
{
{4, 5}, //input stift till kontroll Motor1--> Motor [0] [0] = 4, Motor [0] [1] = 5
{6, 7}, //input stift till kontroll Motor2--> Motor [1] [0] = 6, Motor [1] [1] = 7
};
void setup() {
pinMode (PWM_PIN_1, OUTPUT);
pinMode (PWM_PIN_2, OUTPUT);
pinMode (Motor [0] [0], OUTPUT);
pinMode (Motor [0] [1], OUTPUT);
pinMode (Motor [1] [0], OUTPUT);
pinMode (Motor [1] [1], OUTPUT);
motor_run (0, framåt); motor1 fram
motor_run (1, bakåt); motor2 bakåt
}
void loop() {
mattas
för (int motor_speed = 255; motor_speed > = 0, motor_speed--) {
analogWrite (PWM_PIN_1, motor_speed);
analogWrite (PWM_PIN_2, motor_speed);
Delay(20); dröjsmål 20 millisekunder
}
påskynda
för (int motor_speed = 0; motor_speed < = 255; motor_speed ++) {
analogWrite (PWM_PIN_1, motor_speed);
analogWrite (PWM_PIN_2, motor_speed);
Delay(20); dröjsmål 20 millisekunder
}
}
void motor_run (int motor, int rörelse) {
Växla (rörelse) {
fall framåt:
digitalWrite (Motor [motor] [0], hög);
digitalWrite (Motor [motor] [1], låg);
bryta;
mål bakåt:
digitalWrite (Motor [motor] [0], låg);
digitalWrite (Motor [motor] [1], högt);
bryta;
fall stopp:
digitalWrite (Motor [motor] [0], låg);
digitalWrite (Motor [motor] [1], låg);
bryta;
}
}