PROJECT 16-Arduino Code – Controlling a DC Motor
PROJECT #1 CODE TO CONTROLLING 1MOTOR MOVE FORWARD
int in1 = 9;
int in2 = 10;
void setup() {
// Set used pins as output
pinMode(in1, OUTPUT);
pinMode(in2, OUTPUT);
digitalWrite(in1, LOW);
digitalWrite(in2, LOW);
}
void loop() {
// Full speed forward
digitalWrite(in1, LOW);
digitalWrite(in2, HIGH);
}
PROJECT #2 CODE TO CONTROLLING 1MOTOR MOVE FORWARD
AND BACKWARD
int in1 = 9;
int in2 = 10;
void setup() {
// Set used pins as output
pinMode(in1, OUTPUT);
pinMode(in2, OUTPUT);
digitalWrite(in1, LOW);
digitalWrite(in2, LOW);
}
void loop() {
// Full speed forward
digitalWrite(in1, LOW);
digitalWrite(in2, HIGH);
delay(3000);
// Full speed backward
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
delay(3000);
}
PROJECT #3 CODE TO CONTROLLING 1MOTOR MOVE FORWARD
AND BACKWARD
int in1 = 9;
int in2 = 10;
int in3 = 11;
int in4 = 12;
void setup() {
// Set used pins as output
pinMode(in1, OUTPUT);
pinMode(in2, OUTPUT);
pinMode(in3, OUTPUT);
pinMode(in4, OUTPUT);
digitalWrite(in1, LOW);
digitalWrite(in2, LOW);
digitalWrite(in3, LOW);
digitalWrite(in4, LOW);
}
void loop() {
// Full speed forward
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
digitalWrite(in3, HIGH);
digitalWrite(in4, LOW);
delay(3000);
// Full speed backward
digitalWrite(in1, LOW);
digitalWrite(in2, HIGH);
digitalWrite(in3, LOW);
digitalWrite(in4, HIGH);
delay(3000);
}
PROJECT #4 CODE FOR CONTROLLING 2 MOTORS ROTATION
DIRECTION AND SPEED
// Motor A connections // Now change motor
int enA = 9; directions
int in1 = 8; digitalWrite(in1, LOW);
int in2 = 7; digitalWrite(in2, HIGH);
// Motor B connections digitalWrite(in3, LOW);
int enB = 3; digitalWrite(in4, HIGH);
int in3 = 5; delay(2000);
int in4 = 4; // Turn off motors
digitalWrite(in1, LOW);
void setup() { digitalWrite(in2, LOW);
// Set all the motor control digitalWrite(in3, LOW);
pins to outputs digitalWrite(in4, LOW);
pinMode(enA, OUTPUT); }
pinMode(enB, OUTPUT); // This function lets you control
pinMode(in1, OUTPUT); speed of the motors
pinMode(in2, OUTPUT); void speedControl() {
pinMode(in3, OUTPUT); // Turn on motors
pinMode(in4, OUTPUT); digitalWrite(in1, LOW);
digitalWrite(in2, HIGH);
// Turn off motors - Initial digitalWrite(in3, LOW);
state digitalWrite(in4, HIGH);
digitalWrite(in1, LOW);
digitalWrite(in2, LOW); // Accelerate from zero to
digitalWrite(in3, LOW); maximum speed
digitalWrite(in4, LOW); for (int i = 0; i < 256; i++)
} {
void loop() { analogWrite(enA, i);
directionControl(); analogWrite(enB, i);
delay(1000); delay(20);
speedControl(); }
delay(1000); // Decelerate from maximum
} speed to zero
// This function lets you control for (int i = 255; i >= 0; --i)
spinning direction of motors {
void directionControl() { analogWrite(enA, i);
// Set motors to maximum analogWrite(enB, i);
speed delay(20);
// For PWM maximum possible }
values are 0 to 255 // Now turn off motors
analogWrite(enA, 255); digitalWrite(in1, LOW);
analogWrite(enB, 255); digitalWrite(in2, LOW);
// Turn on motor A & B digitalWrite(in3, LOW);
digitalWrite(in1, HIGH); digitalWrite(in4, LOW);
digitalWrite(in2, LOW); }
digitalWrite(in3, HIGH);
digitalWrite(in4, LOW);
delay(2000);