- Matériel requis
- Schéma
- Code et explication
- Comment il contrôle automatiquement l'intensité lumineuse:
«Soyez une étincelle brillante, les lumières éteintes jusqu'à ce qu'il fasse nuit!» parfois on oublie d'éteindre les lumières et on gaspille l'électricité et on doit aussi avoir vu le réverbère allumé dans la journée. Nous avons déjà construit quelques circuits sur le détecteur sombre où les lumières s'éteignent automatiquement s'il fait clair à l'extérieur et s'allument s'il fait sombre à l'extérieur. Mais cette fois, dans ce circuit, nous n'allumons pas seulement les lumières en fonction des conditions d'éclairage, mais nous faisons également varier l'intensité de la lumière en fonction des conditions d'éclairage extérieures. Ici, nous avons utilisé le concept LDR et PWM avec Arduino pour diminuer ou augmenter automatiquement la luminosité de la LED Power 1 watt.
Fondamentalement, PWM fait référence à la modulation de largeur d'impulsion, le signal de sortie via une broche PWM sera un signal analogique et acquis en tant que signal numérique de l'Arduino. Il utilise le rapport cyclique de l'onde numérique pour générer la valeur analogique séquentielle du signal. Et, ce signal est en outre utilisé pour contrôler la luminosité de la LED d'alimentation.
Matériel requis
- Arduino UNO
- LDR
- Résistance (510, 100k ohm)
- Condensateur (0,1 uF)
- Transistor 2N2222
- LED d'alimentation de 1 watt
- Fils de connexion
- Planche à pain
Schéma
Code et explication
Le code Arduino complet pour le gradateur automatique de LED est donné à la fin.
Dans le code ci-dessous, nous définissons la broche PWM et les variables à utiliser dans le code.
int pwmPin = 2; // affecte la broche 12 à la variable pwm int LDR = A0; // affecte l'entrée analogique A0 à la variable pot int c1 = 0; // déclare la variable c1 int c2 = 0; // déclare la variable c2
Maintenant, dans la boucle, nous lisons d'abord la valeur à l'aide de la commande «analogRead (LDR)» puis sauvegardons l'entrée analogique dans une variable nommée «valeur» . En effectuant un calcul mathématique, nous générons le signal PWM. Ici, nous contrôlons l'intensité de la lumière en utilisant PWM uniquement si la valeur analogique est inférieure à 500, et si elle est supérieure à 500, nous éteignons complètement les lumières.
valeur int = analogRead (LDR); Serial.println (valeur); c1 = valeur; c2 = 500-c1; // soustrait c2 de 1000 ans enregistre le résultat dans c1 if (valeur <500) { digitalWrite (pwmPin, HIGH); delayMicrosecondes (c2); digitalWrite (pwmPin, LOW); delayMicrosecondes (c1); } if (valeur> 500) { digitalWrite (2, LOW); } }
Vous pouvez en savoir plus sur PWM dans Arduino à partir d'ici.
Comment il contrôle automatiquement l'intensité lumineuse:
Selon le schéma de circuit, nous avons créé un circuit diviseur de tension utilisant LDR et une résistance de 100k. La sortie du diviseur de tension alimente la broche analogique de l'Arduino. La broche analogique détecte la tension et donne une valeur analogique à Arduino. La valeur analogique change en fonction de la résistance du LDR. Ainsi, s'il fait sombre sur le LDR, sa résistance augmente et donc la valeur de tension (valeur analogique) diminue. Par conséquent, la valeur analogique fait varier la sortie PWM ou le cycle de service, et le cycle de service est en outre proportionnel à l'intensité de la lumière de la LED d'alimentation. Ainsi, la lumière sur le LDR contrôlera automatiquement l'intensité de la LED d'alimentation. Ci-dessous se trouve le diagramme de fonctionnement, le signe de la flèche vers le haut indique "en augmentation" et le signe de la flèche vers le bas indique "la diminution".
Intensité de la lumière (sur LDR) ↓ - Résistance ↑ - Tension à la broche analogique ↓ - Cycle de service (PWM) ↑ - Luminosité de la LED Power ↑
Si son extérieur est entièrement lumineux (lorsque la valeur analogique augmente de plus de 500), le voyant d'alimentation s'éteint.
C'est ainsi que vous pouvez contrôler automatiquement l'intensité de la lumière à l'aide de LDR.
Vérifiez plus en détail tous nos circuits liés au LDR ici.