Faire fonctionner un moteur pas-à-pas et un solénoïde

Bonjour,
Afin de concrétiser un petit projet, je cherche un montage et un programme arduino pour faire fonctionner un moteur pas à pas et un solénoïde.
Le moteur devra faire un tour complet toutes les 10 secondes et le solénoïde se déclencher toutes les 10 secondes également après un décalage de 5 secondes par rapport au moteur ; ce décalage ne devra avoir lieu qu’une seule fois au démarrage de la séquence.
Est-ce que vous auriez ça dans votre escarcelle ?
Je vous remercie par avance pour toute l’aide que vous voudrez bien m’apporter.
Cordialement
José

C'est très spécifique, je serais surpris si quelqu'un avait cela tout prêt.
Pouvez vous clarifier votre matériel ?

pour faire fonctionner un moteur pas à pas, le mieux c'est d'avoir un driver approprié. il existe ensuite des bibliothèques comme accelStepper ou stepper tout court

pour un solénoïde, il faudra protéger le système avec une diode de roue libre adéquate et sans doute un transistor pour piloter la bobine.

Merci pour ces précisions !
Effectivement, je me doutais bien que ma demande ne serait pas déjà disponible :wink:
J’ai trouvé sur le forum ou ailleurs comment faire fonctionner un moteur ou un solénoïde mais pas les deux au même temps.
Je compte sur un membre de la communauté qui aurait dû temps et de la patience à me consacrer car mes connaissances se limitent à… brancher une prise électrique :pensive:

tout s'apprend si vous êtes motivé.

Pour bien débuter avec l'arduino, un bon point de départ c'est de lire les tutos d'eskimon par exemple. c'est gratifiant de pouvoir faire ses projets :slight_smile:

Merci, je vais les lire très attentivement !

Un selenoide ne se commande pas de la même manière si c'est en courant continu ou en alternatif, ou si il s'agit d'un courant de 5mA ou de 5A.

Un pas a pas non plus cela dépend du nombre de ses fils. La bibliothèque s'il faut choisir peut aussi dépendre de la vitesse maximale.

Sans informations, c'est impossible de chercher une solution. C'est comme si on demande "comment envoyer un objet de Paris à Nice?". Il y a une différence entre une oeuvre d'art et une photo.

Que est ce qu'il faut comme informations ?

Soit les choix de la bobine et du moteur son faits, et le mieux c'est les caractéristiques, a défaut la pub d'achat à défaut la référence

Soit le choix n'est pas fait, et pour aider à faire ce choix, il faut dire à quoi cela va servir, donner la description de la machine

Lire “Les bonnes pratiques du Forum Francophone” - il y’a pas mal d’infos

En effet, je vois que je ne suis pas assez précis pour donner un sens à ma demande.
Mon projet est de réaliser une machine à recuire des pièces métalliques.
En partie haute, elle sera composée d'un distributeur automatique des pièces à recuire et sera activé par un moteur pas pas à pas, ces pièces métalliques tomberont dans un système à induction que les chauffera.
La pièce métallique sera bloquée dans le coil du système à induction par une trappe actionnée par le solénoïde.
Une fois le recuit réalisé, le solénoïde ouvrira la trappe et la pièce métallique tombera dans un bac et le cycle recommencera.
Je n'ai pas encore choisi les composants hormis le dispositif à induction.

J'espère avoir été plus explicite cette fois-ci :slightly_smiling_face:

L'Arduino permettra de gérer le solénoïde et le moteur. Et le forum peut t'aider. Mais la commande va dépendre des choix sur les composants.

J'ai toujours pensé qu'il fallait déterminer les composants avant d'écrire le logiciel.

Pour le logiciel, je ne m'en fais pas, je suis d'ailleurs en train d'écrire une bibliothèque qui permet de répondre à ce genre de problème.

Pour la partie opérative, c'est plus difficile, n'ayant pas sous la main la machine, il est difficile de savoir quel matériel choisir.

Je pense quand même a l'ouverture de la trappe. As-tu pensé à un servomoteur?

Bonjour jobel65

Donc dès le démarrage de l'application, le moteur pas à pas (MPAP) fait un tour toutes les 10 secondes, le solénoïde (SE) démarre à 5 secondes du premier démarrage de l'application, puis, 5 secondes après et est, ensuite, synchrone avec le MPAP.
La durée d'attraction du SE est fixée?

As-tu déjà une idée quand au MPAP, faut-il beaucoup d'effort? Est-ce qu'un un Nema17 courant comme le Nema17 42hs34 par exemple serait suffisant?
As-tu un lien sur le solénoïde?

A+
Cordialement
jpbbricole

Bonjour Vileroi et Jpbbricole,
Merci pour vos messages.
Vileroi : oui, j'ai pensé à un servo mais la trappe aura un ressort de rappel pour la refermer ; je ne suis pas sûr qu'un servo sot assez puissant pour l'ouvrir.

Jpbbricole : oui, je pense qu'un Nemo 17 fera tout à fait le job que je lui demande.

En fait, voila à quoi je veux arriver mais en plus simple car la machine que je vous montre me parait trop complexe pour que je puisse la réaliser : Induction annealer with latest version stepper driven case feeder. - YouTube

Joyeuses Pâques :smiley:

Bonjour jobel65

Merci pareillement :grinning:

Je pense plutôt qu'il va faire plonger ton projet :rofl: prends plutôt un Nema 17 :wink:

Un peu plus sérieux, le SE tire au moment du démarrage de MPAP?

A+
Cordialement
jpbbricole

:rofl: :rofl: :rofl:
Foutu correcteur automatique (belle excuse :smiley:).
Le MPAP démarre une séquence et fait tomber un étui dans le coil (anneau d'induction) qui va chauffer pendant 6 à 8 secondes puis déclenchement du SE afin d'ouvrir la trappe et faire tomber l'étui avant un nouveau cycle du MPAP.
Est-ce que tu as eu le temps de regarder la vidéo ?

Cordialement
José

Bonjour jobel65

Oui, c'est clair pour moi :wink:

Cordialement
jpbbricole

Je te remercie car parfois mes explications ne sont pas très... claires :woozy_face:

Perso, je ne suis pas partisan des servos, mais dans le cas présent, je pense que c'est mieux. J'ai acheté un servo le moins cher possible (SG90 à 1,13€) et je trouve qu'il est capable de forcer pas mal. Les servos ont en plus une course importante contrairement aux noyaux plongeurs. Et la consommation électrique est beaucoup plus basse. Dépêchez-vous, je dis rarement du bien des servos.

La vidéo permet de clarifier pas mal le fonctionnement notamment la différence entre le premier cycle et les suivants.

J'ai eu du mal au début avec la roue à 4 encoches.

Dans le mouvement du pas à pas, il est double, d'une part le déchargement avec un arrêt court, d'autre part le chargement avec un arrêt pendant le temps de la cuisson.

Ne faut-il pas aussi commander le système à induction? Je suppose que ce n'est pas top de le faire marcher à vide.

Bonjour
çà rappelle le projet de @beaware

Bonjour jobel65

Je t’ai fait un bout de programme pour te faire une idée. Ce n’est que de la simulation, tu peux jouer avec les paramètres :
mpapRotationTempo qui règle le tempo des mouvements du moteur pas à pas (MPAP), c’est en millisecondes.
selOnTempo qui règle le temps d’attraction du solénoïde (SEL), c’est aussi en millisecondes.

Les informations, quand au déroulement du programme sont affichés dans la console du moniteur de l’IDE Arduino à 115200.

MPAP rotation 1 tour(s) 200 pas
	Selenoide attraction OFF
	Selenoide attraction ON
MPAP rotation 1 tour(s) 200 pas
	Selenoide attraction OFF
	Selenoide attraction ON

Comme j’ai vu que tu étais débutant complet sauf pour les prises électriques :wink:, il te faut déjà te familiariser avec l’Environnement Arduino, ce bout de programme peut déjà t’aider à ça.

/*
    Name:       ARDFR_MpapSelenoide.ino
    Created:	17.04.2022
    Author:     jpbbricole
*/
//------------------------------------- Moteur pas à pas (mpap)
const int mpapPasTour = 200;

unsigned long mpapRotationTempo = 10000;
unsigned long mpapRotationMillis = millis();

//------------------------------------- Sélénoide (sel)
const int selPin = 8;     // Pin d'activation
const int selEtatOn = HIGH;     // Quel état pour activer
const boolean selCmdOn = true;     // Commande attraction
unsigned long selOnTempo = 1000;     // Temps d'attraction
unsigned long selOnMillis = 0;     // Attraction chrono

void setup()
{
	Serial.begin(115200);
	delay(500);
	
	pinMode(selPin, OUTPUT);
	digitalWrite(selPin, !selEtatOn);     // Faire chuter le sélénoide
	
	Serial.println(F("Demarrage application"));
	delay(mpapRotationTempo / 2);     // Tempo divisé par 2
	Serial.println(F("Selenoide premiere attraction decalee"));
	selAttraction(selCmdOn);     // Faire tirer se pour la première fois
	
}

void loop()
{
	//--------------------------------- mpap rotation
	if (millis()-mpapRotationMillis >= mpapRotationTempo)
	{
		selAttraction(selCmdOn);     // Faire tirer sel
		mpapRotation(1);
		
		mpapRotationMillis = millis();
	}

	//--------------------------------- sel chute
	if (selOnMillis != 0 && millis()-selOnMillis >= selOnTempo)
	{
		selAttraction(!selCmdOn);     // Faire tomber se
	}

}

void mpapRotation(int toursNombre)
{
	Serial.print("MPAP rotation " + String(toursNombre) + " tour(s) ");
	Serial.println(String(mpapPasTour) + " pas");
}

void selAttraction(boolean etatOn)
{
	Serial.print(F("\tSelenoide attraction "));
	Serial.println(etatOn ? "ON" : "OFF");
	
	if (etatOn)     // Si attraction
	{
		selOnMillis = millis();    // Début chrono impulsion
		digitalWrite(selPin, selEtatOn);
	} 
	else     // Si chute
	{
		selOnMillis = 0;    // Fin chrono impulsion
		digitalWrite(selPin, !selEtatOn);
	}
}

Si le programme est ce que tu attends, je pourrais te guider pour le choix du MPAP ainsi que de son interface.

A+
Cordialement
jpbbricole