Bom dia a todos,

Estou fazendo um projeto para faculdade e me surgiu a seguinte dúvida: "Preciso fazer com que o arduino leia a frequencia de um detector de metais. Esse detector opera com tensão de 12v e sua corrente pelos testes que fiz vai ocilar entre 100 mA e 500 mA. Como farei para o arduino ler essa frequencia sem que comprometa a porta (até onde li, as portas suportam até 40 ~ 50 mA, essa informação procede? ).  Existe alguma forma para eu reduzir essa corrente antes de chegar as portas do arduino?

Desde já agradeço a Todos,

Deus os abençoe,

Julio Ribeiro

Exibições: 1120

Responder esta

Respostas a este tópico

As portas do arduino não suportam FORNECER 40mA, mas sim cada um dos conjuntos de portas, se você tentar usar 40mA de cada porta do arduino, vai queimar o uC.

Dito isso, eu aconselho colocar um optoacoplador para converter a saída de 12V para 5V e correr para o abraço

Mas minha preocupação não é a tensão e sim corrente. Após passar pelo circuto detector de metais (bobina, transistores) ele já me dará uma saída de 5v. O problema é que a corrente continua muito acima do que preciso. Preciso baixar a amperagem.

Mas o detector será alimentado pela porta do Arduino? Você vai ler ou gravar nesse sensor.

Não será alimentado pelo arduino e sim baterias externas. Apenas Leitura. O detector somente enviará a frequencia para o arduino e essa frequência será tradada pelo mesmo. É aí que mora o problema pois essa corrente chega na variação que informei (100mA ~ 500mA) de acordo com a proximidade do metal. Tentarei usar resistores para controlar essa corrente. O problema é que não gostaria de reduzir a tensão. Considero que o ideal seja uma variação entre 10mA e 50mA.

Então o que não entendi, é que quando o arduino estiver lendo o sinal, ele que estará puxando corrente, essa corrente de 100mA ~ 500mA onde você está medindo?

 Toda vez que um metal se aproxima da bobina (campo magnético) há uma variação de corrente e tensão que passa pelos circuitos que criei e que pode ser percebida através de um simples auto falante. No meu caso não usarei o falante e sim uma porta do arduino tratando essa variação (principio de variação usado por todos os outros sensores que testei - luminosidade, temperatura e etc) com uma diferença: a alimentação não será fornecida pelo próprio arduino.

Entendi agora, o que você ta fazendo é algo parecido com um sensor 4-20mA.

Se você tiver exatamente as correntes, máxima e mínima que esse circuito vai consumir, você pode calcular um resistor, que vai te dar a variação da tensão que cai sobre seu circuito, e através disso, pode calcular a aproximação do metal.

Os sensores 4-20mA fazem algo parecido, você aplica nele uma tensão, e conforme há variação do que está lendo ele consome uma determinada corrente.

Eu aqui uso um TRANSDUTOR de pressão que é 4-20mA, o que eu fiz foi alimenta-lo com 21V (a alimentação dele é de 10V a 30V), e entre ele e o GND eu coloquei um resistor de 300R, assim, eu tenho uma variação de 1V em 20mA e 5V quando está em 20mA.

Cada um dos 14 pinos digitais do Uno podem ser utilizados como uma entrada ou uma saída utilizando-se as funções pinMode(), digitalWrite(), e digitalRead(). Eles operam a 5V. Cada pino pode fornecer ou receber um máximo de 40mA e tem um resistor pull-up interno (desconectado por padrão) de 20-50kΩ.

Essa informação, não sei de onde você tirou, mas é totalmente furada.

Isso é devido ao datasheet do ATMEGA328, se referir a PORTS (que são conjuntos de 8 pinos), na tradução alguém entendeu PORTAS.

Não entendi a parte que a informação que o Java, Julio Ribeiro, esta totalmente furada.

Em que parte?

Notes:

1. “Max” means the highest value where the pin is guaranteed to be read as low

2. “Min” means the lowest value where the pin is guaranteed to be read as high
3. Although each I/O port can sink more than the test conditions (20 mA at VCC = 5V, 10 mA at VCC = 3V) under steady state
conditions (non-transient), the following must be observed:
ATmega48PA/88PA/168PA/328P:
1] The sum of all IOL, for ports C0 - C5, ADC7, ADC6 should not exceed 100 mA.
2] The sum of all IOL, for ports B0 - B5, D5 - D7, XTAL1, XTAL2 should not exceed 100 mA.
3] The sum of all IOL, for ports D0 - D4, RESET should not exceed 100 mA.
If IOL exceeds the test condition, VOL may exceed the related specification. Pins are not guaranteed to sink current greater
than the listed test condition.
4. Although each I/O port can source more than the test conditions (20 mA at VCC = 5V, 10 mA at VCC = 3V) under steady state
conditions (non-transient), the following must be observed:
ATmega48PA/88PA/168PA/328P:
1] The sum of all IOH, for ports C0 - C5, D0- D4, ADC7, RESET should not exceed 150 mA.
2] The sum of all IOH, for ports B0 - B5, D5 - D7, ADC6, XTAL1, XTAL2 should not exceed 150 mA.
If IIOH exceeds the test condition, VOH may exceed the related specification. Pins are not guaranteed to source current
greater than the listed test condition.

Extraido do datasheet

http://www.atmel.com/Images/doc8161.pdf#page=314

Tem q ler isso aí com atencao e evitar erros de traducao/interpretacao. PORT é porto, não porta :D. Pense num porto com muitos navios ancorados, daí o nome "port".

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço