Pages: [1]   Go Down
Author Topic: como borro el puerto serie?  (Read 189 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 1
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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:
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
       }
}
 
  

* adelante_atras_izquierda_derecha.ino (1.51 KB - downloaded 3 times.)
« Last Edit: August 07, 2014, 11:37:07 pm by leo72 » Logged

Alicante (España)
Offline Offline
Full Member
***
Karma: 13
Posts: 233
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Prueba con esto:


void loop(){
                                                        
incomingByte=9;

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


Jopapa
www.jopapa.me
Logged

Pages: [1]   Go Up
Jump to: