O método selecionado depende parcialmente do que o sinal de entrada faz, como ele se comporta e como isso pode afetar o circuito de entrada e o código que o lê?
por exemplo, é sempre 12V? Tem picos ou ruído? Quanta corrente ele pode dirigir? A corrente pode ser direcionada para ela? Tomar corrente dele afetará qualquer outra coisa? É segurança crítica? ....
Por causa disso, nunca pode haver uma resposta universal para essa pergunta, pois a solução 'correta' depende do que o resto do sistema faz. A solução escolhida que atende aos requisitos terá custos e complexidade diferentes.
Dito isto, como ninguém mais o sugeriu, vou buscar uma entrada FET.
Um JFET ou MOSFET pode ser usado e pode ser fonte comum ou modos de drenagem comuns. Por exemplo, dreno comum:
simular este circuito - esquemático criado usando o CircuitLab
A vantagem do modo de dreno comum é que ele permite que a entrada seja conectada a um pino analógico (por exemplo, ADC) ou digital. Se o sinal for realmente digital, eu habilitaria o gatilho schmitt na entrada da CPU (se houver) ou adicionaria um buffer schmitt externo ao pino de entrada da CPU.
Vantagens
- Impedância de entrada muito alta
- Entrada parcialmente isolada (pode suportar +/- 30V, dependendo da seleção FET)
- Analógico possível
- Efeito mínimo no sinal externo