- Lesson 52-1: Basic code: Control a DC motor with Relay using Arduino
- Lesson 52-2: Advanced code: Control a DC motor with Relay using Arduino for HIGH and LOW level trigger
Lesson 52: Control a DC motor with Relay using Arduino (two projects)
Please select other codes for this lecture from the links below.
Part 5: DC Motors
In this lesson we learn how to contorl a DC motor using two relays and Arduino . Please watch the video for full details. There are two codes. basic and advanced. This is basic code.
- 00:00 Introduction
- 04:27 How does it work
- 08:05 Wiring Explained
- 11:45 Basic Code Explained
- 15:25 Advanced code explained
- 18:40 Demonstration with two single relay
- 19:43 Demonstration with a dual relay module
/*
* Lesson 52: Coontrol a DC motor with Relay using Arduino | Arduino Step By Step Course
Basic code
* Arduino code change the direction of rotation
* of a DC motor with 2 relays.
*
* This is basic code. I have advanced code which can be used in both
* for Low-level trigger and High-lever trigger relay with clean code
Please watch video explaining this code : https://youtu.be/2n0vUa0cZOI
*
* Written by Ahmad Shamshiri for Robojax.com on
* Sunday August 18, 2019
* at 20:22 in Ajax, Ontario, Canada
*
This code is available at http://robojax.com/course1/?vid=lecture52
with over 100 lectures Free On YouTube Watch it here http://robojax.com/L/?id=338
Get the code for the course: http://robojax.com/L/?id=339
or make donation using PayPal http://robojax.com/L/?id=64
*
* This code is "AS IS" without warranty or liability. Free to be used as long as you keep this note intact.*
* This code has been download from Robojax.com
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
int relay1 = 2;
int relay2 = 3;
void setup() {
pinMode(relay1, OUTPUT);// set pin as output for relay 1
pinMode(relay2, OUTPUT);// set pin as output for relay 2
// keep the motor off by keeping both HIGH
digitalWrite(relay1, HIGH);
digitalWrite(relay2, HIGH);
Serial.begin(9600);// initialize serial monitor with 9600 baud
Serial.println("Robojax Motor Direction of Rotation");
Serial.println("Using 2 Relays");
delay(2000);
}
void loop() {
// Rotate in CCW direction
digitalWrite(relay1, LOW);// turn relay 1 ON
digitalWrite(relay2, HIGH);// turn relay 2 OFF
Serial.println("Rotating in CCW");
delay(3000);// wait for 3 seconds
// stop the motor
digitalWrite(relay1, HIGH);// turn relay 1 OFF
digitalWrite(relay2, HIGH);// turn relay 2 OFF
Serial.println("Stopped");
delay(2000);// stop for 2 seconds
// Rotate in CW direction
digitalWrite(relay1, HIGH);// turn relay 1 OFF
digitalWrite(relay2, LOW);// turn relay 2 ON
Serial.println("Rotating in CW");
delay(3000);// wait for 3 seconds
// stop the motor
digitalWrite(relay1, HIGH);// turn relay 1 OFF
digitalWrite(relay2, HIGH);// turn relay 2 OFF
Serial.println("Stopped");
delay(2000);// stop for 2 seconds
Serial.println("===============");
}// loop end