Programmer 3 capteurs

Bonjour à toutes et à tous,
Je suis en terminal S SI et j'ai un projet qui consiste à "améliorer" une fendeuse à bois. Pour cela j'utilise 3 capteurs, un inductif, un à effet hall, et un de poids. J'ai déjà fait un programme malheureusement je sais qu'il est bourré d'erreur et de faux pas. Si vous pourriez m'aider ce serait génial ! Mon but est bien évidement que ce programme fonctionne mais que je comprenne pourquoi.

//Constantes
const int weight = 7;
const int electromagnet = 8;
const int inductivesensor = 9;
const int buton = 2;

//Variables
int inductivesensor = false;
int electromagnet = false;
int weight = 0;
int counter = 0;
int systèmedelevage = false
int verin = false

void setup() {
Serial.begin(9600);
pinMode(weight, OUTPUT);
pinMode(electromagnet, OUTPUT);
pinMode(inductivesensor, OUTPUT);
pinMode(buton, INPUT);
}

void loop() {
Repeat
Serial.print("Reading");
float p = readWeight();
Serial.print("p");
Serial.print("kg");

if (p > 20)
{
if (electromagnet = false && inductivesensor = false)
{
ceinturedelevage = true;
systèmedelevage = true;
capo = true;
electromagnet = 1;
verin = true;
inductivesensor = 1;
counter = ++;
vérin = true;
inductivesensor = 0;
electromagnet = 0;
capo = false;
systèmedelevage = true;
ceinturedelevage = true;
}
else if (electromagnet = false && inductivesensor = true)
{
machine = 0;
}
else if (electromagnet = true && inductivesensor = true)
{
machine = 0;
}
else if (electromagnet = true && inductivesensor = false)
{
machine = 0;
}
else if (p < 20)
{
delay(2000)
}

}

Si vous trouvez que j'ai fait n'importe quoi, moi aussi. C'est pourquoi je sollicite votre aide. Je répondrais immédiatement si vous avez des questions et si vous ne comprenez pas où est ce que j'ai voulu en venir avec ce programme.
En vous souhaitant une bonne soirée,
Ambre

Lis les messages épinglés en haut du forum, puis, mets ton code entre balises code.

Les comparaisons, en C, c'est par == et non par =
Quand tu fais :

 if ( electromagnet = false )

1 - le programme met electromagnet à false (effet de bord catastrophique)
2 - il évalue l'expression electromagnet = false, qui vaut la valeur affectée, c-à-d false
3 - le if ( ... ) est donc toujours faux et le code qui suis jamais exécuté.

      counter = ++;

Tu veux probablement dire

counter++;

Hello, et c'est pour quand?

int systèmedelevage = falsePas d'accent dans les noms de variable, et une ligne doit finir par un point virgule.

Les déclarations de pin sont bizarres : d'un côté

int inductivesensor = false;
int electromagnet = false;
int weight = 0;

de l'autre

  pinMode(weight, OUTPUT);
  pinMode(electromagnet, OUTPUT);
  pinMode(inductivesensor, OUTPUT);

Les 3 sont donc une seule déclaration de la pin 0

  RepeatWTF ? ? ?

  Serial.print("p");
  Serial.print("kg");

Ceci écrit "pkg" dans la console.

      ceinturedelevage = true;Cette variable n'est pas définie, de même que 'capo', 'verin'

      capo = true;Cette ligne est suivie de quelques autres lignes d'affectations de variables, et ensuite vient
      capo = false;. Ça ne sert à rien...

    }
    else if (electromagnet = false && inductivesensor = true)
    {
      machine = 0;
    }
    else if (electromagnet = true && inductivesensor = true)
    {
      machine = 0;
    }
    else if (electromagnet = true && inductivesensor = false)
    {
      machine = 0;
    }

Outre les "==", faire 3 fois la même chose pour 3 conditions différentes est une perte de temps.

      inductivesensor = 1;'inductivesensor ' est un numéro de pin !!!

Bref, un gros travail à faire sur le code en perspective...