Existe um dado aparelho que acende um pequeno LED toda vez que é ativado.
Gostaria que o arduino (UNO) executasse um comando qualquer cada vez que esse LED (do outro aparelho) fosse ativado.
Como utilizar a corrente que passa pelo LED do outro aparelho como INPUT para o Arduino?
Quais ligações (+ e -) devem ser feitas e como esse pino de IMPUT deve ser programado?
Há necessidade do uso de resitências?
Conecte a perna positiva (anodo) do led a um pino do Arduino através de uma resistência. Dessa forma, quando o led acender, o pino ficará em HIGH, e quando estiver apagado, LOW.
Deve tomar cuidado com a tensão. Não pode passar de 5 volts na entrada do arduino. Tente com um voltímetro a tensão que está chegando no led antes de ligá-lo.
Bem lembrado, Lago! Outro problema são os GNDs com referências diferentes. Talvez seja bom também unir os GNDs, não? Mas aí acho que vai depender do dispositivo.
Deve se unir os Gnd's , porem caso esse led que acenda no equipamento seja acionado por um outro micro , o arduino pode apresentar erros na leitura devido os desencontros de ondas e momento de leitura
Deve se unir os Gnd's , porem caso esse led que acenda no equipamento seja acionado por um outro micro , o arduino pode apresentar erros na leitura devido os desencontros de ondas e momento de leitura
Quando o led é acionado pelo outro micro com o comando HIGH por exemplo , sempre a uma oscilação na saída devido a frequência do cristal e a execução do loop. Caso está oscilação não for em sincronismo com o loop de leitura do arduino , ele vai captar momentos de LOW enquanto o led estava teoricamente "aceso".
bubulindo:
Se um micro acciona o LED... o LED fica accionado.
Se o outro accionar, o LED continua accionado.
Desde que as referencias de ambas as placas sejam as mesmas, isso e pacifico... se nao forem iguais, ai sim podes criar uma fogueira.
Acho que não deve ter entendido muito bem , não estamos falando de 2 micros acionar um led ao mesmo tempo e sim de um acionar e o outro ler o estado ,como foi descrito a pergunta inicial.
Quando o led é acionado pelo outro micro com o comando HIGH por exemplo , sempre a uma oscilação na saída devido a frequência do cristal e a execução do loop. Caso está oscilação não for em sincronismo com o loop de leitura do arduino , ele vai captar momentos de LOW enquanto o led estava teoricamente "aceso".
Nao esta correcta.
Um micro nao da uma oscilacao ao LED... ou liga ou desliga. Mesmo que tivesse escilacao, aos teus olhos seria invisivel. Que tensao esta nesse LED? De onde e que esse aparelho e alimentado? Ja confirmaste que sao 5V?
Se tu queres ler um sinal digital, nao existe sincronismo nenhum. A palavra sincronismo implica duas ou mais partes fazerem a mesma accao ao mesmo tempo. Porque e que e tao importante o arduino apanhar o HIGH ou o LOW mal comeca?
Acho que não deve ter entendido muito bem , não estamos falando de 2 micros acionar um led ao mesmo tempo e sim de um acionar e o outro ler o estado ,como foi descrito a pergunta inicial.
Claramente nao sabes o que estás a argumentar e agora que vi a tua resposta acho que estas a gerar um grande mistério ai na tua cabeça.
Quando o led é acionado pelo outro micro com o comando HIGH por exemplo , sempre a uma oscilação na saída devido a frequência do cristal e a execução do loop. Caso está oscilação não for em sincronismo com o loop de leitura do arduino , ele vai captar momentos de LOW enquanto o led estava teoricamente "aceso".
Onde descobriste este fenómeno?
Já pensas-te que isto deita por terra toda a fiabilidade de um micro controlador se isto fosse verdade?
Prova me isto que estas a dizer e já agora como tu o resolves para ter um circuito fiável!
Não será que estas a confundir tudo com o "Bounce "que acontece gerado por botões?
bubulindo:
Sendo assim, pelo menos uma destas frases:
Quando o led é acionado pelo outro micro com o comando HIGH por exemplo , sempre a uma oscilação na saída devido a frequência do cristal e a execução do loop. Caso está oscilação não for em sincronismo com o loop de leitura do arduino , ele vai captar momentos de LOW enquanto o led estava teoricamente "aceso".
Nao esta correcta.
Um micro nao da uma oscilacao ao LED... ou liga ou desliga. Mesmo que tivesse escilacao, aos teus olhos seria invisivel. Que tensao esta nesse LED? De onde e que esse aparelho e alimentado? Ja confirmaste que sao 5V?
Se tu queres ler um sinal digital, nao existe sincronismo nenhum. A palavra sincronismo implica duas ou mais partes fazerem a mesma accao ao mesmo tempo. Porque e que e tao importante o arduino apanhar o HIGH ou o LOW mal comeca?
Apesar de existir a oscilação , ela é muito rápida ,claro.
Uma sáida digital é controlada por um transistor interno que é acionado pela parte lógica,que a mesma funciona com uma oscilação (16Mhz ) .
Acho que não deve ter entendido muito bem , não estamos falando de 2 micros acionar um led ao mesmo tempo e sim de um acionar e o outro ler o estado ,como foi descrito a pergunta inicial.
Claramente nao sabes o que estás a argumentar e agora que vi a tua resposta acho que estas a gerar um grande mistério ai na tua cabeça.
Quando o led é acionado pelo outro micro com o comando HIGH por exemplo , sempre a uma oscilação na saída devido a frequência do cristal e a execução do loop. Caso está oscilação não for em sincronismo com o loop de leitura do arduino , ele vai captar momentos de LOW enquanto o led estava teoricamente "aceso".
Onde descobriste este fenómeno?
Já pensas-te que isto deita por terra toda a fiabilidade de um micro controlador se isto fosse verdade?
Prova me isto que estas a dizer e já agora como tu o resolves para ter um circuito fiável!
Não será que estas a confundir tudo com o "Bounce "que acontece gerado por botões?
Se eu fosse você não ficaria com ironia com algumas orientações ,a não ser que eu tivesse uma faculdade exelente e fosse Mestre na aréa.
ViniciusTech:
Se eu fosse você não ficaria com ironia com algumas orientações ,a não ser que eu tivesse uma faculdade exelente e fosse Mestre na aréa.
Eu nao vi ironia nenhuma nesta resposta. Apenas um pedido para que mostres o que estas a dizer.
Quando uma saida dum microcontrolador e activada ela passa a 1 e pronto. A unica oscilacao que podera existir, nao e causada pelo processador e o seu clock de 16MHz, mas sim pela mudanca de estado do transistor e a corrente que ira passar pelo pino. Essa oscilacao que falas, ou pico como e na realidade, a existir sera de 1 ou 2 microsegundos e nao influencia nada.
Este fenomeno e visitel em chips de logica sem clock nenhum tambem... nao sei onde foste buscar o clock como motivo para isto.
Mais, o outro processador, nao consegue ler para la dos 5V entao esse pico que podera existir dependendo do circuito, sera visto no outro controlador como 5V na mesma.
Agora pergunto, ja ligaste la um osciloscopio? Parece-me extremamente improvavel teres uma oscilacao dessas com 5V... Como viste essa oscilacao?
Eu tenho uma idea do que ele quer dizer mas esta a argumentar tudo errado!
O avr tem um sincronizador na ENTRADA que sincroniza quando pedes via codigo que queres ler um pino com o clock do cpu, mas isso acontece transparente para ti e nao causa picos nenhum na saida ou te tens de preocupar com isso. Abris-te uma "lata de worms" apenas ...
Podes consultar a questao da sincronizaçao no datasheet na pagina 78 e 79