Arduino , question Youtube , commande moteur 220V bistable avec minuteur

Aujourd’hui on va répondre à une question d’un abonné , Albert Bert 77ans , cool il n’y a pas d’âge pour l’aduino.

Il souhaiterait câbler un moteur 220V et automatiser le temps de rotation et inverser le sens de rotation.

Il n’a jamais codé et aimerai que je fasse un tuto pour son projet.

Et bien c’est ce que l’on va faire avec un petit bonus!

Capture Commentaire Albert Ligne

Tuto Youtube Moteur Bistable

En matériel il nous faut :
– 1 Arduino
– 2 à 4 boutons (bouton poussoir industriel pour faire une belle boite)
– 2 à 4 résistances (1kΩ)
– 2 relais ( ou un module avec 2 relais )
– 1 potentiomètre 10kΩ ( option bonus)

Niveau câblage le pin 7 est relié a un côté du bouton (bouton automatique), on ajoute une résistance entre la masse et le pin 7, le pin 6 même principe que le pin 7 mais relié a un autre bouton (bouton stop).

Si on souhaite ajouter les 2 boutons suivant, 1 va gérer le sens horaire et l’autre l’anti-horaire pin 5 et pin 4. On oublie pas de câbler l’autre côté des boutons au 5 Volt.

 

Le pin 3 va être relié à un côté du relais et le pin 2 au deuxième relais; l’autre côté du relais toujours coté bobine est relié à la masse.

ATTENTION ! ne pas brancher un relais nu directement sur l’arduino comme sur le schéma, il faut rajouter une diode de rappel (flyback) ou diode tvs ou circuit Snubber ( résistance + condensateur), normalement aucun souci avec les modules relais pour arduino ( déjà protégés)

 

En bonus j’ai rajouté un potentiomètre pour pouvoir régler la vitesse du mode automatique ( minuterie ) donc pour le branchement sur un coté le 5 Volt de l’autre la masse et au milieu on se connecte a la borne A0 de l’arduino.

 

Niveau motorisation 220V pour changer le sens du moteur Albert Bert va s’en charger car je n’ai pas le moteur sous les yeux mais il ma dit qu’avec 2 relais pour lui c’était bon !

 

Au niveau du code , j’ai toutes mes variables définies avec #define , mes variable de potentiomètre, variables pour le mode automatique et mes variables de temps , tempsMax est le temps avant que le moteur s’arrête en mode auto ( le temps est exprimé en ms ).

Si je souhaite jouer avec le potentiomètre je peux mettre un tempsMax de 10 secondes (10000) et régler la valeur en tournant le potentiomètre

 

Partie setup , je défini mes boutons en INPUT et mes relais en OUTPUT

Dans la boucle je récupère la valeur du potentiomètre avec analogRead et je calcule le temps additionnel pour le mode automatique ( si je commente la ligne temps additionnel je désactive la fonction du potentiomètre ce qui donne

//tempsAdditionnel = ( map(val, 0, 1023, 0, 21) * 1000 );

 

Ici je rajoute entre 0s et 20 secondes a mon temps (0,21).

 

Je vais maintenant passer en revue tous les boutons, si mon bouton automatique est activé alors je lance la fonction automatic.

Si j’appuie sur le bouton stop je coupe le mode automatique, je repart au début du mode automatique et j’arrête les moteurs avec la fonction stopMoteur.

J’ai mes boutons horaire et antihoraire ou je remet le modeAuto à 0 et le mode automatisé au début, j’arrête les moteurs au cas ou et j’appelle la fonction associé suivant le sens voulu.

J’ai maintenant une condition pour stopper le mode automatique, si je suis en mode auto et que ma séquence de mode automatique est 1 ou 3 et que le temps est écoulé alors je lance la fonction automatic qui va faire passer à l’étape suivante.

Ici le mode automatique à besoin que j’appuie sur le bouton automatique pour que mon moteur reparte dans l’autre sens.

Si je souhaite que le moteur change de sens automatiquement sans avoir à appuyer sur le bouton je rajoute un appel à la fonction automatic ( automatic(); ) et la indéfiniment mon moteur va tourner dans un sens , puis dans l’autre!

Je suis sorti de ma boucle loop, et j’ai mes fonctions pour le moteur avec le sensHoraire et le sensAntiHoraire , j’active un relais , j’éteins l’autre.

Puis ma fonction automatic, je met le modeAuto a 1 et j’incrémente l’étape du mode automatique.

 

J’ai un switch qui va aiguiller l’étape du mode automatique :

  • la case par défaut  est l’arrêt des moteurs
  • la case 1 arrête le moteur si il est en route, enregistre le temps de repère et lance le sensHoraire
  • la case 2 un stopMoteur
  • la case 3 comme la case 1 mais dans le sens anti horaire
  • la case 4 un stop.

Et ma dernière fonction stopMoteur qui arrête les relais et met un temps de pause après.

Voici le code arduino à télécharger : Tuto Moteur Bistable

Voila Albert Bert j’espère vous avoir répondu et que vous allez pouvoir réaliser ce montage sur votre moteur. N’oubliez pas de m’envoyer une petite photo de votre montage fini !

J’espère que ce tuto va aussi servir à pas mal de bricoleurs et n’oubliez pas à faire un retour sur vos montages.

📌 FAQ – Commander un moteur 220V avec Arduino, relais bistables et minuteur

Q : Quel est l’objectif de ce projet ?
R : Ce projet vise à contrôler un moteur 220V en permettant :

  • La rotation dans le sens horaire ou antihoraire.

  • Un arrêt manuel.

  • Un mode automatique avec inversion du sens de rotation après un temps défini.

Le tout est géré par un Arduino, des relais et des boutons poussoirs.


Q : Quels composants sont nécessaires ?
R :

  • 1 Arduino (Uno, Nano ou équivalent).

  • 2 relais pour commuter le moteur.

  • 4 boutons poussoirs : Auto, Stop, Horaire, Antihoraire.

  • 1 potentiomètre 10kΩ pour ajuster la durée du mode automatique.

  • Résistances de 1kΩ pour les boutons.

  • Un moteur 220V.


Q : Comment fonctionne le mode automatique ?
R : En mode automatique :

  1. Le moteur tourne dans un sens pendant une durée définie par le potentiomètre.

  2. Il s’arrête.

  3. Il repart dans le sens opposé pour la même durée.

  4. Le cycle se répète jusqu’à l’arrêt manuel.

Le code utilise la fonction millis() pour mesurer le temps écoulé sans bloquer l’exécution.


Q : Est-il sûr de contrôler un moteur 220V avec Arduino ?
R : Oui, à condition de respecter les précautions suivantes :

  • Utiliser des relais adaptés à la tension et au courant du moteur.

  • Isoler correctement les parties haute tension.

  • Ne jamais manipuler le circuit sous tension.

  • Si vous n’êtes pas sûr, consultez un professionnel.


Q : Peut-on ajuster la durée du mode automatique ?
R : Oui, le potentiomètre permet de régler la durée entre 20 secondes et 41 secondes. La valeur lue est mappée pour obtenir le temps souhaité.


Q : Le projet est-il adapté aux débutants ?
R : Ce projet est accessible aux débutants ayant des connaissances de base en Arduino et en électronique. Il offre une excellente opportunité d’apprentissage.

🔗 À découvrir aussi sur Retro&Geek

👉 Utiliser un moteur pas à pas 28BYJ-48 avec ULN2003A
Apprenez à contrôler des moteurs pas à pas pour des mouvements précis dans vos projets Arduino.

👉 Créer une télécommande infrarouge avec Arduino
Contrôlez vos projets électroniques à distance grâce à une télécommande infrarouge.

👉 Configurer le module Bluetooth HC-05 pour Arduino
Ajoutez une connectivité sans fil à vos projets Arduino pour les contrôler via Bluetooth.

👉 Utiliser un écran LCD 16×2 avec Arduino
Affichez des informations en temps réel sur un écran LCD, complément idéal pour vos projets Arduino.

N’hésitez pas à poser vos questions sur les réseaux sociaux de la chaîne instagramtwitter , facebook ,youtube ; si vous ne comprenez pas certaines parties du tutoriel n’hésitez pas , me dire ce que vous aimeriez que je crée pour en faire des vidéos tutoriel  et à partager les projets que vous aimeriez créer etc…

Comme toujours allez sur la page de C’est quoi Retro et Geek pour connaître tout ce que je recherche à faire sur la chaîne.

Merci les RetroGeeker et RetroGeekeuse