Bonjour à tous,
Je me retrouve confronté à un problème avec une carte Arduino Mega2560.
J'essaye de commander des relais pour commander des valves pneumatiques et un moteur 12v.
Pour débuter mes tests j'essaye d'activer/désactiver chaque relais pour vérifier le bon fonctionnement de chacun.
J'arrive à commuter les valves mais lorsque le relais passe en position fermé la carte reboot et le programme redémarre au début (Setup). Cela se passe aléatoirement, des fois une valve va commuter correctement et la fois d'après elle va planter.
J'ai fais plusieurs prototypes mais j'ai toujours le même problème. Sur le dernier je suis avec des optocoupleurs (SFH6156-2T) que je commande avec l'arduino, le relais est un IM06GR. Référence des vannes sur Amazon : B07T9F38KZ.
J'ai fais des essais avec une carte relais toute prête mais j'ai le même problème.
Le problème semble ne pas être présent si j'utilise un MOSFET (Boitier SOT23, Ref : IRLML2803) à la place de l'opto + relais.
Avec-vous une idée d’où cela pourrait venir ?
Salut.
Je suppose que tu n'a pas mis en place de diodes de roue libre sur les vannes et le moteur.
J-M-L
August 30, 2022, 8:28am
3
Postez un schéma détaillé du montage et le code de test (avec les balises de code SVP)
J'ai bien mis les diodes de roue libre (1N4148) sur tous les relais.
Je ne peux pas ajouter de pièce jointe (Nouvel utilisateur).
Le code ci-dessous :
#include "A4988.h"
#define DIRX 2
#define STEPX 3
#define DIRZ 4
#define STEPZ 5
#define MOTOR_STEPX 200
#define MOTOR_STEPZ 200
#define laser1 A11 // Capteur laser 1 (Composant présent)
//const int laser2 47 // Capteur laser 2 (Composant déposé)
#define capteurZup 10 // Limit switch Z haut
#define capteurXleft 9 // Limit switch X gauche
#define ledStatRED 24 // Led statut rouge
#define ledStatGREEN 22 // Led statut verte
//#define capteurZdown 11 // Limit switch Z bas
#define capteurXright 12 // Limit switch X droite
#define relayVibreur 14 // Relais vibreur stick 12v
#define relayPump 15 // Relais pompe aspiration 12v
#define relayPush 16 // Relais poussoir composant 12v
#define relayCut 17 // Relais pince coupante 12v
#define relayEchap 18 // Relais passage air pour décompression pince 12v
#define restartButton 19 // Bouton pour relancer le cycle de coupe après arrêt
A4988 stepperX(MOTOR_STEPX, DIRX, STEPX);
A4988 stepperZ(MOTOR_STEPZ, DIRZ, STEPZ);
void setup()
{
Serial.begin(9600);
Serial.println("***Setup***");
//Serial.println(MCUSR);
// Déclaration entrées/sorties
pinMode(ledStatRED, OUTPUT);
pinMode(ledStatGREEN, OUTPUT);
digitalWrite(ledStatRED, LOW);
digitalWrite(ledStatGREEN, LOW);
// INPUT
pinMode(restartButton, INPUT);
pinMode(laser1, INPUT_PULLUP);
//pinMode(laser2, INPUT_PULLUP);
pinMode(capteurZup, INPUT_PULLUP);
pinMode(capteurXleft, INPUT_PULLUP);
//pinMode(capteurZdown, INPUT_PULLUP);
pinMode(capteurXright, INPUT_PULLUP);
// OUTPUT
pinMode(relayVibreur, OUTPUT);
pinMode(relayPump, OUTPUT);
pinMode(relayPush, OUTPUT);
pinMode(relayCut, OUTPUT);
pinMode(relayEchap, OUTPUT);
// Tous les relais à OFF
digitalWrite(relayVibreur, LOW);
digitalWrite(relayPump, LOW);
digitalWrite(relayPush, LOW);
digitalWrite(relayCut, LOW);
digitalWrite(relayEchap, LOW);
//initialisation();
//stepperX.begin(155, 1);
//stepperZ.begin(250, 1);
stepperX.begin(15, 1);
stepperZ.begin(25, 1);
initialisation();
test();
}
void loop()
{
progBoucle();
}
Je ne parle pas des relais mais des vannes et du moteur.
Une bobine de relais est une inductance, mais une vanne et un moteur aussi.
Schema1.pdf (70,6 Ko)
Main_Coupe_Pattes.zip (3,2 Ko)
Voici mon schéma et mon code.
J'essaierais de mettre une diode sur les moteurs mais normalement avec le relais cela ne doit pas avoir d'incidence sur la carte arduino ?
Cela a une incidence sur l'alimentation, et donc sur l'ARDUINO.
Je te laisse admirer les perturbations relevées sur une alimentation 5V, sans diode de roue libre :
Et avec diode de roue libre :
system
Closed
February 26, 2023, 1:31pm
11
This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.