Étape 4: Comment fonctionne LDR
La première chose dont peut-être avoir besoin de plus amples explications est maintenant l’utilisation de la lumière à charge résistances. Lumière des résistances de charge (ou de LDR) est des résistances dont la valeur change en fonction de la quantité de lumière ambiante, mais comment peut-on détecter la résistance avec Arduino ? Eh bien vous ne pouvez pas vraiment, cependant, vous pouvez détecter des niveaux de tension en utilisant les broches analogiques, ce qui peuvent de mesurer (en utilisation basique) entre 0-5V. Vous pouvez maintenant demander "bien comment nous convertir les valeurs de résistance en variations de tension?", c’est simple, que nous faisons un diviseur de tension. Un diviseur de tension prend une tension et renvoie ensuite une fraction de cette tension proportionnelle à la tension d’entrée et le rapport entre les deux valeurs de résistances utilisées. L’équation qui est :
Tension de sortie = tension d’alimentation * (R2 / (R1 + R2)) où R1 est la valeur de la première résistance et R2 est la valeur de la seconde.
Maintenant cela pose toujours la question « mais quelles valeurs de résistance ont le LDR? », bonne question.
Le moins de quantité de lumière ambiante la plus élevée la résistance, plus de lumière ambiante signifie une résistance plus faible. Maintenant pour le particulier LDR j’ai utilisé leur gamme de résistance était de 200 à 10 kilo ohms, mais cela change pour différentes alors n’oubliez pas de chercher où vous les avez achetés d’et essayer de trouver une feuille de données ou quelque chose du genre. Maintenant, dans ce cas R1 est en fait notre LDR, nous allons donc ramener cette équation et faire des maths-e-magie (magie électrique mathématique). Maintenant, tout d’abord, il faut convertir ces valeurs en kilo Ohms en ohms :
200 kilo-ohms = 200 000 ohms 10 kilo-ohms = 10 000 ohms
Pour trouver ce que la tension de sortie est donc lorsque nous sommes dans la nuit noire que nous brancher dans les numéros suivants :
5 * (10000 / (200000 + 10000))
L’entrée est 5V, car c’est ce que nous obtenons de l’Arduino.
Ce qui précède donne 0.24V (arrondi). Maintenant, nous trouvons ce que la tension de sortie est en luminosité maximale en utilisant les numéros suivants: 5 * (10000 / (10000 + 10000)) et cela nous donne 2.5V exactement.
Donc ce sont les valeurs de tension que nous allons entrer dans les analogiques broches de l’Arduino, mais ce ne sont pas les valeurs qui seront visibles dans le programme, « mais pourquoi? » vous pouvez demander.
L’Arduino utilise un analogique/numérique puce qui convertit la tension analogique en données numériques utilisables. À la différence les broches numériques de l’Arduino qui peut seulement lire un État haut ou bas étant 0 et 5V les broches analogiques peuvent lire 0-5V et convertir en un évantail de 0-1023.Now peu plus math-e-Magic.
Nous pouvons calculer réellement quelles valeurs l’Arduino sera lue.
Car il s’agit d’une fonction linéaire, nous pouvons utiliser la formule suivante: Y = mX + C
Où ; Y = ValueWhere numérique ; m = pente, (monter / exécuter), (valeur numérique / analogique valeur) où ; C = Y interceptThe Y intercept est 0, donc cela nous donne: Y = mXm = 1023 / 5 = 204.6Therefore:Digital value = 204,6 * analogique valeur donc dans nuit noire, la valeur numérique sera : 204,6 * 0,24
Ce qui donne environ 49. Et en luminosité maximale, il sera : 204,6 * 2.5
Ce qui donne environ 511.
Maintenant avec deux de ces mis en place sur les deux broches analogiques, nous pouvons créer deux variables entières pour stocker leurs valeurs deux et opérateurs de comparaison pour voir celui qui a la plus faible valeur, de faire tourner le robot dans cette direction.