Conectando um LDR aos pinos GPIO de um Raspberry Pi

12

Quero conectar um LDR aos pinos GPIO do meu Raspberry Pi, sei que o Raspberry Pi não possui um conversor analógico-digital, então o que eu quero fazer é sinalizar um sinal HIGH (3.3v) no GPIO quando houver baixa resistência no LDR (algo abaixo de 200 ohms) e um sinal BAIXO quando a resistência do LDR for alta (acima de 2k, por exemplo). A corrente máxima que posso extrair com segurança dos pinos GPIO do Raspberry Pi, de acordo com a documentação, é de 50mA. Como calculo o resistor necessário, precisarei adicionar também um resistor pull / down? Não tenho uma ideia clara de como fazer isso de uma maneira segura sem queimar meu processador.

Imagino que também precise conectar um resistor no circuito para garantir que ele sempre tenha resistência quando o LDR estiver em um estado de resistência muito baixa.

Atualização : funcionou bem, eu construí o circuito e é mostrado neste post , obrigado pela ajuda.

Tarântula
fonte
1
"A histerese de entrada GPIO (gatilho Schmitt) pode ser ativada ou desativada, a taxa de rotação da saída pode ser rápida ou limitada e a fonte e a corrente do coletor são configuráveis ​​de 2 mA a 16 mA". O 50mA é o consumo máximo do pino 3V3.
Ignacio Vazquez-Abrams

Respostas:

13

A melhor maneira de fazer isso seria usar um transistor como um comparador para tornar a transição nítida.
Aqui está um exemplo de circuito:

LDR

Ele usa o LDR como a parte superior de um divisor de tensão. Quando a resistência do LDR cai, a tensão na base do transistor aumenta e a liga. O transistor pode ser qualquer NPN de uso geral.
Podemos calcular o valor do resistor com base no paradeiro em que queremos que a ativação aconteça.

Digamos que as resistências do LDR vão de 200Ω (escuro) a 10kΩ (escuro). Queremos que o transistor seja ligado quando o LDR estiver em 5kΩ. A fonte (V +) está em 3.3V. Um transistor NPN típico é ativado em torno de 0,7V, portanto, se o fizermos:

5.000 * (0,7 / 3,3) = 1060Ω necessários para o resistor de base. Podemos escolher um resistor de 1kΩ, pois ele é próximo o suficiente. Ajuste seus valores para se adequar ao seu ponto de ativação.

Aqui está uma simulação do circuito:

LDR sim

O eixo horizontal é a resistência do LDR e a linha azul é a tensão no ponto Vout (você o conecta ao pino de entrada Rpi - deve ser definido como entrada. Você pode adicionar um resistor de 1 kΩ entre o Vout e o pino Rpi para protegê-lo no caso de configurá-lo para saída acidentalmente) Podemos ver o transistor ligado a cerca de 5kΩ conforme o previsto (não será exato, pois a tensão do emissor-base do transistor variará com a temperatura etc., mas próximo o suficiente para seus objetivos)

Observe que a saída do transistor é baixa quando está clara e alta quando está escura, você pode trocar o LDR e o resistor e usar 5.000 * (3,3 / 0,7) = 23,5kΩ para o resistor, se você quiser o contrário - isto é na verdade, uma configuração melhor, pois consome menos corrente (devido a resistências mais altas), portanto, se isso for importante, use esta versão.

Oli Glaser
fonte
Acordado. Eu sugeriria um comparador de amplificador operacional, mas depois pensei que era um exagero. A solução simples de usar um transistor como comutador não me ocorreu.
Ignacio Vazquez-Abrams
2
É exatamente isso que eu preciso, farei isso, muito obrigado pela resposta, é incrível que possamos construir esse sigmoide para controlar os níveis lógicos, eu nunca imaginaria algo assim, obrigado por gastar seu tempo para escrever isso.
Tarantula
@ Tarantula - não há problema, prazer em ajudar.
precisa saber é o seguinte