Arduino pro mini piloter pompe avec un transistor 2N2222

Bonjour useralacon

Dans ton explication, émetteur et collecteur sont inversés.
As-tu mis une diode de protection "sur" le moteur?
image
Quand ton installation dysfonctionne, est-ce que le transistor chauffe?

Avec delay() ton programme est bloqué en permanence, tu ne pourrais rien faire d'autre. Quand de longs temps sont nécessaires, il est préférable d'utiliser millis() comme proposé dans l'exemple Blink Without Delay
Voilà un exemple pour ta pompe,

const byte pompeCommande = 2;

unsigned long pompePeriode = 5000; //10*60*1000;     // 10 minutes en millisecondes
unsigned long pompePeriodeMillis = millis();
unsigned long pompeImpulsion = 1000; //10*1000;     // 10 secondes en millisecondes
unsigned long pompeImpulsionMillis = 0;

bool isLightOn = false;

void setup() 
{
	pinMode(pompeCommande, OUTPUT);
	digitalWrite(pompeCommande, LOW);
}

void loop() 
{
	if (millis()-pompePeriodeMillis >= pompePeriode)
	{
		pompePeriodeMillis = millis();     // Réarmer chrono période

		digitalWrite(pompeCommande, HIGH);     // Pompe En
		pompeImpulsionMillis = millis();     // Pompe impulsion début
	}

	if (pompeImpulsionMillis && millis()-pompeImpulsionMillis >= pompeImpulsion)     // Si fin impussion pompe
	{
		digitalWrite(pompeCommande, LOW);     // Pompe Hors
		pompeImpulsionMillis = 0;
	}
}

C'est un tout petit peu plus compliqué, mais plus pratique.
Il est "accéléré", 1 seconde toutes les 5 secondes, pour la démo, il faut enlever les remarques pour les temps réels.

unsigned long pompePeriode = 10*60*1000;     // 10 minutes en millisecondes
unsigned long pompeImpulsion = 10*1000;     // 10 secondes en millisecondes

Cordialement
jpbbricole