Go Down

Topic: [Resolu] Problème de relais qui bloque des actions (Read 1 time) previous topic - next topic

J-M-L

Le pendant de digitalWrite est, comme son nom l'indique, digitalRead...
qie se passerait-il si vous changiez
Code: [Select]

  if ((Reception == LOW))
{

par
Code: [Select]

if (LOW == digitalRead(Reception) {

?
GRRRR ça m'énerve :) quand je vois ce genre d'erreurs... et dire que ça part d'une bonne intention avec des noms de constantes pour les pins qui contiennent le mot pin...
Code: [Select]
const byte pinLed0 = 8; // Led Verte Test bon
const byte pinLEDB = 9; // Led Rouge Test mauvais


mais ensuite la mauvaise habitude revient
Code: [Select]
const byte Envoie = 7;
const byte Reception = 6;

et bingo ça loupe pas, on compare un N° de pin avec HIGH ou LOW.

alors que si on avait eu
Code: [Select]
const byte Numero_de_la_pin_de_Reception = 6;clairement en écrivant
Code: [Select]
if (Numero_de_la_pin_de_Reception == LOW) {...[tout de suite on voit que c'est idiot....

m'enfin...
Hello - Please do not PM me for help,  others will benefit as well if you post your question publicly on the forums.
Bonjour Pas de messages privés SVP, postez dans le forum directement pour que ça profite à tous

dbrion06

Par les canicules, faut pas s'énerver pour si peu.... (je suis raisonnablement sûr que, par des températures normales, cette erreur aurait sauté aux yeux de Monsieur Posteur)

J-M-L

Hello - Please do not PM me for help,  others will benefit as well if you post your question publicly on the forums.
Bonjour Pas de messages privés SVP, postez dans le forum directement pour que ça profite à tous

dbrion06

Je sais pas décoder les smileys (je ne sais qu'un peu d'arabe, de portugais, d'espagnol, d'américain, d'allemand, de kurmanji, de merina et de kalderash, je me mettrai aux néo hiéroglyphes un jour)

Hikashiro

#124
Today at 02:09 pm Last Edit: Today at 02:16 pm by Hikashiro
Hum je ne comprend pas vraiment mon erreur ^^"

C'est une histoire d'écriture c'est ça ?

Voilà le code :

Code: [Select]

const byte pinLed0 = 8; // Led Verte Test PASS
const byte pinLEDB = 9; // Led Rouge Test NOK
const byte pinReception = 6;
const byte pinEnvoie = 7;

void setup()
{
  pinMode(pinLed0, OUTPUT);
  pinMode(pinLEDB, OUTPUT);

  pinMode(pinEnvoie, OUTPUT);
  pinMode(pinReception, INPUT);
}

void loop()
{
  digitalWrite(pinLed0, LOW);
  digitalWrite(pinLEDB, LOW);
  digitalWrite(pinEnvoie, HIGH);

  if (digitalRead(pinReception == HIGH))
  {
    digitalWrite(pinLed0, HIGH);
  } else {
    digitalWrite(pinLEDB, HIGH);
  }
}


ça ne fonctionne pas.. Maintenant le programme m'allume la LED verte à chaque fois malgré que je simule un fils coupé ^^"

Edit je viens de relire le poste de J-M-L, il semblerais que mon erreur sois pour HIGH et LOW ^^"

kamill

La parenthèse est mal placée
Ce n'est pas
Code: [Select]
 if (digitalRead(pinReception == HIGH))
mais
Code: [Select]
 if (digitalRead(pinReception) == HIGH)

dbrion06

si, au lieu d'écrire
Code: [Select]
if (digitalRead(pinReception == HIGH))
{

vous aviez écrit

Code: [Select]

if (HIGH == digitalRead(pinReception) {


le compilateur se serait révolté, et vous auriez tout naturellement rajouté la parenthèse manquante.

Hikashiro

Cela ne fonctionne toujours pas. Il trouve à mon entré d'arduino toujours un HIGH même si je simule un câble coupé. ^^"

Go Up