My setup is using an Uno r3, and the motor driver is an L289N.
I am going to set it to run at a lower RPM, but when adjusting enA or enB to set to below 130, it won't spin.
// connect motor controller pins to Arduino digital pins
// motor one
int enA = 2;
int enB = 7;
int in3 = 5;
int in4 = 6;
int in1 = 3;
int in2 = 4;
void setup()
{
// set all the motor control pins to outputs
pinMode(enA, OUTPUT);
pinMode(enB, OUTPUT);
pinMode(in3, OUTPUT);
pinMode(in4, OUTPUT);
}
void demoOne()
{
analogWrite(enB, 130);
// turn on motor B
digitalWrite(in1, LOW);
digitalWrite(in2, HIGH);
delay(500);
digitalWrite(in1, LOW);
digitalWrite(in2, LOW);
delay(5000);
// this function will run the motors in both directions at a fixed speed
// turn on motor A
// set speed to 200 out of possible range 0~255
analogWrite(enA, 130);
// turn on motor B
digitalWrite(in3, HIGH);
digitalWrite(in4, LOW);
// set speed to 200 out of possible range 0~255
delay(100); //this function to set masa untuk rotation
// now change motor directions
// now turn off motor
digitalWrite(in3, LOW);
digitalWrite(in4, LOW);
delay(5000);
digitalWrite(in3, LOW);
digitalWrite(in4, HIGH);
delay(200);
digitalWrite(in3, LOW);
digitalWrite(in4, LOW);
delay(5000);
digitalWrite(in3, HIGH);
digitalWrite(in4, LOW);
delay(200);
digitalWrite(in3, LOW);
digitalWrite(in4, LOW);
delay(5000);
digitalWrite(in3, LOW);
digitalWrite(in4, HIGH);
delay(100);
digitalWrite(in3, LOW);
digitalWrite(in4, LOW);
delay(5000);
analogWrite(enB, 130);
// turn on motor B
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
delay(400);
digitalWrite(in1, LOW);
digitalWrite(in2, LOW);
delay(5000);
}
void loop()
{
demoOne();
delay(3000);
}