LusoRobótica - Robótica em Português

Electrónica => Electrónica Geral => Tópico iniciado por: andnobre em 07 de Março de 2014, 16:22

Título: sensor de passagem
Enviado por: andnobre em 07 de Março de 2014, 16:22
boas
estou aqui um problema ao construir um sensor de passagem e é tão simples que nem funciona correctamente :-[
ja nem sei se os led estão bem o do infravermelho ou do fototransistor
em anexo esta a minha montagem.
o programa é bastante simples.

Infra vermelho está com uma resistência de 33OR e o Fototransistor de 10K
//////////////////////////////////////////////
 int objeto = 0; 
   
 void setup() 
 { 
  pinMode(7, INPUT); //Pino ligado ao coletor do fototransistor 
  Serial.begin(9600); 
 } 
   
 void loop() 
 { 
  objeto = digitalRead(7); 
  if (objeto == 0) 
  { 
  Serial.println("Objeto : Detectado"); 
  } 
  else 
  { 
   Serial.println("Objeto : Ausente !"); 
  } 
 }   
//////////////////FIM///////////////

o problema que está sempre a detectar ou seja qd eu interrompo o feixe ele não assinala.
Título: Re: sensor de passagem
Enviado por: jm_araujo em 07 de Março de 2014, 16:38
Os Leds infravermelhos pode-se ver se estão ligados com uma camara, por exemplo de um telemóvel, que não conseguem filtrar completamente esses comprimentos de onda.
Título: Re: sensor de passagem
Enviado por: andnobre em 07 de Março de 2014, 16:55
estão entao bem ligados. mas agora porque não funciona correctamente???
Título: Re: sensor de passagem
Enviado por: tarquinio em 07 de Março de 2014, 18:38
Um grande problema é que tens infravermelhos a vir de todo o lado. Podes tentar calibrar isso, mas é dificil, basta mudares de posição, ou o sol mexer-se um bocado que os valores mudam. Eu fiz um projecto do tipo em que usei um TSOP1736 como receptor, e o led a piscar à frequencia correspondente (36Khz), funciona bem melhor e não precisas de calibração nenhuma.
Título: Re: sensor de passagem
Enviado por: andnobre em 07 de Março de 2014, 18:45
agora tenho assim o circuito e mesmo assim n funciona não sei mesmo do que poderá ser algo tão simples. :-[

Título: Re: sensor de passagem
Enviado por: tarquinio em 07 de Março de 2014, 18:53
Olhando assim para uma breadbord é meio dificil perceber o que se passa... Isso é para detectar o que mesmo já agora?
Título: Re: sensor de passagem
Enviado por: andnobre em 07 de Março de 2014, 19:06
 E para detectar a passagem de um objecto a curta distância.
Exemplo vamos imaginar que neste caso passava uma abelha,barata, etc
O mais estranho e que não sei o que poderei estar a fazer de errado e emissor emite ja verifiquei com a maq do telemóvel. O sinal vem do receptor para o arduino porta 7 e umaporta digital. A programação acho que esta simples para funcionar.
Título: Re: sensor de passagem
Enviado por: senso em 07 de Março de 2014, 22:29
Os leds IR estão ligados via resistência a um fio vermelho, fio esse que sai fora da foto, para além disso os leds são direccionais, tens os leds a apontar para cima, e não frente a frente, imagina um carro ter os faróis no tejadilho na perpendicular com a estrada, não seria muito útil para conduzir á noite.
Título: Re: sensor de passagem
Enviado por: andnobre em 07 de Março de 2014, 22:44
Os leds estão apontados um para o outro. O fio vermelho é a alimentação o azul a massa. Enquanto o fio laranja vai ligar ao pino 7 do arduino.
Título: Re: sensor de passagem
Enviado por: dropes em 08 de Março de 2014, 00:03
Está meio confuso teres componentes na breadboard que não fazem parte do circuito.
A 1ª coisa a fazer é desenhar um esquema com as ligações pretendidas.

Essa barreira IR pode ser testada sem arduino, dá para se ler no receptor com o multímetro ou colocar um transístor para acender um LED.
Depois de saber que o hardware está ok então podes seguir para o código no arduino.

ps: o sinal vindo do receptor deve ser TTL (0-5V)
Título: Re: sensor de passagem
Enviado por: KammutierSpule em 08 de Março de 2014, 12:58
agora tenho assim o circuito e mesmo assim n funciona não sei mesmo do que poderá ser algo tão simples. :-[

Bom, detectar infravermelhos, podera nao ser "algo tao simples"  assim..

Por exemplo isto sera um dos circuitos mais simples:
(https://www.clear.rice.edu/elec201/Book/images/img156.gif)
talvez seja idêntico ao que tens feito.

Algumas notas sobre este tipo de circuito:
Título: Re: sensor de passagem
Enviado por: andnobre em 11 de Março de 2014, 13:37
boas
ja mudei para outro sensor tsop1736
mas mesmo assim nada, não detecta nada.
Título: Re: sensor de passagem
Enviado por: senso em 11 de Março de 2014, 15:32
O TSOP dependendo do modelo está á espera de ver um sinal modulado, os mais comuns é 36 e 38Khz, se o sinal não for modulado a essa frequência os filtros do TSOP fazem com que ele não veja efectivamente nada, e é mesmo essa a intenção para remover interferências.
Título: Re: sensor de passagem
Enviado por: andnobre em 11 de Março de 2014, 15:36
entao como faço para ter os 36kHZ
Título: Re: sensor de passagem
Enviado por: tarquinio em 11 de Março de 2014, 16:00
Tens de ter o led a piscar a uma frequencia proxima dos 36Khz... Com o arduino isto funciona (apesar de não dar exactamente os 36Khz):

Código: [Seleccione]
#define PIN_DATA_OUT 10
#define MODULATE_DELAY 10
void setup()
{
    pinMode(PIN_DATA_OUT, OUTPUT);
}
void loop()
{
    digitalWrite(PIN_DATA_OUT, HIGH);
    delayMicroseconds(MODULATE_DELAY);
    digitalWrite(PIN_DATA_OUT, LOW);
    delayMicroseconds(MODULATE_DELAY);
}
Título: Re: sensor de passagem
Enviado por: jm_araujo em 11 de Março de 2014, 16:34
Num micro com 3 timers, esse código é uma aberração, mesmo na plataforma Arduino, mas pode desenrascar se não quiseres o Arduino a fazer mais nada.

O Arduino tem uma biblioteca tone que deve servir para esse fim....
Título: Re: sensor de passagem
Enviado por: andnobre em 11 de Março de 2014, 16:38
deu um no na cabeça ???
ligo ao pino 10 do arduino o led infravermelhos correcto?  :-[
Título: Re: sensor de passagem
Enviado por: andnobre em 11 de Março de 2014, 16:43
so precisava que isto funcionasse vejo tantos esquemas.
Alguém tem um sensor de passagem que funcione com código de arduino ?
Título: Re: sensor de passagem
Enviado por: senso em 11 de Março de 2014, 16:51
Dorme bem, acorda com vontade de aprender, e lê BEM um tutorial ou dois sobre o assunto, isso é algo bastante simples.
Se te está a fazer confusão o facto de o led ser IR arranja um LDR ou um foto-transistor e usa um led comum(espectro visivel), depois de teres isso a funcionar com um led normal, passa para os infra-vermelhos.
Título: Re: sensor de passagem
Enviado por: jmiguelff em 11 de Março de 2014, 17:04
O hate ao Arduino vem um bocado por causa destas coisas...

O que tu tens de fazer é criar um sinal quadrado com uma frequência de 36kHz. Estou a contar com o que o senso disse que é preciso teres o LED IR a piscar a 36kHz.

Este sinal tem de alimentar um transístor que vai fazer ligar/desligar um LED. Em alternativa e numa abordagem mais simples podes ligar o pino directa à porta onde tens o sinal quadrado de 36kHz.

Para criar este sinal tens de utilizar um timer do Atmega que está no Arduino. Basicamente utiliza-se um contador que incrementa uma variável de x em x segundos (este valor tem de ser configurado tendo em conta os tempos de ciclo de relógio). Depois existem várias alternativas para a partir desse contador comutar o output do pino digital criando assim uma onda quadrada. Um exemplo. quando o contador chegar a 200 trocar o output do pino digital e fazer reset ao valor do contador.

Tendo em conta esta explicação MUITO por alto e pouco perceptível deves ler esta thread:
http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&t=50106 (http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&t=50106)



Título: Re: sensor de passagem
Enviado por: andnobre em 11 de Março de 2014, 17:07
muito obrigado por tudo
Título: Re: sensor de passagem
Enviado por: senso em 11 de Março de 2014, 17:08
Porque se estivesse a usar qualquer outro micro ou C puro sem bibliotecas extra, como que por magia ia saber que um TSOP precisa de um sinal modulado.

Ninguem nasce ensinado!
Título: Re: sensor de passagem
Enviado por: jmiguelff em 11 de Março de 2014, 17:29
Porque se estivesse a usar qualquer outro micro ou C puro sem bibliotecas extra, como que por magia ia saber que um TSOP precisa de um sinal modulado.

Ninguem nasce ensinado!

Eu não sabia nunca utilizei isso. O meu comentário tinha mais a ver com o pessoal querer um resultado super rápido sem aprender um bocado. Por isso é que eu dei aquele link e tentei dar um overview da maneira de criar ondas quadradas num qualquer micro.

andnobre também podes tentar a abordagem do tarquinio para teres uma sensibilidade inicial e não desmotivares mas acho que não vais perder nada em ler essa thread que a meu está bastante conseguida.
Título: Re: sensor de passagem
Enviado por: andnobre em 11 de Março de 2014, 18:08
eu n levo a mal nenhum comentario.
só tenho de agradecer eu fico é preocupado por ser tão simples e não funcionar.
e o código e simples de funcionar enfim.
Título: Re: sensor de passagem
Enviado por: KammutierSpule em 11 de Março de 2014, 18:29
eu n levo a mal nenhum comentario.
só tenho de agradecer eu fico é preocupado por ser tão simples e não funcionar.
e o código e simples de funcionar enfim.

Eu tambem fico preocupado.
Conforme tinha explicado anteriormente e também por outras ajudas de outros membros, isto não se trata de algo simples.
Investiga mais um pouco e le mais pela internet e vais ver que estas a tocar na pontinha de um iceberg.

Só será muito simples quando conheceres o iceberg todo.
O facto de teres passado de um phototransistor para um TSOP e esperar o mesmo resultado(neste caso, ter o resultado que esperarias), so mostra que estas a andar ah deriva e por completa tentativa e erro.

Nunca vi em nenhuma documentacao da area de electronica, que tivesse escrito: "Eh so juntar agua, sal e mecher!"
Título: Re: sensor de passagem
Enviado por: senso em 11 de Março de 2014, 18:32
Para medir campos equipotenciais, depois eletrolise quicks in e as pontas de prova desaparecem, campo eletromagnético, porque estragar É aprender  ;D
Título: Re: sensor de passagem
Enviado por: andnobre em 11 de Março de 2014, 18:36
bem eu acho que estou a complicar muito o assunto afinal isto tem de ser do tipo de seguidor de linha.
e simplesmente para contar insectos que entram dentro de uma caixa.
o que eu vejo são seguidores de linha que ja existem no mercado mas eu queria fazer com led infravermelhos e fototransistor mas estou a ver que é mais complicado do que parece.
ja há muito produtos destes
http://www.pololu.com/product/961/ (http://www.pololu.com/product/961/)
http://www.pololu.com/docs/0J19/all (http://www.pololu.com/docs/0J19/all)
Título: Re: sensor de passagem
Enviado por: tarquinio em 11 de Março de 2014, 19:05
A coisa não é assim tão complicada... Começando do 0, se usares um TSOP, a coisa funciona assim: O TSOP tem 3 pinos, 2 para alimentação, e o 3º é o output. O output activa-se quando ele recebe luz a piscar a uma certa frequencia. Dai conseguires ter coisas funcionem à luz do dia sem grandes calibrações... Mesmo havendo infravermelhos por todo o lado, ao teres um led a piscar a uma frequencia específica, a luz vai sempre aumentar/diminuir, e o tsop detecta se esse aumento/diminuição está a acontecer à frequencia certa, e activa o output.

Percebendo como é que o TSOP funciona, o que é que falta fazer? É preciso por um LED a piscar à frequencia certa, e ao mesmo tempo verificar se o output do TSOP está activo ou não.

O código que eu postei é bastante básico mas funciona, o problema é que ele apenas trata da parte de por o led a piscar. Funcionaria se tivesses um arduino apenas para ligar ao led, e outro arduino separado para ligar ao TSOP. É mais dificil de usar se quiseres fazer tudo mo mesmo arduino, porque ao estares a fazer outras coisas alem de por o led a piscar, essas coisas vao demorar tempo a ser executadas, e os tempos já não ficam certos. Neste caso, a coisa a fazer é dizer ao arduino "ok fica aí a piscar o led automaticamente à frequencia que eu te disser enquando o código faz outras coisas". Para isto é que se usam os timers.

Podes usar a library Tone, como o araujo referiu. Aquilo foi mais pensado para fazer sons, mas do ponto de vista do micro, é a mesma coisa ligar um led ou um microfone. Usando essa library, podes usar "play(36000);" no setup para colocar a led a piscar independentemente do resto do codigo... Depois só tens de ver se o output do TSOP se altera, e fazeres o que quiseres se isso acontecer.
Título: Re: sensor de passagem
Enviado por: andnobre em 11 de Março de 2014, 20:04
muito obrigado pela explicação.
Título: Re: sensor de passagem
Enviado por: andnobre em 12 de Março de 2014, 00:33
por acaso este sensor e parecido ou igual no meu caso.
n vejo diferenças.
uso o mesmo código e nada mesmo assim
http://www.filipeflop.com/pd-6b912-sensor-optico-reflexivo-x2-unidades.html?ct=&p=1&s=1 (http://www.filipeflop.com/pd-6b912-sensor-optico-reflexivo-x2-unidades.html?ct=&p=1&s=1)
Título: Re: sensor de passagem
Enviado por: MMM em 12 de Março de 2014, 12:42
Porque não medes o output com um multimetro (no caso do fototransistor) para ver se o problema tá logo aí?
Título: Re: sensor de passagem
Enviado por: andnobre em 26 de Março de 2014, 16:06
o circuito até funciona mas a tensao e menina ou seja muito baixa.
estou a usar um tl081 alimentado a 10v, mas não estou a conseguir amplificar o sinal proveniente do photodiodo.
uma das minhas duvidas e entender o conceito de offset deste componente alguém consegue explicar?  ???
Título: Re: sensor de passagem
Enviado por: jm_araujo em 26 de Março de 2014, 16:23
Se usares um fototransistor não precisas de amplificação.
Título: Re: sensor de passagem
Enviado por: andnobre em 26 de Março de 2014, 16:51
no tl081 é obrigatório termos uma tensão negativa?

Título: Re: sensor de passagem
Enviado por: jm_araujo em 26 de Março de 2014, 17:05
Não. Os potenciais (voltagens) são sempre relativos.

Convém é criar uma "virtual ground" de referência. Depois é só respeitar as margens entre as entradas do opamp (+ e -) e as alimentações (Vss e Vdd) ditados na datasheet e não deves ter problemas de maior.