Go Down

Topic: como borro el puerto serie? (Read 229 times) previous topic - next topic

kevin12

Aug 08, 2014, 02:33 am Last Edit: Aug 08, 2014, 06:37 am by leo72 Reason: 1
resulta que estoy haciendo un carrito con arduino que funcione mediante el bluetooth,  y todo va bien excepto que una vez que presiono los botones que destine para "incomingByte" los dos motores A y B se quedan girando segun la programacion que yo les di, mi duda era como le hago para a cada "if" ponerle un delay y así que la instrucción  solo dure el tiempo que le doy en el delay. o si se puede que mientras presiono la tecla para cada if que en este caso son 1, 2, 3 y 4 los motores hagan su funcion y al soltar las teclas los motores se apaguen. ya intente poniendoles delay's pero no me funciona.
les dejo mi programa para que me digan que puedo hacer? Ahorita tenfgo que precionar '0' para apagar pero quiero que basicamente siempre esten apagados excepto cuando presiono la tecla para la funcion que quiero.  gracias!

Code: [Select]
int entradamotor1 = 4;
int entradamotor2 = 7;
int entradamotor3 = 6;
int entradamotor4 = 5;
int incomingByte;


void setup(){
 pinMode(entradamotor1, OUTPUT);  //IN1
 pinMode(entradamotor3, OUTPUT);  //IN2
 pinMode(entradamotor2, OUTPUT);  //IN3
 pinMode(entradamotor4, OUTPUT);  //IN4
  Serial.begin(9600);
}

void loop(){
 if (Serial.available() > 0)
 {
 incomingByte = Serial.read();
 }
 
    //ADELANTE//
   if (incomingByte == '1')
    {
     digitalWrite(entradamotor2, LOW); // motor A
     digitalWrite(entradamotor4, HIGH); //motor A
     digitalWrite(entradamotor1, LOW); //motor B
     digitalWrite(entradamotor3, HIGH); // motor B
     delay (apagado);
     
   }
     //  ATRAS //
   if  (incomingByte == '4')
   {
     digitalWrite(entradamotor2, HIGH); //motor A
     digitalWrite(entradamotor4, LOW); //motor A
     digitalWrite(entradamotor1, HIGH); //motor B
     digitalWrite(entradamotor3, LOW); //motor B
     
   }
     // DERECHA //
   if (incomingByte == '2')
   {
     digitalWrite(entradamotor2, LOW); // motor A
     digitalWrite(entradamotor4, HIGH); //motor A
     digitalWrite(entradamotor1, HIGH); //motor B
     digitalWrite(entradamotor3, LOW); //motor B
}
    // IZQUIERDA //
    if (incomingByte == '3')
    {
     digitalWrite(entradamotor2, HIGH); //motor A
     digitalWrite(entradamotor4, LOW); //motor A
     digitalWrite(entradamotor1, LOW); //motor B
     digitalWrite(entradamotor3, HIGH); // motor B
    }

      //APAGAR//
      if(incomingByte == '0')
      {digitalWrite(entradamotor2, LOW); //motor A
     digitalWrite(entradamotor4, LOW); //motor A
     digitalWrite(entradamotor1, LOW); //motor B
     digitalWrite(entradamotor3, LOW); // motor B
      }
}

 
 

Jopapa

Prueba con esto:


void loop(){
                                                       
incomingByte=9;

 if (Serial.available() > 0)
 {
 incomingByte = Serial.read();
 }
 
    //ADELANTE//
   if (incomingByte == '1')


Jopapa
www.jopapa.me

Go Up