Maison / Maîtriser le PC / Lampe intelligente utilisant Arduino. Circuit de capteur de lumière utilisant une photorésistance et un relais

Lampe intelligente utilisant Arduino. Circuit de capteur de lumière utilisant une photorésistance et un relais

Bonjour ou bonne nuit, selon qui vous êtes. Aujourd'hui, je vais partager des instructions pour fabriquer une petite veilleuse. La base sera un diffuseur mat provenant d'une ampoule LED grillée. Et à l'intérieur, nous placerons les LED Arduino Pro Mini et SW2812. Je ne posterai qu'un seul croquis, mais il peut y avoir beaucoup d'options de couleurs ou d'irisation. Commençons, comme toujours, par une liste de ce dont vous avez besoin :

Diffuseur de lampe LED, culot E27
- Alimentation 5V
-Arduino Pro Mini 5V
- USB-TTL (pour télécharger un croquis sur Arduino)
- LED WS2812
- Plastique fin
- Ruban adhésif double face
- Le chargement depuis le téléphone n'est pas nécessaire, mais cela fonctionne
- Fer à souder
- Fils
- Soudure, colophane
- Pistolet à colle chaude

Étape 1. Fabriquer le corps.
Nous devons d’abord nous procurer un diffuseur. Nous prenons une ampoule LED avec une douille E27. Il vaut mieux, bien sûr, prendre une ampoule usagée :

D'une main, nous tenons l'ampoule par la base et le corps en plastique, de l'autre main, nous la prenons par le diffuseur et cassons l'ampoule. Le diffuseur doit se détacher facilement du corps, car il n'est maintenu en place que par le mastic :

Nous devons maintenant réaliser une base sur laquelle nous collerons les LED. Pour ce faire, nous prenons du plastique fin, une couverture d'un dossier en plastique fera l'affaire. Nous mesurons maintenant le diamètre intérieur du trou de montage du diffuseur, et nous devons également mesurer la profondeur du diffuseur. Passons à la réalisation de la base. Il aura la forme d'un cylindre dont le diamètre devra être inférieur de 5 mm au diamètre intérieur du trou de montage du diffuseur. Et la hauteur est inférieure de 7 mm à la profondeur du diffuseur. Ça devrait ressembler a quelque chose comme ca:

Restons-en là pour l'instant.

Étape 2. Électrique.
Comme je l'ai dit plus tôt, le contrôleur sera un Arduino Pro Mini, une version qui fonctionne sur 5 volts. La bande LED se connecte tout simplement, pour ce faire, il faut connecter le contact +5V au plus de l'alimentation 5 volts, et GND au moins. Connectez la broche DIN (entrée) à la broche 6 de l'Arduino. Le port de connexion du ruban peut être remplacé par n'importe quel port pratique dans le croquis. Nous alimenterons l’Arduino à partir de la même alimentation. Puisque nous utiliserons une alimentation stabilisée, nous connectons le plus de l’alimentation à la broche 5V de l’Arduino. Le négatif de l'alimentation doit être connecté au GND de l'Arduino. Le schéma est le suivant :

Ainsi, une LED, à la luminosité maximale des trois couleurs, consomme 60 mA. J'en ai 25, donc il s'avère :

25 x 60 mA = 1 500 mA = 1,5 A

Autrement dit, j'ai besoin d'une alimentation de 5 V, 1,5 A. Il s'agit de l'indicateur de courant maximum qui sera lorsque toutes les LED seront allumées au mode de luminosité maximale des trois couleurs.

Utilisons un vieux chargeur de téléphone comme alimentation. L'alimentation doit être sélectionnée pour 5 volts, et en termes de puissance, calculez le nombre de LED que vous pouvez installer :

Nous en coupons la fiche et soudons les fils directement au ruban, n'oublions pas de vérifier la polarité avec un testeur ou un multimètre. Vous devez également réaliser des câbles pour alimenter l’Arduino. Et un fil de signal de la bande à l'Arduino.

On fait une fente dans la partie basse du cylindre afin de faire passer les contacts du ruban avec les fils soudés à l'intérieur :

Insérez l'extrémité du ruban avec les fils dans la fente, fixez-le avec de la colle chaude. Ensuite, nous collons le ruban en cercle, en le soulevant légèrement pour obtenir une spirale de ruban. On colle aussi du scotch sur le dessus du cylindre, le nombre de diodes dépend du diamètre, j'avais au maximum deux LED sur le dessus en diagonale, et même pour que les contacts pendent vers le bas :

Si vous obtenez le même résultat, ne vous inquiétez pas, coupez simplement le ruban adhésif qui dépasse des bords et soudez les fils directement aux LED. Contacts WS2812 :

Note, Bande lumineuse LED sur le WS2812B il a un sens, d'un côté (démarrage ou entrée) il a des contacts DIN, +5V, GND. Et de l'autre côté (extrémité ou sortie) DO, +5V, GND. Si vous soudez directement sur les LED, regardez l'emplacement des contacts en vous concentrant sur la touche (coin coupé). Pour simplifier l'installation, des flèches indiquant la direction sont dessinées sur le ruban. Attention particulière Faites attention à la transition vers le haut, vous obtenez un virage très serré, il y a une forte probabilité de casser le ruban. Je l'ai eu comme ceci :


Soudé directement aux LED par le haut :

Et au milieu, au deuxième niveau, il y a quelques LED supplémentaires :

Et pour plus de fiabilité, remplissez les fils de colle chaude :

Maintenant, nous insérons notre cylindre avec des LED à l'intérieur de la boule de l'ampoule. A l'aide de colle chaude, on fixe le cylindre à l'intérieur de la boule en cercle :

N'oubliez pas de faire un emplacement pour faire sortir le câble d'alimentation :

Étape 3. Préparation de l'environnement et du firmware.
Pour télécharger le croquis (ou le firmware), nous utiliserons l'IDE Arduino. Télécharger depuis le site officiel dernière version et installez-le.

Pour ce faire, téléchargez d'abord l'archive. Décompressez ensuite cette archive. Et déplacez les fichiers décompressés vers le dossier « bibliothèques », qui se trouve dans le dossier dans lequel l'IDE Arduino est installé. Cela peut être simplifié. Lancez l'IDE Arduino. Nous ne décompressons pas l'archive téléchargée. Directement dans l’IDE ​​Arduino, sélectionnez l’élément de menu Sketch – Connect Library. Tout en haut de la liste déroulante, sélectionnez « Bibliothèque Add.Zip ». Une boîte de dialogue devrait apparaître. Ensuite, sélectionnez notre bibliothèque, Adafruit_NeoPixel-master. Cela vaut la peine d'attendre un peu. Ouvrez à nouveau l'élément de menu Sketch – Connect Library. Maintenant, tout en bas de la liste déroulante, vous verrez la nouvelle bibliothèque. Après avoir redémarré l'IDE Arduino, la bibliothèque peut être utilisée.

Téléchargez mon croquis :

Il ne reste plus qu'à télécharger le croquis sur Arduino. Nous utilisons Arduino Pro Mini. Cette version du populaire Arduino n'a pas de puce USB-TTL soudée sur la carte. Par conséquent, pour communiquer avec un ordinateur et télécharger un croquis, vous devez utiliser un port USB-TTL distinct. Raccordement selon le schéma suivant :

Arduino-USB-TTL
Réception (P0) – Émission
ÉMISSION (P1) – RÉCEPTION
Masse - Masse

L'alimentation USB-TTL proviendra de port USB ordinateur. Arduino peut être alimenté par USB-TLL ou utilisé source externe nutrition. L'essentiel est que la broche GND de l'USB-TTL et de l'Arduino soient connectées. Le plus souvent, vous rencontrez USB-TTL sans sortie de broche DTR. La broche DTR doit être connectée au Reset Arduino pour effectuer une réinitialisation automatique avant de télécharger le croquis. Si, comme moi, vous n'avez pas cette sortie, vous devez redémarrer manuellement avant de télécharger le croquis. Nous agissons comme ceci : nous connectons tout le monde selon le schéma décrit ci-dessus, ouvrons l'IDE Arduino, ouvrons le croquis que vous avez téléchargé, appuyons sur le bouton - Télécharger - et regardons ce qui est écrit ci-dessous. Pendant que la « compilation » est en cours, on ne fait rien, on attend juste que le mot « télécharger » apparaisse, il faut cliquer Bouton de réinitialisation sur Arduino. S'il n'est pas pratique d'appuyer sur un bouton de la carte, vous pouvez afficher un bouton connecté à GND et réinitialiser. Ou simplement amener les fils aux mêmes bornes et les fermer au bon moment.

Je tiens à dire qu'il existe de nombreuses options pour éclairer une veilleuse, je n'en ai noté dans le croquis que quelques-unes que j'ai aimées. Vous pouvez modifier le croquis à votre guise. Expérimentez et choisissez ce que vous préférez.

Salut tout le monde! Je m'appelle Artem Luzhetsky et je dirigerai une série d'articles consacrés à " Maison intelligente" et IoT (anglais - Internet of Things, Internet of Things). Nous nous familiariserons avec des façons étonnantes de créer réseau domestiqueà partir d'une variété d'appareils qui fonctionneront de manière autonome ou avec une assistance humaine. Bien? Commençons!

Le premier article est une introduction, je veux que vous compreniez que je travaillerai avec les cartes et modules les plus courants afin que la plupart des gens puissent s'essayer au développement de l'IoT.

Nous avons donc d’abord besoin de deux microcontrôleurs que nous utiliserons : et .

Arduino UNO

Je pense qu'il n'est pas nécessaire de vous présenter cette planche, elle est très appréciée des débutants et des fans de DIY. Je dirai seulement que les capacités de cette carte sont limitées et que UNO ne peut pas fonctionner avec le protocole https, le microcontrôleur ATmega328P n'a pas assez de puissance de calcul, donc quand nous devrons travailler avec le microcontrôleur et le protocole https, nous programmerons l'ESP8266 .

ESP8266

Je travaillerai avec le module Troyka ESP8266 de la société Amperka, mais vous pouvez utiliser en toute sécurité un module ESP 8266 ordinaire, ils n'ont pratiquement aucune différence, l'essentiel lors de la connexion est de regarder la signification des broches et de se rappeler que l'ESP fonctionne sur une logique de 3,3 volts, vous devez donc soit vous connecter via 5 volts, mais connecter un stabilisateur de tension au circuit, soit simplement utiliser une broche avec une alimentation en tension de 3,3 volts.

Ce microcontrôleur n'est pas le plus puissant de la série Espressif sur le marché général, mais c'est l'un des moins chers et des plus courants. Ce sera la base de nos développements IoT.

Détails supplémentaires

Nous devrons également créer toutes les expériences :

  1. LED
  2. Photorésistance
  3. Thermistance
  4. Télémètre à ultrasons
  5. Piézodynamique
  6. Mini-servomoteur
  7. Capteur infrarouge
  8. Télécommande infrarouge

Nous n'avons pas besoin de tous ces modules pour fonctionner avec l'IoT, mais pour réaliser tous les projets futurs, nous devrons éventuellement les acheter tous.

Programmes et bibliothèques

Tout d'abord, téléchargez la bibliothèque qui vous aidera à travailler beaucoup plus facilement dans l'IDE Arduino si vous utilisez un ESP8266 - http://wiki.amperka.ru/_media/iot-m:iot-m-libs.zip

Deuxièmement, pour mieux comprendre l’IoT, nous aurons besoin de sites Web qui nous permettront de leur envoyer des données.

  1. www.dweet.io
  2. maker.ifttt.com
  3. narodmon.ru
  4. etc.

Troisièmement, ils nous seront également utiles diverses applications sur Android pour que nous puissions contrôler une maison intelligente à l'aide de notre téléphone.

  1. OuvrirHab
  2. Clignoter
  3. etc.

Nous nous familiariserons en détail avec toutes les méthodes, programmes et sites dans les projets à venir.

2. Fabriquer une « lampe intelligente »

Est-ce que je t'ai déjà ennuyé ? Créons la lampe intelligente la plus simple qui s'allumera si la pièce est sombre.

En fait, vous n'avez même pas besoin d'un UNO pour cela, vous pouvez utiliser un capteur photo numérique personnalisé, mais à l'avenir, nous modifierons ce projet au-delà de toute reconnaissance, nous devrons donc commencer quelque part.

Si vous n'êtes pas sûr d'être prêt à travailler avec de l'électricité de 220 volts, utilisez une LED ordinaire au lieu d'une lampe de poche. Au début, j'ai pris mon ancienne lampe TLI-204, celles-ci sont disponibles dans presque tous les magasins (je l'ai débranchée au préalable).

La lampe a deux types de fonctionnement (on/off), ce que je veux faire c'est augmenter sa fonctionnalité, laisser la possibilité d'allumer et d'éteindre complètement la lampe.

Il ne sera pas possible de connecter une photorésistance avec un relais en parallèle à un circuit sans utiliser un autre interrupteur, j'ai donc décidé d'installer un interrupteur à bascule à trois positions au lieu d'un interrupteur à deux positions.

Général schéma électrique devrait ressembler à ceci :

Si tout est fait correctement, alors dans la troisième position de l'interrupteur, vous pouvez, en fournissant du courant du microcontrôleur au relais, allumer la lampe.

Connectons une photorésistance à l'Arduino. Le schéma ressemble à ceci :

3. Code pour « lampe intelligente »

Écrivons maintenant un code qui transférera le courant au relais si la pièce est sombre.

#define SHINE 5 //PIN SUR LA PHOTORÉSISTANCE #define REL 13 //PIN SUR LE RELAIS void setup())( pinMode(SHINE, INPUT); pinMode(REL, OUTPUT); Serial.begin(9600); ) void loop ())(if (analogRead(SHINE)<600) // Если света в комнате мало, то включаем лампу { digitalWrite(REL, HIGH) } else // если много, то выключаем { digitalWrite(REL, LOW); } Serial.printIn(analogRead(SHINE)); selay(500); }

Lorsque vous connecterez le tout, pensez à retirer le capteur photo du lama, sinon vous aurez droit à un spectacle de lumière. Tout devrait fonctionner.

La prochaine fois, nous essaierons de compliquer le code et d'ajouter quelques fonctions supplémentaires. À bientôt!

Pour notre prochain projet, nous utiliserons une photorésistance. Et nous envisagerons la mise en place d'une veilleuse pour la chambre, qui s'allumera automatiquement lorsqu'il fera sombre et s'éteindra lorsqu'il fera jour.

La résistance d'une photorésistance dépend de la lumière qui tombe dessus. En utilisant une photorésistance conjointement avec une résistance conventionnelle de 4,7 kOhm, nous obtenons un diviseur de tension dans lequel la tension traversant la photorésistance change en fonction du niveau de lumière.

Nous appliquons la tension du diviseur à l'entrée de l'Arduino ADC. Là, nous comparons la valeur résultante avec un certain seuil et allumons ou éteignons la lampe.

Le schéma de circuit du diviseur est présenté ci-dessous. Lorsque l'éclairage augmente, la résistance de la photorésistance diminue et, par conséquent, la tension à la sortie du diviseur (et à l'entrée ADC) augmente. Lorsque l’éclairage baisse, tout est inversé.

La photo ci-dessous montre le circuit assemblé sur une maquette. Les tensions 0V et 5V proviennent d'Arduino. La broche A0 est utilisée comme entrée ADC.

Vous trouverez ci-dessous un croquis Arduino. Dans ce didacticiel, nous allumons et éteignons simplement la LED intégrée à la carte Arduino. Vous pouvez connecter une LED plus lumineuse à la jambe 13 (via une résistance d'environ 220 Ohm). Si vous connectez une charge plus puissante, telle qu'une lampe à incandescence, elle doit être connectée via un relais ou un thyristor.

Il y a des sections commentées dans le code du programme, elles sont utilisées pour le débogage. Il sera possible de contrôler la valeur ADC (de 0 à 1024). De plus, vous devez modifier la valeur 500 (seuil d'activation et de désactivation) dans le code par celle que vous sélectionnez expérimentalement en modifiant l'éclairage.

/* ** Veilleuse ** ** www.hobbytronics.co.uk */ int sensorPin = A0; // définit la jambe d'entrée pour l'ADC unsigned int sensorValue = 0 ; // valeur numérique de la photorésistance void setup() ( pinMode(13, OUTPUT); Serial.begin(9600); // démarre la sortie des données série (pour les tests) void loop() ( sensorValue = analogRead(sensorPin); // lire la valeur de la photorésistance si (sensorValue<500) digitalWrite(13, HIGH); // включаем else digitalWrite(13, LOW); // выключаем // Для отладки раскомментируйте нижеследующие строки //Serial.print(sensorValue, DEC); // вывод данных с фоторезистора (0-1024) //Serial.println(""); // возврат каретки //delay(500); }

Les capteurs de lumière (éclairage), construits à base de photorésistances, sont assez souvent utilisés dans les vrais projets Arduino. Ils sont relativement simples, peu chers et faciles à trouver et à acheter dans n’importe quelle boutique en ligne. La photorésistance Arduino vous permet de contrôler le niveau de lumière et de répondre à ses changements. Dans cet article, nous verrons ce qu'est une photorésistance, comment fonctionne un capteur de lumière basé sur celle-ci et comment connecter correctement le capteur aux cartes Arduino.

Une photorésistance, comme son nom l'indique, est directement liée aux résistances, que l'on retrouve souvent dans presque tous les circuits électroniques. La principale caractéristique d’une résistance classique est la valeur de sa résistance. La tension et le courant en dépendent, à l'aide d'une résistance, nous définissons les modes de fonctionnement requis des autres composants. En règle générale, la valeur de résistance d'une résistance ne change pratiquement pas dans les mêmes conditions de fonctionnement.

Contrairement à une résistance classique, photorésistance peut changer sa résistance en fonction du niveau de lumière ambiante. Cela signifie que les paramètres du circuit électronique changeront constamment ; tout d'abord, nous nous intéressons à la chute de tension aux bornes de la photorésistance. En enregistrant ces changements de tension sur les broches analogiques de l'Arduino, nous pouvons modifier la logique du circuit, créant ainsi des dispositifs qui s'adaptent aux conditions externes.

Les photorésistances sont très activement utilisées dans une grande variété de systèmes. L'application la plus courante est l'éclairage public. Si la nuit tombe sur la ville ou si le temps devient nuageux, les lumières s'allument automatiquement. Vous pouvez fabriquer une ampoule économique pour la maison à partir d'une photorésistance qui s'allume non pas selon un horaire, mais en fonction de l'éclairage. Vous pouvez même créer un système de sécurité basé sur un capteur de lumière, qui se déclenchera immédiatement après l'ouverture et l'éclairage d'une armoire fermée ou d'un coffre-fort. Comme toujours, le champ d'application de tout capteur Arduino n'est limité que par notre imagination.

Quelles photorésistances peuvent être achetées dans les magasins en ligne

L'option de capteur la plus populaire et la plus abordable sur le marché sont les modèles produits en série par des entreprises chinoises, des clones de produits du fabricant VT. Il n'est pas toujours possible de savoir qui et quoi produit exactement tel ou tel fournisseur, mais pour se lancer dans les photorésistances, l'option la plus simple est tout à fait appropriée.

Il peut être conseillé à un utilisateur novice d'Arduino d'acheter un module photo prêt à l'emploi qui ressemble à ceci :


Ce module dispose déjà de tous les éléments nécessaires pour connecter facilement une photorésistance à la carte Arduino. Certains modules implémentent un circuit comparateur et fournissent une sortie numérique et une résistance d'ajustement pour le contrôle.

Il peut être conseillé à un radioamateur russe de se tourner vers le capteur PA russe. Disponibles à la vente sont FR1-3, FR1-4, etc. - ont été produits à l'époque soviétique. Malgré cela, FR1-3 est un détail plus précis. De là découle la différence de prix : pour FR, ils ne demandent pas plus de 400 roubles. FR1-3 coûtera plus de mille roubles chacun.

Marquage des photorésistances

L'étiquetage moderne des modèles produits en Russie est assez simple. Les deux premières lettres sont PhotoResistor, les chiffres après le tiret indiquent le numéro de développement. FR -765 - photorésistance, développement 765. Généralement marqué directement sur le corps de la pièce

Le capteur VT a une plage de résistance indiquée dans le schéma de marquage. Par exemple:

  • VT83N1 - 12-100kOhm (12K – éclairé, 100K – dans l'obscurité)
  • VT93N2 - 48-500kOhm (48K – éclairé, 100K – dans l'obscurité).

Parfois, pour clarifier les informations sur les modèles, le vendeur fournit un document spécial du fabricant. Outre les paramètres de fonctionnement, la précision de la pièce y est également indiquée. Tous les modèles ont une plage de sensibilité dans la partie visible du spectre. Collecte capteur de lumière Vous devez comprendre que la précision de fonctionnement est un concept relatif. Même pour les modèles du même fabricant, du même lot ou du même achat, cela peut différer de 50 % ou plus.

En usine, les pièces sont réglées sur des longueurs d’onde allant du rouge au vert. La plupart des gens « voient » également le rayonnement infrarouge. Des pièces particulièrement précises peuvent même détecter la lumière ultraviolette.

Avantages et inconvénients du capteur

Le principal inconvénient des photorésistances est la sensibilité spectrale. Selon le type de lumière incidente, la résistance peut varier de plusieurs ordres de grandeur. Les inconvénients incluent également la faible vitesse de réaction aux changements d'éclairage. Si le voyant clignote, le capteur n'a pas le temps de réagir. Si la fréquence de changement est assez élevée, la résistance cessera généralement de « voir » que l’éclairage change.

Les avantages incluent la simplicité et l’accessibilité. Le changement direct de résistance en fonction de la lumière qui tombe dessus permet de simplifier le circuit de connexion électrique. La photorésistance elle-même est très bon marché, elle est incluse dans de nombreux kits et constructeurs Arduino et est donc disponible pour presque tous les fabricants Arduino novices.

Connecter une photorésistance à Arduino

Dans les projets arduino La photorésistance est utilisée comme capteur de lumière. En recevant des informations, la carte peut activer ou désactiver les relais, démarrer les moteurs et envoyer des messages. Naturellement, nous devons connecter correctement le capteur.

Le schéma de connexion du capteur de lumière à l'Arduino est assez simple. Si nous utilisons une photorésistance, alors dans le schéma de connexion, le capteur est implémenté comme diviseur de tension. Un bras change en fonction du niveau d'éclairage, le second fournit une tension à l'entrée analogique. Dans la puce du contrôleur, cette tension est convertie en données numériques via un CAN. Parce que Lorsque la résistance du capteur diminue lorsque la lumière le frappe, la valeur de la tension qui le traverse diminue également.

En fonction du bras du diviseur dans lequel nous avons placé la photorésistance, une tension augmentée ou diminuée sera fournie à l'entrée analogique. Si une branche de la photorésistance est connectée à la terre, alors la valeur de tension maximale correspondra à l'obscurité (la résistance de la photorésistance est maximale, presque toute la tension chute à ses bornes), et la valeur minimale correspondra à un bon éclairage (la résistance est proche de zéro, la tension est minime). Si nous connectons le bras de photorésistance à l’alimentation, le comportement sera inverse.

L'installation de la carte elle-même ne devrait poser aucune difficulté. Étant donné que la photorésistance n'a pas de polarité, elle peut être connectée des deux côtés ; elle peut être soudée à la carte, connectée avec des fils à l'aide d'un circuit imprimé ou utilisée avec des clips ordinaires (pinces crocodiles) pour la connexion. La source d'alimentation du circuit est l'Arduino lui-même. Photorésistance une jambe est connectée à la terre, l'autre est connectée à la carte ADC (dans notre exemple - AO). Nous connectons une résistance de 10 kOhm à la même jambe. Naturellement, vous pouvez connecter une photorésistance non seulement à la broche analogique A0, mais également à n'importe quelle autre.

Quelques mots sur la résistance supplémentaire de 10 K. Elle a deux fonctions dans notre circuit : limiter le courant dans le circuit et générer la tension requise dans le circuit avec un diviseur. La limitation du courant est nécessaire dans une situation où une photorésistance entièrement éclairée réduit fortement sa résistance. Et la génération de tension concerne des valeurs prévisibles sur le port analogique. En effet, pour un fonctionnement normal avec nos photorésistances, une résistance de 1K suffit.

En modifiant la valeur de la résistance, nous pouvons « décaler » le niveau de sensibilité vers les côtés « sombre » et « clair ». Ainsi, 10 K donneront une commutation rapide de l'apparition de la lumière. Dans le cas du 1K, le capteur de lumière détectera avec plus de précision les niveaux de lumière élevés.

Si vous utilisez un module capteur de lumière prêt à l'emploi, la connexion sera encore plus simple. Nous connectons la sortie du module VCC au connecteur 5V de la carte, GND à la masse. Nous connectons les broches restantes aux connecteurs Arduino.

Si la carte a une sortie numérique, nous l'envoyons aux broches numériques. Si c’est analogique, passez à l’analogique. Dans le premier cas, nous recevrons un signal de déclenchement - le niveau d'éclairage a été dépassé (le seuil de déclenchement peut être ajusté à l'aide d'une résistance de réglage). À partir des broches analogiques, nous pourrons obtenir une valeur de tension proportionnelle au niveau d'éclairage réel.

Un exemple de croquis d'un capteur de lumière sur une photorésistance

Nous avons connecté le circuit avec la photorésistance à l'Arduino et nous sommes assurés que tout était fait correctement. Il ne reste plus qu'à programmer le contrôleur.

Écrire un croquis pour un capteur de lumière est assez simple. Il suffit de supprimer la valeur de tension actuelle de la broche analogique à laquelle le capteur est connecté. Cela se fait en utilisant la fonction analogRead() que nous connaissons tous. On peut alors effectuer certaines actions en fonction du niveau de luminosité.

Écrivons un croquis pour un capteur de lumière qui allume ou éteint une LED connectée selon le circuit suivant.

L'algorithme de fonctionnement est le suivant :

  • Déterminez le niveau du signal de la broche analogique.
  • Nous comparons le niveau avec la valeur seuil. La valeur maximale correspondra à l'obscurité, la valeur minimale correspondra à l'éclairage maximum. Choisissons une valeur seuil égale à 300.
  • Si le niveau est inférieur au seuil, il fait sombre, vous devez allumer la LED.
  • Sinon, éteignez la LED.
#define PIN_LED 13 #define PIN_PHOTO_SENSOR A0 void setup() ( Serial.begin(9600); pinMode(PIN_LED, OUTPUT); ) void loop() ( int val = analogRead(PIN_PHOTO_SENSOR); Serial.println(val); if ( Val< 300) { digitalWrite(PIN_LED, LOW); } else { digitalWrite(PIN_LED, HIGH); } }

En recouvrant la photorésistance (avec vos mains ou un objet résistant à la lumière), nous pouvons observer la LED s'allumer et s'éteindre. En modifiant le paramètre de seuil dans le code, nous pouvons forcer l'ampoule à s'allumer/s'éteindre à différents niveaux d'éclairage.

Lors de l'installation, essayez de placer la photorésistance et la LED aussi loin que possible l'une de l'autre afin que moins de lumière provenant de la LED lumineuse tombe sur le capteur de lumière.

Capteur de lumière et changement fluide de la luminosité du rétroéclairage

Vous pouvez modifier le projet pour que la luminosité de la LED change en fonction du niveau d'éclairage. Nous ajouterons les modifications suivantes à l'algorithme :

  • Nous modifierons la luminosité de l'ampoule via PWM, en envoyant des valeurs de 0 à 255 à la broche avec la LED en utilisant analogWrite().
  • Pour convertir la valeur numérique du niveau de lumière du capteur de lumière (de 0 à 1023) en plage PWM de luminosité des LED (de 0 à 255), nous utiliserons la fonction map().

Exemple de croquis :

#define PIN_LED 10 #define PIN_PHOTO_SENSOR A0 void setup() ( Serial.begin(9600); pinMode(PIN_LED, OUTPUT); ) void loop() ( int val = analogRead(PIN_PHOTO_SENSOR); Serial.println(val); int ledPower = map(val, 0, 1023, 0, 255); // Convertit la valeur résultante en niveau de signal PWM. Plus la valeur d'éclairage est faible, moins nous devons fournir d'énergie à la LED via PWM. analogWrite(PIN_LED, ledPower) ; // Changer la luminosité)

Dans le cas d'une autre méthode de connexion, dans laquelle le signal du port analogique est proportionnel au degré d'éclairage, vous devrez en plus « inverser » la valeur en la soustrayant du maximum :

Int val = 1023 – analogRead (PIN_PHOTO_RESISTOR) ;

Circuit de capteur de lumière utilisant une photorésistance et un relais

Des exemples de croquis pour travailler avec des relais sont donnés dans l'article sur la programmation des relais dans Arduino. Dans ce cas, nous n'avons pas besoin d'effectuer des mouvements complexes : après avoir déterminé « l'obscurité », nous allumons simplement le relais et appliquons la valeur correspondante à sa broche.

#define PIN_RELAY 10 #define PIN_PHOTO_SENSOR A0 void setup() ( pinMode(PIN_RELAY, OUTPUT); digitalWrite(PIN_RELAY, HIGH); ) void loop() ( int val = analogRead(PIN_PHOTO_SENSOR); if (val< 300) { // Светло, выключаем реле digitalWrite(PIN_RELAY, HIGH); } else { // Темновато, включаем лампочку digitalWrite(PIN_RELAY, LOW); } }

Conclusion

Les projets utilisant un capteur de lumière basé sur une photorésistance sont assez simples et efficaces. Vous pouvez mettre en œuvre de nombreux projets intéressants et le coût de l'équipement ne sera pas élevé. La photorésistance est connectée à l'aide d'un circuit diviseur de tension avec une résistance supplémentaire. Le capteur est connecté à un port analogique pour mesurer différents niveaux de lumière ou à un port numérique si tout ce qui nous intéresse est l'obscurité. Dans le croquis, nous lisons simplement les données d'un port analogique (ou numérique) et décidons comment réagir aux changements. Espérons que des « yeux » aussi simples apparaîtront désormais dans vos projets.