Programme Relais Arduino Bluetooth

Hello,

J'essaye de contrôler la pompe d'un Aquarium directement via une application mobile (AppInventor), j'ai donc relié ma carte Arduino à une carte 1Sheeld, puis ai branché un relais entre la pompe et le montage Arduino.
Mais le Bluetooth ne marche pas :confused:
Je voulais une aide concernant le programme, je suis un peu perdu, j'utilise la variable "3" pour éteindre la pompe et la variable "4" pour que la pompe soit allumée.

Si des personnes savent comment faire pour contrôler un relais via Arduino + 1Sheeld, je suis preneur

Je cherche aussi à savoir si c'est possible de faire un retour, par exemple que le programme détecte si la pompe est bien en marche, sans que je lui en donne l'ordre (prévoir les défaillances, les arrêts non planifiés de la pompe ect..)

Si des gens peuvent m'aider sur cela, ce serait vraiment génial !

Pour le schéma, c'est juste l'arduino avec la 1Sheeld branché sur l'arduino, puis le relais est relié à l'arduino (COM 12 je crois)

Pour le code, je te met le code complet du programme, qui comprend en + la température de l'aquarium, la gestion du néon (en fonction de l'heure/mois), le PH de l'eau, si vous voyez des erreurs/imperfections, ce ne sera que bénéfique pour moi

bonjour,

    if(recus=3)

ca veut dire que recus prend 3 et non égal
avec == ca le fera mieux

Merci pour cette précision, je l'ai corrigé.
Maintenant, le programme a l'air de marcher mais quand on appuie sur 4, sur le bluetooth, "bPump" prend bien 4
Mais quand on appuie sur 3, "bPump" prend 0, c'est là le problème

hello
je pense que tu ne devrais lire le "if bluetooth..." qu'une seule fois dans ta loop et traiter ensuite la valeur de "reçus" dans chacune de tes fonctions

idem pour

etatPump == HIGH;

tu confonds les = et ==

pourquoi faire 36 if?

  if(recus==3)
    {

    digitalWrite(pump, HIGH); 
      blueToothSerial.flush();
    }
    if(recus==4)
    {
    digitalWrite(pump, LOW); 
      blueToothSerial.flush();
    }
      }
   Terminal.print("pompe:");
     Terminal.println(BPump);

Hello,
J'ai changé le programme, et maintenant je reçois 6086 en valeur
Je pense que cela vient de la "RTC" que l'on a rajouté dans le programme principal.

Le programme est ici : Programme Arduino - Pastebin.com

La partie de la Pump est ici :

void Pump()
{
  int BPump; 
if (blueToothSerial.available())
   {
   recus=blueToothSerial.read();
   
      if(recus==3)
    {
    BPump=3;
    digitalWrite(pump, HIGH); 
      blueToothSerial.flush();
    }
    if(recus==4)
    {
      BPump=4;
    digitalWrite(pump, LOW); 
      blueToothSerial.flush();
    }
    }
   Terminal.print("pompe:");
     Terminal.println(BPump);
   
    digitalWrite(pump, etatPump); 
    Terminal.print("pompe:");
    Terminal.println(BPump);
}