quarta-feira, 1 de agosto de 2018

8º Encontro - Programação do carro robótico 3ªparte

8º Encontro -Continuação da montagem  carro robótico parte 3

Salve turma, em nosso encontro do dia 15/06/2018, demos continuidade a montagem dos carros e a programação. Apesar das dificuldades estamos pesquisando e fazendo testes para conseguirmos resultados satisfatórios.
Atividades

Mecânica - Remontagem dos carros para acertar o alinhamento e melhorar o acondicionamento da placa Atto as estrutura dos carros e posicionamento dos sensores.

Programação - Testes para deixar o carro robótico sensível a luz para tal criamos o código abaixo o carro seguir a direção a um fonte de luz.

int motorD = 5;  //motor Direito
int motorE = 6;  //motor Esquerdo
int sentgiroMD = 10;
int sentgiroME = 11;

//sensor de luz
#define ldrPin A0 //LDR no pino analígico 0
int ldrValor =0; //Valor lido do LDR

void setup()
{
  pinMode(13, OUTPUT);
  pinMode(motorD, OUTPUT);
  pinMode(motorE, OUTPUT);
  pinMode(sentgiroME, OUTPUT);
  pinMode(sentgiroMD, OUTPUT);
  Serial.begin(9600); //Inicia a comunicação serial
}

void loop()
{
 /* ldrValor = analogRead(ldrPin); //O valor lido será entre 0 e 1023
  if(ldrValor>=285){
    if(ldrValor<=350)avancar(150);
    if(ldrValor>350&&ldrValor<=450)avancar(200);
    if(ldrValor>450)avancar(250);

  }else{
    parar();
    direita(250);
    delay(100);
  }
  */
  //imprime o valor lido do LDR no monitor serial
 leituraFina(2);
 Serial.println( ldrValor);
 delay(300);

}//fim loop

void leituraFina(int vezes){
  int le=0;
  for(int x=0;x<vezes; x++){
    le += analogRead(ldrPin); //O valor lido será entre 0 e 1023
  }
  Serial.print( "ldrValor ");
  Serial.print( ldrValor);
  Serial.println( );
  ldrValor =le/vezes; //media do valor lido
}


void avancar(int vel)
{
 digitalWrite(sentgiroME, HIGH);
 digitalWrite(sentgiroMD, HIGH);
 analogWrite(motorD, vel);
 analogWrite(motorE, vel);

}

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

void recuar(int vel)
{
 analogWrite(motorD, vel);
 analogWrite(motorE, vel);
 digitalWrite(sentgiroME, LOW);
 digitalWrite(sentgiroMD, LOW);
}

void direita(int vel)
{
 digitalWrite(sentgiroME, HIGH);
 digitalWrite(sentgiroMD, LOW); //high
 analogWrite(motorD, vel);//0
 analogWrite(motorE, vel);

}

void esquerda(int vel)
{
 digitalWrite(sentgiroME, LOW);//high
 digitalWrite(sentgiroMD, HIGH);
 analogWrite(motorD, vel);
 analogWrite(motorE, vel);//0

}


abraço a todos!

Nenhum comentário:

Postar um comentário