Como detectar se há tensão entre dois pontos via GPIO?

9

Gostaria de detectar se um dispositivo externo está ligado ou desligado. Eu encontrei dois pinos onde deveria haver 5V entre no primeiro caso, mas a tensão pode variar um pouco e eu não costumo quebrar o Pi. Como devo conectar os pontos aos pinos GPIO para detectar se há tensão? Ou para perguntar mais geral:

Como posso usar o Raspberry Pi para testar se a bateria está vazia (pouca ou pouca tensão) ou não (tensão nominal)?

Se a medição analógica não for possível, é possível medir pelo menos se a tensão está acima de algum limite? Isso resultaria em um sinal digital, mas como gerá-lo e quais pinos GPIO usar?

Jakob
fonte

Respostas:

5

Com o Raspberry Pi sozinho, você não pode, pois não possui conversor analógico-digital (ADC). Você pode comprar este cartão adicional http://www.abelectronics.co.uk/ e fazer um divisor de tensão com dois resistores sobre a fonte de bateria.

cristão
fonte
11
Obrigado pelo esclarecimento e link para o cartão de complemento ADC.
Jakob
3

Você deseja procurar ou criar um comparador com as características apropriadas. No seu caso, você deseja verificar se a tensão está acima, digamos 3V3 e saída 3V3. Verifique se o seu comparador é tolerante a 5V.

Alex Chamberlain
fonte
Comparador :-) solução agradável. Nunca usei um desses. Manterá isso em mente. +1
Piotr Kula
1

A placa de expansão é legal, mas você pode usar um regulador de tensão que seja barato e simples.

Um regulador de voltagem, dependendo do modelo, espera uma entrada de voltagem do que foi projetado para lidar e produzirá a voltagem desejada no pino de saída. No seu caso, você deseja sentir 5 volts, mas ler 3 volts, o que é seguro para o Pi.

Você pode encontrar amplos suprimentos no ebay, mas aqui está um link do Sparkfun para um exemplo.

Se o dispositivo externo fornecer corrente de até 10vCC, o pino de saída fornecerá 3V (ALTO NO PIN DIGITAL) e você poderá ler com segurança usando GPIO em python ou o que quiser.

Você pode encontrá-los baratos se olhar ao redor. Você só precisa ter certeza de que a saída não exceda 3,3 volts, conectada ao seu Raspberry. Você pode colocar um resistor na saída para diminuir um pouco a tensão .. mas os reguladores são projetados para serem 99,9% precisos na saída.

O Raspberry Pi usa um NCP1117 3.3Volt para acionar o barramento de força 3V3, que obtém energia do barramento 5V0, proveniente da sua alimentação USB flexível.

Os reguladores de tensão são usados ​​para fornecer energia a outros dispositivos. Nesse caso, apenas usei a imaginação para usar uma solução barata e usei o contrário.

Porque no final do dia, apenas precisamos sentir a tensão como um sinal digital. Realmente não importa o que você usa para gerá-lo. Pode ser uma bateria de 3,3v, uma fonte de alimentação de 3,3v dc, uma saída digital em buffer de um Arduino, outro Raspberry, um gerador de sinal, um temporizador 555 ou um simples regulador de tensão. É a implementação e objetivo que é importante.

  • Fim do dia ...
  • 3.3v = 1
  • 0v = 0

Referências:

Tensão máxima no GPIO

Corrente máxima no GPIO

Piotr Kula
fonte
Um motivo para o voto negativo seria muito construtivo. Talvez esta resposta não seja convencional. Mas se for muito falha, entre em contato.
Piotr Kula
2
Idéia interessante, pode usá-lo em um projeto meu (teste se o trilho 12V está ativo ou não)
mglauche
Apenas certifique-se de colocar um resistor de puxar para baixo ou puxar para cima o pino digital. Esta é uma resposta muito antiga. Uma das minhas primeiras. Mas a ideologia é a mesma.
Piotr Kula