collapse

* Posts Recentes

Amplificador - Rockboard HA 1 In-Ear por almamater
[Ontem às 19:13]


O que é isto ? por KammutierSpule
[26 de Março de 2024, 19:35]


Bateria - Portátil por almamater
[25 de Março de 2024, 22:14]


Emulador NES em ESP32 por dropes
[13 de Março de 2024, 21:19]


Escolher Osciloscópio por jm_araujo
[06 de Fevereiro de 2024, 23:07]


TP4056 - Dúvida por dropes
[31 de Janeiro de 2024, 14:13]


Leitura de dados por Porta Serie por jm_araujo
[22 de Janeiro de 2024, 14:00]


Distancia Cabo por jm_araujo
[08 de Janeiro de 2024, 16:30]


Meu novo robô por josecarlos
[06 de Janeiro de 2024, 16:46]


Laser Engraver - Alguém tem? por almamater
[16 de Dezembro de 2023, 14:23]

Autor Tópico: Sensores Opticos  (Lida 11870 vezes)

0 Membros e 1 Visitante estão a ver este tópico.

Offline cenario10

  • Mini Robot
  • *
  • Mensagens: 6
Re: Sensores Opticos
« Responder #15 em: 31 de Julho de 2014, 16:35 »
A saída é digital os sensores são QRE1113 Line Sensor Breakout - Digital. Peço desculpa se dei entender que eram analógicos.

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: Sensores Opticos
« Responder #16 em: 31 de Julho de 2014, 16:37 »
Links, fotos?
Avr fanboy

Offline Hugu

  • Mini Robot
  • *
  • Mensagens: 5.602
  • Keyboard not found. Press any key to continue.
    • [url=www.g7electronica.net]G7 Electrónica.net[/url]
Re: Sensores Opticos
« Responder #17 em: 01 de Agosto de 2014, 01:34 »
tens a plaquinha ligada desta forma ao arduino?

Offline cenario10

  • Mini Robot
  • *
  • Mensagens: 6
Re: Sensores Opticos
« Responder #18 em: 04 de Agosto de 2014, 14:57 »
Boas novamente pessoal, Estou com um problema acho que pode ser relativamente a pista ou aos sensores. Relembro que os sensores são digitais, peço desculpa se perceberam o contrário
O robô já detecta a linha branca mas não a consegue seguir. Ele fica quase parado, as vezes dá os avanços pequenos mas nada de especial.
Os motores estão a funcionar, a bateria esta carregada, ele já andou em cima da pista sem seguir a linha.
A linha branca é uma fita espelhada branca sobre um fundo preto.
Apliquei o que tá neste site também, desde já obrigado deu muito jeito
http://bildr.org/2011/06/qre1113-arduino/


O código é este, o robô tem o objectivo de seguir a linha:

#include <L293D.h>

L293D motores(11,9,8,10,7,6);
int pinSensorMeio = 3;
int pinSensorDireita = 2;
int pinSensorEsquerda = 4;
int valueSM, valueSD, valueSE, state;

void setup(){
  Serial.begin(9600);
}

void loop(){
  state = estadoBarra();
  switch(state){
  case 1:
    Serial.println("1");
    motores.frente(255,255);
    break;
  case 2:
    Serial.println("2");
    motores.frente(255,128);
    break;
  case 3:
    Serial.println("3");
    motores.frente(255,128);
    break;
  case 4:
    Serial.println("4");
    motores.frente(128,255);
    break;
  case 5:
    Serial.println("5");
    motores.frente(128,255);
    break;
  case 6:
    Serial.println("6");
    motores.stop();
    break;
  case 7:
    Serial.println("7");
    motores.stop();
    break;
  case 8:
    Serial.println("8");
    motores.tras(255,255);
    break;
  }
  delay(250);
}

int readSensorDigital(int pinNumber){
  pinMode(pinNumber, OUTPUT );
  digitalWrite(pinNumber, HIGH ); 
  delayMicroseconds(10);
  pinMode(pinNumber, INPUT );

  long time = micros();

  while (digitalRead(pinNumber) == HIGH && micros() - time < 3000);
  int diff = micros() - time;
  return diff;
}

int estadoBarra(){
  int estado;
  valueSM = readSensorDigital(pinSensorMeio);
  valueSD = readSensorDigital(pinSensorDireita);
  valueSE = readSensorDigital(pinSensorEsquerda);

  if(valueSE > 2000 && valueSM < 800 && valueSD > 2000){
    estado = 1;
  }
  else if(valueSE > 2000 && valueSM < 800 && valueSD < 800){
    estado = 2;
  }
  else if(valueSE > 2000 && valueSM > 2000 && valueSD < 800){
    estado = 3;
  }
  else if(valueSE < 800 && valueSM < 800 && valueSD > 2000){
    estado = 4;
  }
  else if(valueSE < 800 && valueSM > 2000 && valueSD > 2000){
    estado = 5;
  }
  else if(valueSE < 800 && valueSM < 800 && valueSD < 800){
    estado = 6;
  }
  else if(valueSE > 2000 && valueSM > 2000 && valueSD > 2000){
    estado = 7;
  }
  else{
    estado = 8;
  }
  return estado;
}





Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: Sensores Opticos
« Responder #19 em: 04 de Agosto de 2014, 17:45 »
Se o sensor é digital ou dá zero ou um, como é que estás a comparar com 2000, 200 e afins?
Estou a ver que estás a ler de um lado que usa analogReads e estás a tentar fazer o mesmo com os digitalRead.
Esses sensores, sendo digitais ou não, terás sempre uma resposta analógica, e mais, passa para o porto analógico, faz analogReads e faz prints para a consola serial, e mexe o sensor em cima da linha, vais ver que os valores variam.
« Última modificação: 04 de Agosto de 2014, 17:48 por senso »
Avr fanboy

Offline FCarvalho5555

  • Mini Robot
  • *
  • Mensagens: 42
Re: Sensores Opticos
« Responder #20 em: 08 de Agosto de 2014, 11:23 »
Boas,

Penso que a versão digital desse sensor não permite que ele seja lido através de um digitalread(), tens de cronometrar o tempo que o capacitor que a board tem leva a descarregar.
http://bildr.org/2011/06/qre1113-arduino/
Vê este link tens ai dois exemplos, para sensor analógico e para o digital.

Offline andnobre

  • Mini Robot
  • *
  • Mensagens: 402
Re: Sensores Opticos
« Responder #21 em: 08 de Agosto de 2014, 12:45 »
boa tarde
onde aconselhavam para comprar sensores de linha?
ebay ja andei também em algumas lojas portuguesas.

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: Sensores Opticos
« Responder #22 em: 08 de Agosto de 2014, 13:37 »
Enquanto não mostrarem o sensor usado, chega de tiros ao prato..
Tenha ou não condensador, isso terá sempre uma saida analógica..
Avr fanboy

Offline FCarvalho5555

  • Mini Robot
  • *
  • Mensagens: 42
Re: Sensores Opticos
« Responder #23 em: 08 de Agosto de 2014, 16:06 »
Enquanto não mostrarem o sensor usado, chega de tiros ao prato..
Tenha ou não condensador, isso terá sempre uma saida analógica..

Se medires a saída do sensor com um multímetro, ela a variar entre 0.15V e 0.2V esta variação depende se está a ler branco ou preto. 

Offline Hugu

  • Mini Robot
  • *
  • Mensagens: 5.602
  • Keyboard not found. Press any key to continue.
    • [url=www.g7electronica.net]G7 Electrónica.net[/url]
Re: Sensores Opticos
« Responder #24 em: 09 de Agosto de 2014, 00:16 »