Problème de montage

Salut à tous,

J'ai réalisé un montage pour ventiler la cabine de ma camionnette quand je pars en vacances, avec un ventilateur 12v, voilà le montage :

J'ai 2 capteurs d'humidité : intérieur et extérieur, et plus l'humidité augmente à l'intérieur par rapport à l'extérieur, plus le ventilateur se met à tourner vite...

J'aurai souhaité mettre un interrupteur 2 positions pour soit : éteindre le système, soit l'utiliser en automatique grâce au montage, soit l'utiliser de façon manuelle, avec un potentiomètre.

Mon problème et le suivant, je ne sais pas comment modifier mon circuit !

J'ai tenté en inversant la place du mosfet et du moteur dans le circuit, et en plaçant l'interrupteur entre les deux. ça fonctionne mais lorsque l'interrupteur est en position "automatique", le moteur tourne très lentement...

Merci !

Pour commencer merci d'avoir fourni un schéma électrique plutôt que dessin de câblage.
C'est assez rare pour ne pas manquer de le signaler.

J'aurai souhaité mettre un interrupteur 2 positions pour soit : éteindre le système, soit l'utiliser en automatique grâce au montage, soit l'utiliser de façon manuelle, avec un potentiomètre.

Pour moi cela fait 3 positions :grin:

Quand tu dis "éteindre" c'est tout éteindre ou seulement stopper le ventillo ?
Si c'est tout éteindre tu coupes l'alim (efficace :grin: mais pas forcément le plus intelligent), si c'est uniquement le ventillo il y a le choix : inter sur la commande du transistor, utilisation d'un inter sur une entrée digitale pour couper la PWM de commande du moteur.

Pour le réglage manuel tu branches le potentiomètre entre Vcc et la masse, tu connectes le curseur sur une entrée analogique et tu lis la valeur avec analogRead()
Ensuite en fonction de la valeur lue il suffit de faire une règle de trois pour fixer la valeur à transmettre à analogWrite().
Juste un point : la fonction analogRead donne un résultat sur un entier de 2 octets (int), la fonction analogWrite envoie un entier sur 1 octet (byte). Pour la conversion il faudra faire un "cast" --> google "C cast"

Mode automatique ou manuel :
Le choix peut se faire avec un simple interrupteur connecté entre la masse et une entrée digitale.
Inutile d'ajouter une résistance extérieure tu peux simplement activer les résistances de tirage (pull-up) dans la déclaration pinMode (voir doc sur le site arduino)
Un niveau bas correspondra à par exemple au mode manuel et un niveau haut par exemple au mode auto.
Quelque chose comme :

if (digitalRead(X) == 1)
{
//code
}

devrait faire l'affaire pour lire les interrupteurs.
Il faudra sans aucun doute gérer les boutons par priorité : 1 Arrêt ou marche, 2 mode auto ou manuel.

Mon idée, pour la position “manuelle”, était vraiment de se passer de la carte !
Pour une raison principale, c’est que le pwm sur un moteur, ça fait du bruit !

Pour l’interrupteur, effectivement c’est bien 3 position, fermée, ouverte pour une broche, ouverte pour une autre…