Brancher un LDR sur les broches GPIO d'un Raspberry Pi

12

Je veux connecter un LDR aux broches GPIO de mon Raspberry Pi, je sais que le Raspberry Pi n'a pas de convertisseur analogique-numérique, donc ce que je veux faire est de signaler un signal HIGH (3.3v) sur le GPIO lorsqu'il y a une faible résistance sur le LDR (quelque chose en dessous de 200 ohms) et un signal LOW lorsque la résistance du LDR est élevée (au-dessus de 2k par exemple). Le courant maximal que je peux tirer en toute sécurité des broches GPIO du Raspberry Pi, selon la documentation, est de 50 mA, comment puis-je calculer la résistance nécessaire, devrai-je également ajouter une résistance pull up / down? Je n'ai pas d'idée claire sur la façon de le faire de manière sûre sans brûler mon processeur.

J'imagine que je dois également brancher une résistance sur le circuit pour m'assurer qu'il a toujours une résistance lorsque le LDR est sur un état de très faible résistance.

Mise à jour : cela a bien fonctionné, j'ai construit le circuit et il est montré dans ce post , merci pour l'aide.

Tarentule
la source
1
"L'hystérésis d'entrée GPIO (déclencheur Schmitt) peut être activée ou désactivée, la vitesse de balayage de sortie peut être rapide ou limitée, et le courant de source et de puits est configurable de 2 mA à 16 mA." Le 50mA est le tirage maximum de la broche 3V3.
Ignacio Vazquez-Abrams

Réponses:

13

La meilleure façon de procéder serait d'utiliser un transistor comme comparateur pour rendre la transition nette.
Voici un exemple de circuit:

LDR

Il utilise le LDR comme partie supérieure d'un diviseur de tension. Lorsque la résistance LDR chute, la tension à la base du transistor augmente et l'allume. Le transistor peut être n'importe quel NPN à usage général.
Nous pouvons calculer la valeur de la résistance en fonction de l'endroit où nous voulons que la mise sous tension se produise.

Disons que les résistances LDR vont de 200Ω (sombre) à 10kΩ (sombre). Nous voulons que le transistor s'allume lorsque le LDR est à 5kΩ. L'alimentation (V +) est à 3,3V. Un transistor NPN typique se met en marche à environ 0,7 V, donc si nous le faisons:

5000 * (0,7 / 3,3) = 1060Ω nécessaires pour la résistance de base. Nous pouvons choisir une résistance de 1 kΩ car elle est assez proche. Ajustez vos valeurs en fonction de votre point d'activation.

Voici une simulation du circuit:

LDR sim

L'axe horizontal est la résistance LDR, et la ligne bleue est la tension au point Vout (vous la connectez à la broche d'entrée Rpi - doit être réglée sur entrée. Vous pouvez ajouter une résistance de 1 kΩ entre Vout et la broche Rpi pour la protéger. en cas de réglage accidentel sur la sortie) Nous pouvons voir le transistor se mettre sous tension à environ 5kΩ comme prévu (ne sera pas exact car la tension de base-émetteur du transistor variera avec la température, etc. mais assez près pour vos besoins)

Notez que la sortie du transistor est faible quand il est clair et élevée quand il fait sombre, vous pouvez échanger le LDR et la résistance et utiliser 5000 * (3,3 / 0,7) = 23,5 kΩ pour la résistance si vous le souhaitez dans l'autre sens - c'est en fait une meilleure configuration car elle consomme moins de courant (en raison de résistances plus élevées), donc si c'est important, utilisez cette version.

Oli Glaser
la source
D'accord. J'allais suggérer un comparateur d'ampli-op, mais je l'ai alors pensé exagéré. La solution simple d'utiliser un transistor comme interrupteur ne m'était pas venue à l'esprit.
Ignacio Vazquez-Abrams
2
C'est exactement ce dont j'ai besoin, je le ferai, merci beaucoup pour la réponse, c'est assez étonnant que nous puissions construire ce sigmoïde pour contrôler les niveaux logiques, je n'aurais jamais imaginé quelque chose comme ça, merci d'avoir passé votre temps pour écrire ceci.
Tarantula
@Tarantula - pas de problème, heureux de vous aider.
Oli Glaser