hola buenas, pongo esta publicación para pedir ayuda con el código que hice para mi robot seguidor de linea con modulo bluetooth, el robot sigue la linea sin el modulo bluetooth, pero al momento de agregarle el modulo bluetooth, y agregarle las partes del bluetooth en el código no sigue la linea, con la aplicacion que cree solo prende y apaga el robot, y pido para que me ayuden a solucionar el error, he hecho de todo, pero nada, de seguro debe ser algo como un ; o una llave que no haya cerrado o abierto, o no se, pueden ayudarme ?
aquí están los dos códigos
seguidor de linea
// SENSORES
int sensor1 = 4; //IZQUIERDA
int sen1 = 4;
int sensor2 = 2; //ESTABILIDAD
int sen2 = 2;
int sensor3 = 7; //DERECHA
int sen3 = 7;
//Motores Lado Derecho //
int AIN1 = 3; // adelante
int AIN2 = 5; // reversa
//Motores Lado izquierdo
int BIN1 = 6; // adelante
int BIN2 = 9; // reversa
//velocidad de los motores
int PWMA = 10; // IZQUIERDO
int PWMB = 11; // DERECHO
void setup() //declara que varaibles son de entradas o salidas
// INPUT= ENTRADAS OUTPUT = SALIDAS
{
pinMode(sensor1, INPUT);
pinMode(sensor2, INPUT);
pinMode(sensor3, INPUT);
pinMode(AIN1, OUTPUT);
pinMode(AIN2, OUTPUT);
pinMode(BIN1, OUTPUT);
pinMode(BIN2, OUTPUT);
pinMode(PWMA, OUTPUT);
pinMode(PWMB, OUTPUT);
digitalWrite(AIN1, HIGH);
digitalWrite(AIN2, LOW);
digitalWrite(BIN1, HIGH);
digitalWrite(BIN2, LOW);
}
void loop()
{
sen1 = digitalRead(sensor1);
sen2 = digitalRead(sensor2);
sen3 = digitalRead(sensor3);
if (sen1 == LOW)
{
analogWrite(PWMA, 254);
}
else
{
analogWrite(PWMA, 30);
}
if (sen2 == LOW)
{
analogWrite(PWMB, 254);
}
else
{
analogWrite(PWMB, 30);
}
if (sen3 == HIGH)
{
analogWrite(PWMA, 254);
analogWrite(PWMB, 254);
}
else
{
analogWrite(PWMA, 30);
analogWrite(PWMB, 30);
}
}
seguidor de linea con modulo bluetooth
#include <SoftwareSerial.h>
String inData;
// SENSORES
int sensor1 = 4; //IZQUIERDA
int sen1 = 4;
int sensor2 = 2; //ESTABILIDAD
int sen2 = 2;
int sensor3 = 7; //DERECHA
int sen3 = 7;
//Motores Lado Derecho //
int AIN1 = 3; // adelante
int AIN2 = 5; // reversa
//Motores Lado izquierdo
int BIN1 = 6; // adelante
int BIN2 = 9; // reversa
//velocidad de los motores
int PWMA = 10; // IZQUIERDO
int PWMB = 11; // DERECHO
void setup() //declara que varaibles son de entradas o salidas
// INPUT= ENTRADAS OUTPUT = SALIDAS
{
Serial.begin (9600);
pinMode(sensor1, INPUT);
pinMode(sensor2, INPUT);
pinMode(sensor3, INPUT);
pinMode(AIN1, OUTPUT);
pinMode(AIN2, OUTPUT);
pinMode(BIN1, OUTPUT);
pinMode(BIN2, OUTPUT);
pinMode(PWMA, OUTPUT);
pinMode(PWMB, OUTPUT);
digitalWrite(AIN1, HIGH);
digitalWrite(AIN2, LOW);
digitalWrite(BIN1, HIGH);
digitalWrite(BIN2, LOW);
}
void loop(){
while (Serial.available()) { // todo lo que esta dentro del ciclo lo usamos para tomar los caracteres que lee el serial y transformarlos a un tipo string
delay(10); // que nos sea util.
while (Serial.available() > 0){ // si es que estamos recibiendo algo
char c =Serial.read(); // entonces 'c' toma el valor del caracter que entro.
inData +=c; // vamos sumando esos caracteres a la variable "inData", de esta manera creamos nuestra string caracter por caracter.
}
if (inData.length() > 0) { //si "inData" ya tiene al menos un caracter
if (inData == "1") { //entonces comparamos la cadena que leimos del serial con la condicion, en este caso con "1".
digitalWrite(AIN1,HIGH); //pone en alto los motores.
digitalWrite(BIN1,HIGH);
sen1 = digitalRead(sensor1);
sen2 = digitalRead(sensor2);
sen3 = digitalRead(sensor3);
if (sen1 == LOW)
{
analogWrite(PWMA, 200);
}
else
{
analogWrite(PWMA, 40);
}
if (sen2 == LOW)
{
analogWrite(PWMB, 200);
}
else
{
analogWrite(PWMB, 40);
}
if (sen3 == HIGH)
{
analogWrite(PWMA, 200);
analogWrite(PWMB, 200);
}
else
{
analogWrite(PWMA, 12);
analogWrite(PWMB, 12);
}
}
if (inData=="2"){ //entonces comparamos la cadena que leimos del serial con la condicion, en este caso con "2".
digitalWrite(AIN1,LOW); //pone en bajo los motores .
digitalWrite(BIN1,LOW);
}
inData=""; //declaramos la variable inData como vacia para volverle a sumar los caracteres que recibimos del serial y luego compararla.
}