Problemas con Puente H, Bluetooth y Sensor Sonico

Hola a todos.

Tengo un proyecto que consiste de mover un carro de manera remota, para lo cual estoy usando el modulo Bluetooth y un puente H para mover un motor DC, pero también necesito que a cierta distancia el carro se detenga, para lo cual uso un Sensor ultrasónico, pero resulta que si tengo activo el código del sensor ultrasónico el carro no va a avanzar, pero si lo quito el carro funciona normalmente.

Les comparto el código:

#include <NewPing.h>
#include <SoftwareSerial.h>

const int trigPin1 = 2;
const int echoPin1 = 4;
int in1=8;
int in2=7;
int distance1;
char opcion;
int bluetoothTx = 1; 
int bluetoothRx = 0; 

SoftwareSerial blue(bluetoothTx, bluetoothRx);
NewPing sonar1(trigPin1, echoPin1);

void setup() {
  Serial.begin(9600);
  blue.begin(9600);
  pinMode(in1,OUTPUT);
  pinMode(in2,OUTPUT);
}

void loop() {
  distance1 = sonar1.ping_cm();
  Serial.print("Distance Sensor 1: ");
  Serial.println(distance1);
  delay(150);
  blue.println(opcion);
   if (blue.available() > 0){
    opcion = blue.read();
    if (opcion=='1'){
      digitalWrite(in1, LOW);
      digitalWrite(in2, LOW);
    }
    if (opcion=='3'){
      if(distance1<=31){
          digitalWrite(in1, LOW);
          digitalWrite(in2, LOW);
        }else{
          digitalWrite(in1, HIGH);
          digitalWrite(in2, LOW);
        }
    }
    if (opcion=='2'){
      digitalWrite(in1, LOW);
          digitalWrite(in2, HIGH);
    }
   }
}

Esperando su ayuda

int bluetoothTx = 1; 
int bluetoothRx = 0; 

SoftwareSerial blue(bluetoothTx, bluetoothRx); 

No puedes usar para SoftwareSerial los mismos pines que usa el puerto hardware, o sea Serial.

1 Like

¿Como lo resuelvo? La mayoría de tutoriales así tienen esa parte del código...

Se usa la libreria SoftwareSerial.h justamente para no usar los pines 0 y 1 de la comunicacion serial en arduino, y usar otros pines los mas común son los pines 10 y 11
asi: SoftwareSerial blue(10,11); //TX,RX , tienes que cambiar esos pines. Luego unos detalles como blue.println(opcion); que va imprimir si no hay datos, y crea funciones como stop(), avanzar(), retroceder() para hacer mas limpio tu codigo, espero te ayude

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.