65 lines
1.5 KiB
C++
65 lines
1.5 KiB
C++
//https://raw.githubusercontent.com/RuiSantosdotme/Random-Nerd-Tutorials/master/Projects/ESP32/ESP32_DC_Motor.ino
|
|
|
|
/*********
|
|
Rui Santos
|
|
Complete project details at http://randomnerdtutorials.com
|
|
*********/
|
|
|
|
// Motor A
|
|
int motor1Pin1 = 14;
|
|
int motor1Pin2 = 27;
|
|
int enable1Pin = 26;
|
|
|
|
// Setting PWM properties
|
|
const int freq = 30000;
|
|
const int pwmChannel = 0;
|
|
const int resolution = 8;
|
|
int dutyCycle = 250;
|
|
|
|
void setup() {
|
|
// sets the pins as outputs:
|
|
pinMode(motor1Pin1, OUTPUT);
|
|
pinMode(motor1Pin2, OUTPUT);
|
|
pinMode(enable1Pin, OUTPUT);
|
|
|
|
// configure LED PWM functionalitites
|
|
ledcSetup(pwmChannel, freq, resolution);
|
|
|
|
// attach the channel to the GPIO to be controlled
|
|
ledcAttachPin(enable1Pin, pwmChannel);
|
|
|
|
ledcWrite(pwmChannel, dutyCycle);
|
|
|
|
Serial.begin(115200);
|
|
|
|
// testing
|
|
Serial.print("Testing DC Motor...");
|
|
}
|
|
|
|
void loop() {
|
|
// Move the DC motor forward at maximum speed
|
|
Serial.println("Moving Forward");
|
|
digitalWrite(motor1Pin1, LOW);
|
|
digitalWrite(motor1Pin2, HIGH);
|
|
delay(2000);
|
|
|
|
// Stop the DC motor
|
|
Serial.println("Motor stopped");
|
|
digitalWrite(motor1Pin1, LOW);
|
|
digitalWrite(motor1Pin2, LOW);
|
|
delay(1000);
|
|
|
|
// Move DC motor backwards at maximum speed
|
|
Serial.println("Moving Backwards");
|
|
digitalWrite(motor1Pin1, HIGH);
|
|
digitalWrite(motor1Pin2, LOW);
|
|
delay(2000);
|
|
|
|
// Stop the DC motor
|
|
Serial.println("Motor stopped");
|
|
digitalWrite(motor1Pin1, LOW);
|
|
digitalWrite(motor1Pin2, LOW);
|
|
delay(1000);
|
|
|
|
}
|