Jeedouino + Arduino + Mosfet (IRF520)

Bonjour tout le monde !

Je vous présente mon code pour contrôler un dimmer IRF520 avec un Arduino depuis le plugin Jeedouino. C’est un MOSFET qui reçoit une valeur en PWM de 0 à 255.
J’ai mis énormément de temps à comprendre ce fonctionnement sans trouver d’exemple pertinent sur le web ! Voici donc le code à utiliser dans le Sketch fourni par Jeedouino !

UserVars :
int fan = 6;

void UserSetup()
{
pinMode(6, OUTPUT);
analogWrite(6,0); // Met le variateur à 0 lorsque l'Arduino s'allume (dépend du besoin).
}
 
void UserAction()
{
for (int i = 1; i < n; i++)
  {
     if ( isDigit(c[i]) ) 
     c[i] = c[i] - '0'; // conversion simple char(ascii) vers int
  }

int pin_id = 100 * int(c[1]) + 10 * int(c[2]) + int(c[3]); // Numero de pin: 500 et +
int multiple = 1;
int value = 0;

// Contrôle ce que Jeedom envoie sur les pins virtuels désirés 
switch (pin_id) {

  case 500:

      // Récupération de la valeur envoyée par Jeedom sur le Pin 500
      for (int i = n-1; i > 3; i--)
        {
          value += int(c[i]) * multiple;
          multiple *= 10;
        }
      value *= 1,9921875;
      analogWrite(fan, value);
      jeedom += '&';
      jeedom += 500;
      jeedom += '=';
      jeedom += value;
      break;
  }
} 
2 « J'aime »

Bonjour et merci pour ce partage
Ma question est la suivante : pourquoi n’utilisez vous pas une sortie en mode pwr ?

Bonjour !

Je ne connais pas ce terme « sortie en mode pwr » O.o

C 'est à dire en utilisant juste un GPIO du Raspberry ? j’avais besoin de gérer des ventilateurs en 12v du coup le Raspberry est un peu faiblard avec ces GPIO si c’est ça ^^
En tout cas je veux bien plus d’explications j’suis curieux de savoir c’que c’est :stuck_out_tongue:

OK je comprends mieux
vous pouvez jeter un œil ici mais c’est pour une commande par un arduino cette explication est valable pour les sorties de type rapport cyclique.
Les mofset chauffent moins en commutation en plus vous pouvez faire une commande de type overshoot https://studylibfr.com/doc/4638990/le-transistor-mos-de-puissance—mosfet–
Voici le lien pour une explication des sortie de type pwm : https://www.locoduino.org/spip.php?article47

1 « J'aime »

Bon du coup j’ai essayé de lire ces 2 liens mais c’est surtout que je n’ai pas le niveau en électricité pour comprendre tout ça ^^
Le code que je mettais ici c’était surtout pour utiliser un sketch d’Arduino spécifique au plugin Jeedouino et qui est introuvable sur le web avec pédagogie. Tous les tuto existants sont d’une complexité sans nom et n’expliquent pas correctement le fonctionnement de ce sketch (ça mériterait une belle doc).
Pour m’en sortir j’ai du croiser les tuto et tester un peu toutes les possibilités jusqu’à obtenir un résultat et faire mes déductions moi-même ^^
J’épargne donc ce travail à tout ceux qui vont découvrir cet enfer ^^

2 « J'aime »

Je comprends je n’utilise pas jeeduino donc je peux vous dire si mettre un io en pwm est possible.
L’avantage est d’avoir une commande tout ou rien suivant la puissance utilisée, la dissipation du transistor est plus faible qu’en linéaire c’était mon idée :wink:
Dans tout les cas merci pour le partage

Slt et merci pour le partage . Que faudrait t il pour utiliser la sortie pwm du raspberry en direct ?
Et de voir la vitesse du fan sur la dashboard ?
Je vois que le plugin jeedouino permet d’utiliser la sortie pwm uniquement avec un arduino connecté , et pas en direct ? Je me demande pourquoi ? Peut être @revlys peut le savoir ?
J’utilise mon nfa4x10 controllable en pwm sur une gpio du raspberry et cela fonctionne bien , avec un script python ou avec le controleur de fan du linux buster integrer. Mais je ne sais pas comment faire l’integration avec la dashboard jeedom :sleepy:

Slt !
Alors le PWM du GPIO du Raspberry n’est pas implémenté dans Jeedouino… C’est dommage j’aurais préféré aussi les utiliser directement au lieu de passer par l’Arduino.
Je pense qu’avec le plugin Script il doit y avoir moyen de s’en sortir en stockant les valeurs dans des variables globales et en les affichant sur le Dashboard.

Slt, Auriez-tu une idée de comment faire le script ? Faut t il simplement faire un copier coller d’un script de github ?

Alors oui le script est à coder comme si c’était sur le Raspberry classiquement sauf que les résultats peuvent être transmis à Jeedom par les Variables
Jeedom peut exécuter ce script sur déclanchement ou programmation ensuite.

Bonjour,

Peut-être dans la prochaine beta…

Bonne journée.

1 « J'aime »