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

ascenseur de service alimenté par Arduino

Composants et fournitures

Arduino Mega 2560
× 1
Micro-interrupteur de fin de course OpenBuilds
× 4

À propos de ce projet

Concevoir et tester un système de contrôle pour un ascenseur de service fonctionnant sur quatre étages. Le microcontrôleur (ATMega2560) est utilisé pour déterminer quel contacteur fournir l'alimentation afin d'activer le moteur de l'ascenseur pour déplacer l'ascenseur vers le haut ou vers le bas en vérifiant l'étage où se trouve actuellement l'ascenseur. Le système de contrôle doit également être capable d'arrêter l'alimentation de l'ascenseur lorsqu'il a atteint l'étage requis. Un facteur de sécurité intégral doit être mis en œuvre pour toujours fermer la porte de l'ascenseur avant de monter ou de descendre. Le système de contrôle est capable de déterminer avec succès quel contacteur doit être alimenté afin de déplacer l'ascenseur à l'étage souhaité. Le système est capable de contrôler le moteur de la porte de l'ascenseur de sécurité afin de fermer la porte lorsque l'ascenseur doit se déplacer et d'ouvrir la porte automatiquement lorsqu'il a atteint l'étage requis.

Vidéo de démonstration :

1.1 Câblage du moteur triphasé

Un moteur triphasé est utilisé dans cette application car cela nécessite un moteur puissant pouvant supporter une charge lourde. Le moteur triphasé est alimenté par le courant triphasé principal. L'alimentation par le réseau passe par deux contacteurs principaux. Lorsque le premier contacteur est allumé et que le deuxième contacteur est éteint, le courant passe par le premier contacteur jusqu'à l'enroulement du moteur qui déplace le moteur vers l'avant.

Lorsque le deuxième contacteur est allumé et que le premier contacteur est éteint, le courant passe par le deuxième contacteur jusqu'à l'enroulement du moteur qui déplace le moteur vers l'arrière. Notez que le câblage est différent pour le sens inverse.

1.2 Détection de sol

Afin de détecter l'étage auquel se trouve actuellement l'ascenseur, un interrupteur de fin de course est utilisé. Lorsque l'ascenseur monte ou descend, il se ferme et ouvre un interrupteur de fin de course à chaque étage. Lorsque l'ascenseur se trouve à un étage particulier, l'étage limite à cet étage particulier est fermé, indiquant au microcontrôleur à quel étage se trouve l'ascenseur. Lorsque l'ascenseur se déplace, l'interrupteur de fin de course s'ouvre, indiquant au microcontrôleur que l'ascenseur se déplace.

Le passage du signal bas au signal haut produit par l'interrupteur de fin de course lorsque l'ascenseur traverse un étage se produit en une fraction de seconde et souvent trop rapidement pour être détecté par le microcontrôleur. Les interrupteurs de fin de course sont connectés à une alimentation 5 V CC et la sortie de la borne NO (normalement ouverte) est connectée à une broche IO du microcontrôleur. Quatre interrupteurs de fin de course à quatre étages envoient des données au microcontrôleur. Cela permet au microcontrôleur de déterminer à quel étage se trouve l'ascenseur en vérifiant quelle broche est passée de bas en haut. La transition d'état d'un fin de course est illustrée dans le schéma ci-dessous :

La tâche délicate est de permettre au microcontrôleur de détecter la transition du bas vers le haut. Il existe deux méthodes pour aborder cette question. La première méthode consiste à déterminer si une broche d'interrupteur de fin de course passe à l'état HAUT dans la fonction de boucle en utilisant une condition if. Le programme essentiellement lors de l'exécution d'un autre code vérifie toujours si une broche devient HAUTE. Cela prend beaucoup de mémoire car le programme recherche constamment un signal HAUT d'une broche de fin de course. Un autre problème est que parfois le programme peut manquer cette transition car la fonction de boucle exécutait un autre code pendant qu'une transition se produisait. Afin d'éviter ces problèmes, des interruptions sont utilisées. Les interruptions interrompent essentiellement l'exécution du code et exécutent une fonction distincte lorsqu'une condition d'interruption spécifique est satisfaite. Ceci est idéal pour l'opération de levage. Lorsqu'une broche de fin de course passe de bas à haut, une fonction d'interruption est exécutée et cette fonction vérifie si l'ascenseur est à l'étage actuel et arrête l'ascenseur ou lui permet de se déplacer plus loin. Étant donné que le programme est forcé d'exécuter la fonction d'interruption lorsqu'un interrupteur de fin de course est activé, le système peut garantir que le programme ne saute pas délibérément la détection d'un étage. Le microcontrôleur utilisé pour cette application est l'Arduino Mega 2560 qui dispose de 6 broches numériques utilisables pour les interruptions, ce qui est idéal pour les quatre étages. Le premier paramètre à attachInterrupt est un numéro d'interruption. Normalement, vous devez utiliser digitalPinToInterrupt(pin) pour traduire la broche numérique réelle en numéro d'interruption spécifique. Par exemple, si vous vous connectez à la broche 3, utilisez digitalPinToInterrupt(3) comme premier paramètre pour attacherInterrupt. Il est également important de noter que la fonction delay() ne fonctionnera pas dans la fonction exécutée par la routine de service d'interruption (ISR).

Le schéma ci-dessus montre comment les interrupteurs de fin de course sont connectés au MCU. Les broches du MCU sont connectées via une résistance pull-down. Cette résistance abaisse la broche du MCU à la terre pour s'assurer qu'une lecture de basse tension est lue par le MCU lorsque l'interrupteur de fin de course est laissé ouvert. La configuration de la résistance est illustrée dans le schéma ci-dessous.

1.3 Commande de montée et de descente du moteur

Deux relais 12V CC sont utilisés pour commuter l'alimentation CA vers les contacteurs du moteur qui contrôlent sa direction (montée ou descente). Le circuit conçu à l'aide de Multisim est illustré dans le schéma ci-dessous :

Une extrémité du contacteur de bobine des deux relais est connectée à l'alimentation 12 V CC via un transistor PNP. La raison principale de cette opération est de s'assurer que le moteur n'est pas alimenté tant que la porte de l'ascenseur n'est pas fermée. Une fois la porte de l'ascenseur fermée, la broche de sortie DoorSwitch de la grille du transistor PNP est mise à la terre, garantissant que le PNP est activé pour fournir l'alimentation VCC aux deux relais. Par conséquent, le relais n'est pas activé même si le signal MotorUp ou MotorDown est HAUT. L'autre extrémité de la bobine du relais est mise à la terre via un transistor NPN. Le signal MotorUp est généré par le MCU. Lorsque le signal MotorUp est HAUT, le premier transistor NPN est activé et il tire l'autre contact de bobine à la terre pour terminer le circuit pour alimenter la bobine du relais Up pour alimenter le moteur. La même méthode est utilisée pour activer le relais de descente. Les raisons d'utiliser des transistors pour commuter les relais sont :

  • Les deux relais ont des bobines de 12VDC, il est donc nécessaire d'utiliser un transistor PNP pour commuter la partie haute (12V) de la bobine car le MCU n'est capable de produire que 5V, ce qui n'est pas suffisant pour allumer la bobine du relais.
  • Les transistors peuvent être utilisés pour allumer le relais en utilisant un courant minimal du MCU car peu de courant à travers la base du transistor l'active. Cela permet d'économiser de l'énergie dans le MCU lorsqu'il doit commuter les relais.
  • Il isole également le MCU de tout courant de retour qui peut revenir vers la broche du MCU, ce qui peut potentiellement endommager le MCU.

1.3.1 Diode flyback pour une protection supplémentaire

Une diode Flyback est installée sur les contacts de la bobine du relais pour garantir que le courant de retour a un chemin à parcourir lorsque la bobine est allumée et éteinte. Les charges inductives telles qu'une bobine dans le relais créent des pointes de tension soudaines lorsque le courant d'alimentation est soudainement interrompu. Cela ajoute une protection supplémentaire au MCU. Le schéma ci-dessous montre comment connecter une diode flyback à travers les contacteurs de bobine du relais.

1.3.2 Contrôle d'entrée utilisateur

L'utilisateur contrôle le fonctionnement de l'ascenseur à l'aide de boutons au sol. Il y a quatre boutons-poussoirs d'étage, lorsqu'ils sont enfoncés, ils indiquent au microcontrôleur que l'ascenseur doit être amené à l'étage souhaité.

Un bouton-poussoir lorsqu'il est enfoncé momentanément crée un signal HAUT puis un signal BAS lorsque l'utilisateur relâche le bouton. La tâche du microcontrôleur est d'identifier un signal HAUT à partir d'un bouton d'étage enfoncé par l'utilisateur. Cette tâche particulière n'a pas besoin d'être traitée par une interruption. Tant que l'utilisateur appuie sur le bouton pendant une période de temps suffisante, le MCU est capable d'enregistrer le signal du bouton. La tâche suivante du microcontrôleur est d'évaluer s'il faut faire tourner le moteur vers le haut ou vers le bas en fonction de l'entrée de l'utilisateur et de l'étage actuel de l'ascenseur.

Avec une programmation intelligente via des microcontrôleurs, nous pouvons éliminer le matériel supplémentaire qui aurait été nécessaire si un système était conçu uniquement par la logique et l'analogique. Le système précédent pour l'ascenseur nécessitait un commutateur directionnel supplémentaire, comme indiqué dans le schéma ci-dessous, qui était utilisé pour permettre au système d'identifier la direction dans laquelle l'ascenseur se déplace (haut ou bas).

Mais en concevant un algorithme pour maintenir l'étage actuel de l'ascenseur dans une variable et en le comparant à l'entrée de l'utilisateur a permis au système de se débarrasser complètement des commutateurs directionnels pour déterminer la direction dans laquelle l'ascenseur doit se déplacer afin d'atteindre le niveau souhaité. étage. Par exemple :dans le schéma des connexions d'entrée et de détection d'étage au MCU illustré ci-dessus, l'ascenseur indique au MCU qu'il se trouve au deuxième étage via la broche 3. Ensuite, l'utilisateur entre en appuyant sur le bouton du quatrième étage. Le MCU reçoit cette commande et compare les deux entrées. Étant donné que l'entrée de l'utilisateur, « 4 » est supérieure à l'entrée de l'interrupteur de fin de course, « 2 », le MCU envoie un signal via la broche MotorUp pour activer le transistor afin d'alimenter le relais Up.

Au fur et à mesure que l'ascenseur monte, la variable d'étage actuelle du programme est mise à jour lorsqu'elle atteint le troisième étage. Dès qu'un interrupteur de fin de course est déclenché, il est comparé à la valeur d'entrée de l'utilisateur qui dans ce cas est « 4 » et compare à nouveau cette valeur à l'étage actuel mis à jour pour déterminer si l'ascenseur s'est approché de l'étage souhaité. Une fois que l'interrupteur de fin de course du quatrième étage est déclenché, le MCU identifie que l'ascenseur s'est approché du quatrième étage et envoie un signal LOW via la broche de signal Motor Up pour arrêter l'alimentation du moteur et l'empêcher de se déplacer plus loin.

1.3.3 Isolement du contrôle des entrées

Un autre facteur important consiste à isoler le côté contrôle CC du microcontrôleur de toute interférence CA qui pourrait affecter le MCU via les entrées du système. Un problème auquel j'ai été confronté car je n'avais initialement aucun matériel d'isolation installé, les interférences CA provenant du corps métallique de l'ascenseur ont été transférées au MCU via les interrupteurs de fin de course. Même si les interrupteurs de fin de course fonctionnent sur une alimentation CC séparée, les entrées des interrupteurs de fin de course sont directement transmises au microcontrôleur, des interférences se produisent alors lorsque l'ascenseur commence à se déplacer et en raison de cette interférence CA, le MCU n'est pas en mesure d'identifier correctement l'étage de l'ascenseur est à. Pour contrer ce problème, un optocoupleur a été utilisé pour chaque entrée afin d'isoler le MCU des interférences extérieures.

Le but de l'optocoupleur est de transférer le signal d'entrée généré par l'interrupteur de fin de course d'étage au MCU via une LED et un phototransistor. Lorsque l'interrupteur de fin de course est fermé, la LED est alimentée et la lumière entrante de la LED active la porte du phototransistor qui transfère alors un signal HAUT au MCU en isolant avec succès l'entrée de l'extérieur et du MCU.

1.4 Prototype


Processus de fabrication

  1. Ascenseur
  2. Arduino Spybot
  3. FlickMote
  4. Téléviseur maison B-Gone
  5. horloge maîtresse
  6. Trouvez-moi
  7. Puissance Arduino
  8. Tech-TicTacToe
  9. Arduino quadrupède