Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Technologie industrielle

Automatisez votre lampe de nuit avec Arduino : code simple et simulation Proteus

Lampe de nuit automatique utilisant Arduino – Code, fonctionnement et simulation

L'automatisation signifie essentiellement inventer une méthode qui réduit ou élimine les efforts humains. Dans ce tutoriel, nous allons expliquer comment automatiser une lampe de nuit via une simple interface entre Arduino et Relais en utilisant le logiciel Proteus. L'automatisation est le besoin de l'heure car les applications vont du contrôle de chaudière avec un simple thermostat à la gestion de grande industrie avec une grande quantité de données d'entrée et de sortie. La complexité de l'automatisation peut varier d'un contrôle basique « marche/arrêt » à des algorithmes multivariable hautement complexes comme les systèmes d'automatisation industrielle. Les systèmes de contrôle pour l'automatisation peuvent être soit en boucle ouverte, soit en boucle fermée, ce qui signifie qu'ils peuvent fonctionner soit avec un seul paramètre d'entrée, soit en réponse à la sortie réinjectée en entrée comme dans le cas des systèmes à boucle fermée.

Comme dans le cas de toute technologie, l'automatisation a aussi ses avantages et inconvénients :

Avantages

  1. Augmentation de la productivité
  2. Qualité prévisible (Amélioration de la qualité)
  3. Robustesse accrue
  4. Grande cohérence des résultats
  5. Réduction des coûts de main-d'œuvre humaine
  6. Haute précision
  7. Réduction des efforts humains dans les travaux monotones

Inconvénients

  1. Sensible aux menaces de sécurité
  2. Coût de développement peut dépasser les prévisions
  3. Coût de mise en place élevé
  4. Cause de chômage dans de nombreux secteurs

Les avantages mentionnés l'emportent largement sur les inconvénients et c'est pourquoi le monde entier entre dans l'ère de l'automatisation.

Dans ce tutoriel, nous essayons de faire allumer ou éteindre une lampe automatiquement lorsque le circuit détecte un changement appréciable dans l'intensité de la lumière et pour y parvenir, nous allons utiliser les deux outils les plus courants utilisés pour l'automatisation, c.-à-d. Arduino et Relais, et l'interface ainsi que la simulation seraient réalisées par le logiciel Proteus.

Composants requis

  1. Arduino UNO
  2. Relais 5 Volts
  3. LDR (Résistance Dépendante de la Lumière)
  4. Résistance 10K Ohms
  5. Transistor BC547
  6. Alimentation CC 5 Volts
  7. Alimentation CA 220 Volts

Logiciels requis

  1. IDE Arduino
  2. Proteus

Schéma de circuit de la lampe de nuit automatiqueAutomatisez votre lampe de nuit avec Arduino : code simple et simulation Proteus

Description des composants

Arduino UNO

Arduino est essentiellement une carte de développement open source qui utilise principalement le microcontrôleur Microchip ATmega328P et est fabriquée par Arduino.cc. La carte est livrée avec un ensemble de broches d'entrée/sortie comprenant des broches numériques et analogiques qui peuvent être interfacées à différentes cartes d'extension et circuits externes. La carte comporte 14 broches numériques ainsi que 6 broches analogiques qui sont utilisées ou rendues programmables avec l'aide d'un IDE (Environnement de Développement Intégré). Le programme est gravé via un câble USB type B.

Les méthodes d'alimentation de la carte peuvent être soit par le câble USB, soit en connectant une alimentation CC 12 volts. Du point de vue de la conception et du fonctionnement, elle n'est pas trop différente de ses autres membres de la famille, à savoir Arduino Nano et Arduino Leonardo.

STK500 est toujours le protocole original pour Uno pour communiquer. La différence majeure par rapport à ses prédécesseurs est qu'elle n'utilise pas le FTDI (puce pilote USB-série).

Automatisez votre lampe de nuit avec Arduino : code simple et simulation Proteus

Relais

Le relais est un interrupteur électromagnétique qui peut être actionné électriquement et fait pour allumer et éteindre des appareils CA/CC. Il peut être contrôlé même avec une basse tension de 5 volts comme la fournie par les broches Arduino. Il se compose d'une bobine avec des contacts métalliques d'un côté (côté basse tension) qui peut être aimanté et désaimanté pour ouvrir ou fermer le circuit attaché de l'autre côté (côté haute tension). Le côté haute tension se compose d'un connecteur avec 3 prises : commun (COM), normalement fermé (NF) et normalement ouvert (NO). Le relais existe en différentes valeurs comme 12V, 9V, 5V et 3V.

LDR

La LDR (Résistance Dépendante de la Lumière) est un composant à résistance variable qui peut faire varier sa valeur de résistance avec le changement d'intensité de la lumière et fonctionne sur le principe de la photoconductivité. La valeur de la résistance diminue avec l'augmentation de l'intensité de la lumière. Elle est utilisée dans les circuits détecteurs sensibles à la lumière et les circuits de commutation activés par la lumière.

La LDR est composée d'un semi-conducteur à haute résistance qui a une résistance en mégaohms en l'absence de lumière alors que plusieurs centaines d'ohms en présence de lumière.

Automatisez votre lampe de nuit avec Arduino : code simple et simulation Proteus

BC547 – Transistor NPN

Un transistor est essentiellement un dispositif semi-conducteur qui est employé pour amplifier ou commuter des signaux électroniques et de la puissance. Il est composé de matériau semi-conducteur et a 3 bornes pour se connecter à un circuit externe. Dans ce circuit, nous avons utilisé le BC547 qui est un transistor bipolaire à jonction NPN.

Une petite valeur de courant à sa borne de base contrôle une grande valeur de courant à ses bornes d'émetteur et de collecteur. Une tension CC fixe est requise aux bornes du transistor pour fonctionner dans la région désirée de ses courbes caractéristiques. Le transistor, quand il est utilisé pour l'amplification, est maintenu polarisé de façon à ce qu'il soit partiellement allumé pour toutes les entrées et le signal de sortie amplifié est pris à l'émetteur. Pour les applications de commutation, le transistor est polarisé de façon à ce qu'il reste complètement ALLUMÉ si le signal à la borne de base est présent et qu'il s'éteint complètement en l'absence de signal de base.

Caractéristiques

Automatisez votre lampe de nuit avec Arduino : code simple et simulation Proteus

Description des logiciels

Proteus

La suite de conception Proteus appartient à la catégorie des logiciels propriétaires qui sont employés pour effectuer l'automatisation de la conception électronique. Ce logiciel est très pratique pour les ingénieurs en conception électronique et les techniciens respectifs pour créer des schémas et les impressions sous forme électronique appelées disposition PCB. Le logiciel a été développé dans le Yorkshire, en Angleterre, par Labcenter Electronics Ltd. et dispose d'un support multilingue : anglais, français, espagnol et mandarin.

Il est mis à jour régulièrement avec de nouvelles bibliothèques composées de composants avancés à intervalles réguliers et peut être facilement ajouté à la liste existante des bibliothèques.

Ce logiciel est largement utilisé en raison de sa capacité à simuler les circuits ou microcontrôleurs. La simulation aide à comprendre le fonctionnement et le test du circuit conçu sans même utiliser les composants physiques. Son interface utilisateur donne aussi un avantage sur les autres logiciels du marché. Plus de 15 millions de composants sont disponibles dans la section bibliothèque, donc les utilisateurs n'ont pas besoin de perdre du temps à créer des empreintes ou des composants.

IDE Arduino

L'IDE Arduino est un logiciel qui peut être utilisé sur diverses plateformes. Donc, c'est une application multiplateforme et a été développé en utilisant le langage de programmation Java. Il a pour unique but d'écrire le croquis (sketch) et de le téléverser sur les cartes compatibles Arduino. Les langages supportés sont C et C++ qui sont un peu modifiés et dépendent de la bibliothèque utilisée. Diverses bibliothèques sont fournies intégrées dans le logiciel et d'autres bibliothèques peuvent être téléchargées depuis des vendeurs tiers. L'IDE utilise un programme appelé avrdude pour convertir le code en un fichier qui a un encodage hexadécimal qui est chargé sur la carte avec l'aide d'un programme de chargement qui vient préinstallé dans le firmware de la carte.

Code du projet

Explication du code

Tout d'abord, nous définissons deux variables globales de type entier. La variable analogIN est utilisée pour désigner une broche analogique qui recevra la valeur analogique du circuit et la seconde variable trigger désigne une broche numérique qui fournira une sortie de déclenchement de tension suffisante.

int analogIN = A3;

int Trigger = 12;

Le débit en bauds est réglé à 9600 bits/sec ce qui représente le taux de transmission de données. La fonction pinMode() est utilisée pour définir l'état de la broche. Ici, nous réglons la broche 12 comme sortie et la broche A3 comme entrée. Toutes ces instructions sont écrites dans la fonction void setup() et ne s'exécuteraient qu'une seule fois pendant toute la période d'exécution.

void setup() 
{
 Serial.begin(9600);
 pinMode(analogIN, INPUT);
 pinMode(Trigger, OUTPUT);
}

Selon le schéma de circuit, nous devons lire une donnée particulière qui est sous forme de valeur analogique depuis la broche A3. Pour cette tâche spécifique, nous avons utilisé la fonction analogRead() car l'entrée générée par le circuit est une valeur analogique, c'est la raison derrière l'utilisation de la broche analogique et de la fonction analogique.

Maintenant, nous obtenons cette valeur analogique depuis la broche analogique A3, puis stockons sa valeur dans la variable « value ».

Cette variable contiendra une valeur entière qui sera dans la plage de 0 à 1023 (correction : 10-bit ADC = 0-1023, pas 1234) et variera selon l'entrée analogique. C'est la valeur ADC 10 bits car Arduino est équipé d'un convertisseur ADC 10 bits.

La valeur stockée dans la variable « value » est utilisée pour exécuter l'opérateur conditionnel (if-else). À travers cet opérateur, nous définissons l'état de la broche numérique trigger comme HAUT ou BAS pour allumer et éteindre la lampe. Le principal avantage de l'affichage de la donnée stockée dans la variable « value » est que nous pouvons associer l'intensité lumineuse avec une valeur particulière et allumer la lampe à une intensité lumineuse désirée.

Le code présent à l'intérieur de la fonction « void loop() » s'exécutera répétitivement tant que l'Arduino est alimenté. Ainsi, pour s'assurer que le projet est en état de fonctionnement à tout moment, il faut s'assurer de donner une alimentation 24/7 à l'Arduino Uno utilisé ici.

void loop() {
 int value = analogRead(analogIN);
 Serial.println(value);
 if (value < 692)
 {
 digitalWrite(Trigger, HIGH);
 Serial.println("lampe est ALLUMÉE");
 }
 else {
 digitalWrite(Trigger, LOW);
 Serial.println("lampe est ÉTEINTE");
 }
 }

Comment obtenir l'emplacement du fichier Hex du code ?

Dans votre IDE Arduino, cliquez sur Fichier > Préférences, puis dans « Afficher la sortie verbose » cochez les deux options compilation et téléversement et lors de la compilation du code dans la fenêtre ci-dessous, sélectionnez et copiez l'emplacement du fichier hex et dans Proteus, double-cliquez sur Arduino et collez l'emplacement du fichier dans l'option Fichier de programme et cliquez sur OK. Maintenant, votre circuit sera prêt pour la simulation.

Vidéo de simulation

Prochainement

Fonctionnement du circuit lampe de nuit

Maintenant, nous allons discuter du fonctionnement du circuit. Ici, nous avons utilisé une alimentation CC 5V (le 5V de l'Arduino) et connecté une résistance de 10k ohm et une LDR dans un circuit diviseur de tension. La tension qui peut être prise aux bornes de la résistance ou de la LDR et envoyée dans la broche analogique de l'Arduino, broche A3 dans ce cas.

Avec l'aide du code mentionné ci-dessus, la carte sera capable de détecter l'entrée analogique fournie. Cette valeur lue est en accord avec l'intensité de la lumière détectée par la LDR.

Pendant que nous pouvons vérifier la valeur arrivant sur le moniteur série pour calibrer le circuit selon l'intensité de la lumière. Donc, nous pouvons changer la condition dans l'instruction conditionnelle fournie dans le code pour allumer la lampe « ON » et « OFF » à une intensité de lumière désirée, la rendant ainsi dynamique.

Maintenant, quand l'instruction conditionnelle est satisfaite, c.-à-d. l'intensité de la lumière tombe en dessous de la valeur fournie par vous (sous forme équivalente ADC), la carte générera une sortie « HAUT » à la broche 12. Par « HAUT », on entend qu'elle produit une sortie 5V car la broche 12.

Dans ce cas, une tension suffisante est développée à la base du transistor et le transistor commence à conduire. En résultat, le courant commence à circuler dans les bobines du relais et il s'active, ce qui signifie que la borne NO est commutée à un état actif auquel le circuit de la lampe a été connecté et à la complétion du circuit, la lampe s'allume « ON ».

La lampe s'éteint « OFF » quand la condition else dans le code devient vraie, c.-à-d. l'intensité de la lumière augmente à partir de la valeur seuil fournie par nous. Donc, la sortie à la broche 12 devient « BAS » et par conséquent le relais est éteint ce qui éteint la Lampe.

En conclusion :

Nous voulons tous faciliter notre style de vie, et c'est ce que fait la lampe de nuit automatique. Vous n'avez même pas besoin d'allumer ou d'éteindre la lampe de nuit. Elle s'allume et s'éteint automatiquement selon l'intensité de la lumière qui tombe. Quand c'est le jour, la lampe reste à l'état éteint car quand il fait sombre sur le capteur, la lampe s'allume. Le projet vous aidera à concevoir la même chose, en utilisant des composants électroniques de base. Nous avons aussi expliqué le code pour que ce ne soit pas difficile pour vous de démarrer avec Arduino.

Projets connexes :

Technologie industrielle

  1. Comment les fabricants exploitent l'automatisation pour scaler l'exécution e-commerce
  2. Créer un système Ambilight spectaculaire pour moniteur avec Arduino
  3. Construire un Voltmètre Intelligent avec Arduino et Smartphone – Projet DIY Facile
  4. Moniteur de Fréquence Cardiaque IoT en Temps Réel avec Arduino et MAX30100
  5. Serveur Web Arduino Uno WiFi : Commander une LED via Navigateur
  6. Automatiser le Jeu Chrome Dino avec Arduino et LDR
  7. Construire une Radio FM Compacte avec Arduino Nano et RDA5807M
  8. Shield de programmation Arduino sans fil avec Bluetooth HC-05 – Plus besoin d'USB
  9. Comment fonctionnent les changeurs d'outils automatiques : guide complet