garder un relais alimenté malgré l'arrivé d'une autre commande

Bonsoir,

je vous explique mon problème dont je ne trouve pas de solutions.

j'envoi sur le port USB de l'arduino a partir d'un port USB du rasberrypi 2 des commandes au format numérique allant de 5 à 9 dont voici le code :

void loop()
{
  if (Serial.available())  {
    message = Serial.read()-'0';  // on soustrait le caractère 0, qui vaut 48 en ASCII
     if (message == 5){
       rf_send(902887872);
    } else if (message == 6){
      rf_send(969996736);
    } else if (message == 7){
      digitalWrite(pinRelais, LOW);
    } else if (message == 8){
      digitalWrite(pinRelais, HIGH);
    } else if (message == 9){
      float t = sensor.read();
      Serial.println(t,1);         // temperature is displayed with 1 decimal places
    }
  }

tout fonctionne à merveille, j'arrive a actionner mon relais (message 7 pour l'actionner et 8 pour l'arreter) ou a envoyer des données en radio fréquence (message 5 et 6)

Le problème est le suivant : si par exemple j'envoi le message 7 depuis mon raspberry à l'arduino, le relais de la platine relais connecter à la pin 8 de mon arduino va s'actionner sans problème mais si j'envoi une autre commande comme par exemple la 6 pour envoyer une trame en radiofréquence 433 mhz. La le relais va s'éteindre !
En faite j'ai remarqué dés que j'envoi une commande après avoir allumé le relais celui ci s'éteint !

pourtant j'alimente la platine relais en 5 volts séparément de l'arduino.
Je vous ai joint mon sketch complet si vous voyez une erreur :

#include <RCSwitch.h> // on inclus la bibliotheque RC-Switch
#include <Wire.h>   // library used with I2C protocol pour la sonde de T
#include <TCN75A.h>  // pour la sonde de T

// pour descendre les volets : 969996736
// pour monter les volets :    902887872

RCSwitch rf_cmd = RCSwitch(); // initialisation
const char rf_mode = 32; // mode 32 bits
const char rf_pin = 10; // l'emetteur est connecte au pin 10 de l'arduino
int message = 0;

// defini la sortie utilisé pour la carte relais du pelet
int pinRelais = 8;

TCN75A sensor; // pour la sonde de T

void setup(){
  Serial.begin(9600);
  //commandes RF 433 des volets roulants
  rf_cmd.enableTransmit(rf_pin); // emetteur sur la broche 10
  rf_cmd.setProtocol(2); // par defaut le protocole utilisé est le 1, mais les commandes OTIO utilisent le 2
  rf_cmd.setRepeatTransmit(3); // on repete la transmission 3 fois pour etre sur qu'elle arrive bien
  rf_cmd.setPulseLength(700); //
  //definis la sortie pour le poele a pellets
  pinMode(pinRelais, OUTPUT);  
  digitalWrite(pinRelais, HIGH); //on ouvre le relais au demarrage
  //definis pour la sonde de T
  int w_reg;
  sensor.begin();
  sensor.set_address(0);
  sensor.set_resolution(3);  
}

void rf_send(unsigned long rf_code) {
  rf_cmd.send(rf_code, rf_mode);
}

void loop()
{
  if (Serial.available())  {
    message = Serial.read()-'0';  // on soustrait le caractère 0, qui vaut 48 en ASCII
     if (message == 5){
       rf_send(902887872);
    } else if (message == 6){
      rf_send(969996736);
    } else if (message == 7){
      digitalWrite(pinRelais, LOW);
    } else if (message == 8){
      digitalWrite(pinRelais, HIGH);
    } else if (message == 9){
      float t = sensor.read();
      Serial.println(t,1);         // temperature is displayed with 1 decimal places
    }
  }
}

et voici une photo de mon montage :

D'avance je vous remercie pour votre aide !

hello
as tu inversé deux sorties de façon à voir si le prob reste bien sur la pinoche 8?
branche ton relais sur la 12 par exemple ( voir si libre) et change ton code pour commander la 12

Bonsoir,

Dans ton code, je ne vois rien de particulier.

Il pourrait te manquer un 0V sur ta carte relais ? (sans explication)

Bonjour,
En priorité, à l'aide d'un voltmètre, voir si la tension sur la pin 8 est correcte et suit les commandes (maintenue).
cela permettra de scinder Arduino et platine relais.
Si tu n'as pas de voltmètre, utiliser une DEL. (dois-je préciser avec une R en série ?)

Bonsoir merçi pour vos réponse,

alors j'ai essayé sur une autre pin mais toujours le même problème.
et j'ai mesuré lorsque j'envoi une commande autre a l'arduino et que le relais est alimenté je perd le 5 volts sur celui ci ! Donc je pense que le soucis doit provenir de la carte relais en elle meme !

es tu sur de l'utiliser correctement?
tu n'as pas par exemple un shunt à mettre entre un "gnd" et un "commun"

Bonjour,
peux-tu t'assurer que le rasberrypi n’envoie pas des 8 à ton insu ?