Dubbla Motor Driver med Arduino använder en SN754410NE Quad halv H-bro (3 / 3 steg)
Steg 3: Arduino skiss
Använd denna kod för att testa din motor med Arduino styrelsen:
Om du behöver PWM, bara använda PWM utgångar på Arduino
och istället för digitalWrite, bör du använda kommandot analogWrite
// ————————————————————————— Motors
int motor_left [] = {2, 3};
int motor_right [] = {7, 8};
int ledPin = 13. LED är ansluten till digital stift 13
// ————————————————————————— Setup
void setup() {
Serial.BEGIN(9600);
Installationsprogrammet för motorer
int i;
för (jag = 0; jag < 2; i ++) {
pinMode (motor_left [i], produktionen);
pinMode (motor_right [i], produktionen);
pinMode (ledPin, produktionen);
}
}
// ————————————————————————— Loop
void loop() {
drive_forward();
Delay(1000);
motor_stop();
Serial.println("1");
drive_backward();
Delay(1000);
motor_stop();
Serial.println("2");
turn_left();
Delay(1000);
motor_stop();
Serial.println("3");
turn_right();
Delay(1000);
motor_stop();
Serial.println("4");
motor_stop();
Delay(1000);
motor_stop();
Serial.println("5");
digitalWrite (ledPin, hög); ställa in lysdioden på
Delay(1000); vänta en sekund
digitalWrite (ledPin, låg); iväg för LED
Delay(1000); vänta en sekund
}
// ————————————————————————— Drive
void motor_stop() {
digitalWrite (motor_left [0], låg);
digitalWrite (motor_left [1], låg);
digitalWrite (motor_right [0], låg);
digitalWrite (motor_right [1], låg);
Delay(25);
}
void drive_forward() {
digitalWrite (motor_left [0], hög);
digitalWrite (motor_left [1], låg);
digitalWrite (motor_right [0], hög);
digitalWrite (motor_right [1], låg);
}
void drive_backward() {
digitalWrite (motor_left [0], låg);
digitalWrite (motor_left [1], hög);
digitalWrite (motor_right [0], låg);
digitalWrite (motor_right [1], hög);
}
void turn_left() {
digitalWrite (motor_left [0], låg);
digitalWrite (motor_left [1], hög);
digitalWrite (motor_right [0], hög);
digitalWrite (motor_right [1], låg);
}
void turn_right() {
digitalWrite (motor_left [0], hög);
digitalWrite (motor_left [1], låg);
digitalWrite (motor_right [0], låg);
digitalWrite (motor_right [1], hög);
}