Senhores, estou montando um circuito em conjunto com Arduíno para verificar o tempo de inicio e fim de um determinado objeto, imagine um sensor onde o primeiro dispara um cronometro e o segundo para de contar e totaliza o tempo percorrido, achei várias formas de ligar, más estou tendo problemas, o desenho abaixo mostra como liguei o sensor..
uso um outro FotoDiodo, que fica ligado irradiando ao fototransistor,
FotoTransistor = TIL78
FotoDiodo = TIL32
Em tutoriais vejo que ligam ele na porta digital, más não consigo fazer funcionar, fiz um teste de leitura pela porta analógica, quando a luz esta irradia o valor exibido é 30 e quando coloco obstáculo 850,
o código para a leitura do sensor pelo analógico.
código que estou tentando funcionar.
Gostaria sugestões de algumas formas de melhor funcionamento. vlw
Tags:
Quando for usar uma entrada digital para leitura, sempre estabilize ela com um resistor (geralmente eu coloco um de 10k) ligando no GND.
Da forma que voce montou o circuito, ele está recebendo o comando inverso, ou seja, recebe 0 quando não tem luz e 1 quando tem luz.
O que você pode fazer para inverter a funcionalidade do circuito é colocar o emissor do Transistor na entrada analógica estabilizada com o resistor. Assim você tem chegando 1 quando há iluminação e 0 quando não há.
Mas acredito que o seu problema atual é esse mesmo.
A porta pode ser lida usando um (digitalRead(PORTA) == HIGH) mesmo.
Agora a lógica para finalização do reconhecimento da porta:
Pelo que eu entendi, você tem 2 sensores (um para inicio outro para fim do objeto)
Segue o desenho:
Estado (1):
-------------------------------------------------
=Objeto=......|...................|
---------------(S1)-----------(S2)------------
Estado (2):
-------------------------------------------------
........=Objeto=..................|
---------------(S1)-----------(S2)------------
Estado (3):
-------------------------------------------------
.....................|...=Objeto=.|
---------------(S1)-----------(S2)------------
Estado (4):
-------------------------------------------------
.....................|...............=Objeto=
---------------(S1)-----------(S2)------------
Estado (5):
-------------------------------------------------
.....................|...................|+ =Objeto=
---------------(S1)-----------(S2)------------
Em pseudo código temos:
https://pastebin.com/R5gTchgc
Agora cabe você fazer as funções para cada estado.
Espero ter ajudado :D
Isso!
A "Saída" vai em uma entrada digital do arduino.
como ficaria o código para ver no monitor serial o estado do fototransistor tem como ?, na porta analógica eu consigo ver, seria do mesmo jeito, como apresentado no primeiro exemplo ?
Se não me engano, você consegue escrever usando Serial.writeln(digitalRead(NUMERODAPORTA));
Ou jogando dentro de uma variavel:
boolean estado = digitalRead(NUMERODAPORTA);
Serial.writeln(estado);
tudo ok, más está dando algo errado..o tempo esta dando apenas 2 segundos, queria que aparecesse os milésimos de segundo.
este aki ficou melhor
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por