Go Down

Topic: carrito seguidor de linea con modulo bluetooth  (Read 722 times) previous topic - next topic

jose_zugo

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
Code: [Select]

// 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
Code: [Select]

#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.
  
  }


Go Up