#include <Arduino.h>
int DIR1 = 2;
int PWM1 = 3;
int DIR2 = 4;
int PWM2 = 5;
int DIR3 = 6;
int PWM3 = 7;
int DIR4 = 8;
int PWM4 = 9;
void stop() {
digitalWrite(DIR1, LOW);
digitalWrite(DIR2, LOW);
digitalWrite(DIR3, LOW);
digitalWrite(DIR4, LOW);
analogWrite(PWM1, LOW);
analogWrite(PWM2, LOW);
analogWrite(PWM3, LOW);
analogWrite(PWM4, LOW);
}
void m1(int speed) {
if (speed > 100) {
speed = 100;
}
if (speed < -100) {
speed = -100;
}
if (speed > 0) {
digitalWrite(DIR1, HIGH);
analogWrite(PWM1, abs(speed));
}
else {
digitalWrite(DIR1, LOW);
analogWrite(PWM1, abs(speed));
}
}
void m2(int speed) {
if (speed > 100) {
speed = 100;
}
if (speed < -100) {
speed = -100;
}
if (speed > 0) {
digitalWrite(DIR2, HIGH);
analogWrite(PWM2, abs(speed));
}
else {
digitalWrite(DIR2, LOW);
analogWrite(PWM2, abs(speed));
}
}
void m3(int speed) {
if (speed > 100) {
speed = 100;
}
if (speed < -100) {
speed = -100;
}
if (speed > 0) {
digitalWrite(DIR3, HIGH);
analogWrite(PWM3, abs(speed));
}
else {
digitalWrite(DIR3, LOW);
analogWrite(PWM3, abs(speed));
}
}
void m4(int speed) {
if (speed > 100) {
speed = 100;
}
if (speed < -100) {
speed = -100;
}
if (speed > 0) {
digitalWrite(DIR4, HIGH);
analogWrite(PWM4, abs(speed));
}
else {
digitalWrite(DIR4, LOW);
analogWrite(PWM4, abs(speed));
}
}
void setup() {
// initialize both serial ports:
pinMode(DIR1, OUTPUT);
pinMode(DIR2, OUTPUT);
pinMode(DIR3, OUTPUT);
pinMode(DIR4, OUTPUT);
pinMode(PWM1, OUTPUT);
pinMode(PWM2, OUTPUT);
pinMode(PWM3, OUTPUT);
pinMode(PWM4, OUTPUT);
Serial.begin(115200);
Serial1.begin(115200);
Serial1.flush();
}
void loop() {
if (Serial1.available() > 0) {
Serial.write(Serial1.read());
// String buffer = "";
// Serial1.read();
// buffer = Serial1.readStringUntil('\n');
// // Serial.println(buffer);
// buffer.trim();
// switch (buffer[0]) {
// case 'F':
// // Serial.println("FORWARD");
// m1(100);
// m2(100);
// m3(100);
// m4(100);
// break;
// case 'B':
// // Serial.println("BACKWARD");
// m1(-100);
// m2(-100);
// m3(-100);
// m4(-100);
// break;
// case 'L':
// // Serial.println("LEFT");
// m1(100);
// m2(-100);
// m3(-100);
// m4(100);
// break;
// case 'R':
// // Serial.println("RIGHT");
// m1(-100);
// m2(100);
// m3(100);
// m4(-100);
// break;
// default:
// stop();
// break;
// }
// }
// else {
// stop();
// delay(25);
}
}Motor1
Motor2
Motor3
Motor4
PWM
DIR
PWM
DIR
PWM
DIR
PWM
DIR