Go Down

Topic: como utilizar a função millis? (Read 1 time) previous topic - next topic

JOeKOema


estou com um problema fiz um robô controlado por bluetooh, ele anda em tdas as direções mais qndo eu aciono o servo motor ele fica disparado ou parado se acionar o servo primeiro, tentei usar o millis mais não estou conseguido

bubulindo

Vê o exemplo blink without delay nos exemplos do Arduino.
This... is a hobby.

IvanVic

 Boa tarde,

 Já tentou interrupção...?

JOeKOema


//VARIAVEL QUE RECEBE DADOS BLUETOOTH
char comando;
#include <Servo.h> //BIBLIOTECA SERVO MOTOR
Servo myservo; //CONTROLA A POSIÇÃO NA VARIÁVEL "POS" DO SERVO MOTOR
int pos = 0; //VARIÁVEL PARA ARMAZENAR POSIÇÃO DO SERVO MOTOR

void setup()
{
 //DEFINE O PINO DO SERVO MOTOR
  myservo.attach(10);
  //DEFININDO ENTRADAS E SAIDAS
 pinMode(4, OUTPUT);
 pinMode(5, OUTPUT);
 pinMode(6, OUTPUT);
 pinMode(7, OUTPUT);



  //INICIANDO A SERIAL
 Serial.begin(9600);
}

void loop()
{
  //CONTROLE
  while (Serial.available() > 0)
  { int x;
   char comando = Serial.read();
    switch (comando)
    {
  case 'B'://Tras
//Gira o Motor A e B no sentido horario
 
  digitalWrite(4, HIGH);
  digitalWrite(5, LOW);
  digitalWrite(6, HIGH);
  digitalWrite(7, LOW);
 

break;

case 'F': //frente
//Gira o Motor A e B no sentido anti-horario

  digitalWrite(4, LOW);
  digitalWrite(5, HIGH);
  digitalWrite(6, LOW);
  digitalWrite(7, HIGH);



break;

case 'L'://esquerda

 
  digitalWrite(4, HIGH);
  digitalWrite(5, LOW);
  digitalWrite(6, LOW);
  digitalWrite(7, HIGH);
 


break;

case 'R'://direita

 
  digitalWrite(4, LOW);
  digitalWrite(5, HIGH);
  digitalWrite(6, HIGH);
  digitalWrite(7, LOW);
 


break;

case 'S'://parado

  digitalWrite(4, LOW);
  digitalWrite(5, LOW);
  digitalWrite(6, LOW);
  digitalWrite(7, LOW);


break;

case 'U'://arma

    for (pos = 0; pos <= 180; pos += 1) {   
    myservo.write(pos);
    for (pos = 180; pos >= 0; pos -= 0) {
    myservo.write(pos);
    break;
    default:
    break;
   
}
}
}   
}
}

Go Up