Go Down

Topic: Ayuda con comunicacion serial??? (Read 628 times) previous topic - next topic

buen dia a todos

Soy nuevo en esto de arduino y pues bueno estoy haciendo un programa para un motor pap y tengo un par de condiciones, si llega un 1 a traves del puerto serial, el motor gira a la derecha y si llega un 2 gira a la izquierda, bueno el programa funciona bien cuando mando los datos desde el monitor del ide, pero al intentar comunicarme mediante una hiperterminal al enviarle los datos, no hace nada, pero al cerrar la terminal el arduino trabaja con los datos q le doy.
alguien sabe q otro dato necesito para q actue de forma inmediata ???

cualquier ayuda les agradeceria


jorgepl

Has comprobado que la configuración del hiperterminal sea la correcta? El control de flujo debe estar en off/ninguno.

Sino puede ser cosa de los caracteres de retorno de carro y/o fin de linea.

Con la información que das...es lo que se me ocurre. ¿Puedes poner el código para comprobar que no está hay el fallo?

bueno jorgepl  no entendi lo del retorno de carro y fin de linea, la configuracion si esta bien, un profe me enseño el hiperterminal y ya configuro

aqui te dejo el programa q tengo por el momento en el arduino

// programa para los motores pap ----------ejemplo base


int motorPin1 = 8;                              // PIN-es del Motor
int motorPin2 = 9;
int motorPin3 = 11;
int motorPin4 = 12;
int delayTime = 500;                            // Delay que determina la velocidad de giro


void setup() {

   Serial.begin(9600);         //velocidad de transferencia de datos


  pinMode(motorPin1, OUTPUT);                    // Configuración de los PIN-es como salida digital
  pinMode(motorPin2, OUTPUT);
  pinMode(motorPin3, OUTPUT);
  pinMode(motorPin4, OUTPUT);
}
void loop()

{                               // inicio de loop

   int val = Serial.read ();      // variable enla q se guarda lo q entra desde el puerto .

if (val == '1')

{    //inicio de 1er giro

  digitalWrite(motorPin1, HIGH);                 // Los pines se activan en secuencia
  digitalWrite(motorPin2, LOW);
  digitalWrite(motorPin3, LOW);
  digitalWrite(motorPin4, LOW);
  delay(delayTime);
  digitalWrite(motorPin1, LOW);
  digitalWrite(motorPin2, HIGH);
  digitalWrite(motorPin3, LOW);
  digitalWrite(motorPin4, LOW);
  delay(delayTime);
  digitalWrite(motorPin1, LOW);
  digitalWrite(motorPin2, LOW);
  digitalWrite(motorPin3, HIGH);
  digitalWrite(motorPin4, LOW);
  delay(delayTime);
  digitalWrite(motorPin1, LOW);
  digitalWrite(motorPin2, LOW);
  digitalWrite(motorPin3, LOW);
  digitalWrite(motorPin4, HIGH);
  delay(delayTime);

}   //fin de if


else if (val == '2')

{ //inicio de segundo if enviar 2 al puerto

  digitalWrite(motorPin1, LOW);         // Los pines se activan en secuencia
  digitalWrite(motorPin2, LOW);
  digitalWrite(motorPin3, LOW);
  digitalWrite(motorPin4, HIGH);
  delay(delayTime);
  digitalWrite(motorPin1, LOW);
  digitalWrite(motorPin2, LOW);
  digitalWrite(motorPin3, HIGH);
  digitalWrite(motorPin4, LOW);
  delay(delayTime);
  digitalWrite(motorPin1, LOW);
  digitalWrite(motorPin2, HIGH);
  digitalWrite(motorPin3, LOW);
  digitalWrite(motorPin4, LOW);
  delay(delayTime);
  digitalWrite(motorPin1, HIGH);                 
  digitalWrite(motorPin2, LOW);
  digitalWrite(motorPin3, LOW);
  digitalWrite(motorPin4, LOW);
  delay(delayTime);

}  //fin del segundo if

else{

  digitalWrite(motorPin1, LOW);         // Los pines se desactivan
  digitalWrite(motorPin2, LOW);
  digitalWrite(motorPin3, LOW);
  digitalWrite(motorPin4, LOW);

}//fin de else

} //fin de loop

jeje bueno la verdad es q me estube fijando y veo q si tenia mal configurado eso del control de flujo  jeje .... bueno, eso soluciono mi problema
muchas gracias por tu ayuda, esto me ayuda bastante jejeje

emmm, abusando de tu ayuda, has trabajado con java y la libreria rxtx, tambien para comunicacion con arduino????

Go Up