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