Ascenseur de service intelligent à 4 étages piloté par Arduino Mega 2560
Composants et fournitures
| Arduino Mega 2560 | × | 1 |
| Micro interrupteur de fin de course OpenBuilds | × | 4 |
À propos de ce projet
Conception et test d'un système de contrôle pour un ascenseur de service desservant quatre étages. Le microcontrôleur (ATMega2560) détermine quel contacteur alimenter pour actionner le moteur de l'ascenseur (montée ou descente) en vérifiant l'étage actuel. Le système doit aussi couper l'alimentation lorsque l'étage souhaité est atteint. Un facteur de sécurité intégral impose la fermeture de la porte avant tout mouvement. Le système contrôle également le moteur de la porte pour la fermer avant le déplacement et l'ouvrir automatiquement à l'arrivée.
Vidéo de démonstration
[Vidéo non incluse dans le texte source]
1.1 Câblage moteur triphasé
Un moteur triphasé est utilisé pour sa capacité à gérer de lourdes charges. Il est alimenté par le réseau triphasé principal via deux contacteurs principaux. Lorsque le premier contacteur est activé et le second désactivé, le courant passe par le premier vers les enroulements du moteur, le faisant tourner dans le sens direct (montée).

Lorsque le second contacteur est activé et le premier désactivé, le courant passe par le second contacteur vers les enroulements, inversant le sens de rotation (descente). Le câblage diffère pour la marche arrière.

1.2 Détection d'étage
Pour détecter l'étage actuel, un interrupteur de fin de course est utilisé par étage. Lorsque l'ascenseur arrive à un étage, le contacteur correspondant se ferme, signalant la position au microcontrôleur. Pendant le déplacement, le contacteur s'ouvre.

La transition bas-haut du signal se produit en une fraction de seconde, trop rapide pour être détectée fiablement dans une boucle classique. Les interrupteurs sont alimentés en 5V CC et leur sortie NO (normalement ouvert) est connectée à une broche d'entrée du microcontrôleur. Quatre interrupteurs (un par étage) envoient les données.

Solution : les interruptions (Interrupts). Elles mettent en pause l'exécution du code principal pour exécuter une fonction dédiée (ISR) dès qu'une condition est remplie (front montant). C'est idéal : le programme ne peut pas "rater" un étage. L'Arduino Mega 2560 dispose de 6 broches d'interruption, parfait pour 4 étages.

Les broches sont reliées via des résistances de tirage vers le bas (pull-down) pour garantir une lecture LOW quand l'interrupteur est ouvert.

1.3 Contrôle montée/descente du moteur
Deux relais 12V CC commutent l'alimentation secteur vers les contacteurs du moteur pour contrôler le sens (montée/descente). Le circuit conçu sous Multisim :

Une extrémité de la bobine de chaque relais est connectée à l'alimentation 12V via un transistor PNP. Cela garantit que le moteur n'est alimenté que lorsque la porte est fermée. Une fois la porte close, la sortie DoorSwitch met la base du PNP à la masse, l'activant pour fournir le 12V aux deux relais. L'autre extrémité de la bobine est tirée à la masse via un transistor NPN piloté par les signaux MotorUp ou MotorDown du MCU.
Raisons d'utiliser des transistors :
- Les relais ont des bobines 12V ; le MCU ne fournit que 5V. Le PNP commute le côté haute tension (12V).
- Les transistors nécessitent peu de courant de base, économisant l'énergie du MCU.
- Ils isolent le MCU des courants de retour potentiellement destructeurs.
1.3.1 Diode de roue libre pour protection supplémentaire
Une diode de roue libre est placée aux bornes de chaque bobine de relais pour absorber les pics de tension inductifs lors de la coupure, protégeant le MCU.

1.3.2 Contrôle par entrées utilisateur
L'utilisateur commande l'ascenseur via 4 boutons poussoirs (un par étage). Une pression génère un signal HIGH momentané. Le MCU détecte cette pression et décide d'activer la montée ou la descente en comparant l'étage demandé à l'étage actuel.


Grâce à la programmation, on élimine le commutateur de direction matériel nécessaire dans les systèmes purement logiques. L'algorithme mémorise l'étage actuel dans une variable et la compare à l'entrée utilisateur. Exemple : ascenseur au 2ème étage (Pin 3 HIGH), utilisateur demande le 4ème. 4 > 2 → signal MotorUp. À chaque étage franchi, la variable se met à jour via l'interruption. Au 4ème étage, le MCU coupe MotorUp.
1.3.3 Isolation du contrôle vis-à-vis des entrées
Des perturbations AC provenant de la structure métallique de l'ascenseur interféraient avec le MCU via les interrupteurs de fin de course (malgré leur alimentation DC séparée). Solution : un optocoupleur par entrée.

L'optocoupleur transmet le signal via une LED et un phototransistor : quand l'interrupteur se ferme, la LED s'allume, activant le phototransistor qui envoie un signal HIGH au MCU, isolant galvaniquement l'entrée du MCU.
1.4 Prototype



Processus de fabrication
- Ascenseurs : conception, histoire et innovations futures
- Construire un Spybot Arduino piloté par Bluetooth
- FlickMote : Télécommande IR à gestes pour maison connectée
- TV-B-Gone DIY Arduino : Télécommande universelle pour toutes les TV
- Construire une horloge maître LED personnalisée avec alarme – Visible à 12 mètres
- Find Me : Localisateur d'objets intelligent avec Arduino et Bluetooth
- Solutions d'alimentation optimisées pour projets Arduino
- Morpion sur matrice LED MAX7219 avec boîtier en carton
- Construire un robot quadrupède Arduino intelligent : guide étape par étape