sexta-feira, 31 de agosto de 2018

16º Encontro - Controle de direção com potenciômetro

16º Encontro - Controle de direção com potenciômetro - 2ª parte

Olá turma, neste encontro do dia 31/08/2018 demos continuidade ao nosso estudo de programação para controlar 2 motores
Além da programação virtual iniciamos o controle de motor físico do Kit Atto
Nossas atividades




Eletrônica
Montagem com fiação do kit Atto; instalação de potenciômetro
Testes

Programação no simulador tinkercad
Conhecer a estrutura de decisão if...else;
Rever a função map( );
Testar e alterar o código abaixo no circuito da aula anterior:

int motorD = 5;  //motor Direito
int motorE = 6;  //motor Esquerdo
int pos;

int pinoPOT = A0; //PINO ANALÓGICO usado pelo Potenciômetro
int leituraA0; //VARIÁVEL QUE ARMAZENA O valor lido na porta analogica
void setup()
{
  pinMode(motorD, OUTPUT);
  pinMode(motorE, OUTPUT);
  pos=90; //inicializa em 90
  
}

void loop()
{
// avancar(240);
//  parar();
 leituraA0= analogRead(pinoPOT);//analogRead(pinPOT);
 pos= map(leituraA0, 0, 1023, 180, 0); //EXECUTA A FUNÇÃO "map" DE ACORDO COM OS 
 controle(pos);
}

//====COMANDOS DE CONTROLE DO MOTOR================
void avancar(int vel){
 analogWrite(motorD,vel);
 analogWrite(motorE,vel);
}


void parar()
{
  digitalWrite(motorD, 0);
  digitalWrite(motorE,0);
  //delay(t);
}

void direita(int vel){
  analogWrite(motorD,0);
  analogWrite(motorE,vel); 


void esquerda(int vel){
  analogWrite(motorD,vel);
  analogWrite(motorE,0); 
}

void controle(int control){
/*valor de 0 a 80 motor esquerdo para
valor de 100 a 180 motor direito para
valor de 81 a 99 os dois motores giram
*/
  if(control>81 && control<100 ){
   avancar(200); 
  }
  else if(control<81)
  {
    esquerda(200);
  }
  else
  {
    direita(200);//if(control>99)direita(200);
  }

}

Caso tenham dificuldade para copiar e colar usem este link aqui

Abraço a todos!!


Nenhum comentário:

Postar um comentário