#include <BluetoothSerial.h>
BluetoothSerial SerialBT;
// Puente H L298N
const int motorPin1 = 2; // Conectar a la entrada 1 del L298N
const int motorPin2 = 4; // Conectar a la entrada 2 del L298N
const int enablePin = 5; // Conectar a la entrada ENABLE del L298N
int velocidadPWM = 100; // Velocidad de PWM (0-255)
bool permitirGiroDerecha = true;
void setup() {
pinMode(motorPin1, OUTPUT);
pinMode(motorPin2, OUTPUT);
pinMode(enablePin, OUTPUT);
Serial.begin(115200);
SerialBT.begin("ESP32_ROBOTICA_2"); // Puedes cambiar "ESP32_BT" por el nombre que prefieras
}
void loop() {
if (SerialBT.available()) {
char comando = SerialBT.read();
ejecutarComando(comando);
}
}
void ejecutarComando(char comando) {
switch (comando) {
case 'D':
if (permitirGiroDerecha) {
Serial.println("Girando a la derecha...");
girarDerecha();
delay(1000);
detenerMotor();
permitirGiroDerecha = false;
}
break;
case 'I':
permitirGiroDerecha = true;
Serial.println("Girando a la izquierda...");
girarIzquierda();
break;
default:
break;
}
}
void girarDerecha() {
digitalWrite(motorPin1, HIGH);
digitalWrite(motorPin2, LOW);
analogWrite(enablePin, velocidadPWM);
}
void girarIzquierda() {
digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, HIGH);
analogWrite(enablePin, velocidadPWM);
}
void detenerMotor() {
digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, LOW);
analogWrite(enablePin, 0);
Serial.println("Motor detenido.");
}