j'ai un peu de mal avec l'usage des variables et conditions, notamment en sorties , les exemples trouvés étant souvent partiels, il doit me manquer quelque chose, car je n'obtiens pas ce que je veux.
En modifiant par exemple les variables rec,an et st dans le loop du code exemple suivant, j'obtiens le résultat escompté. Toutefois, en cours de programme, une ou plusieurs ligne de code doivent vraisemblablement faire appel automatiquement aux valeurs changeantes de ces mêmes variables.
Aussi avec divers essais différents, soit rien ne se produit, soit c'est invariablement le résultat d'une condition qui s'effectue sans tenir compte des éléments qui la conditionne.
int rec= 6;
int st = 10;
int an= 8;
void setup()
{
pinMode(6,OUTPUT);
pinMode(10,OUTPUT);
pinMode(12,OUTPUT);
pinMode(11,OUTPUT);
pinMode (8,OUTPUT)
}
void loop() {
rec=1; // lignes codées autrement dans un code correcte
an =0; // "
st=1; // "
if (( rec == 1) && ( st == 1)){
digitalWrite (12,HIGH);
}
else
digitalWrite (12,LOW);
if (( an == 1) && (st == 1)){
digitalWrite(11,HIGH);
}
else digitalWrite(11,LOW);
}
Les tutos à ce propos ne sont pas toujours évidents pour un débutant. Vos conseils ou renvoi à un cours plus compréhensible , voir détaillé me sera d'une aide appréciable. Merci.
La solution de Bigill m'est apparue immédiatement après réponse à Kamill, effectivement la condition se faisant avec la variable etatSortie et non la constante pin. Aussi l'ai-je déjà testée sans succès et suis désolé de n'avoir pas corrigé mon post aussitôt. Pourquoi ça ne fonctionne pas ainsi? il semblerait pourtant que.....
Quant à celle de Kamill, Bingo, c'est la bonne.
l'usage de digitalRead en sortie est rarement cité dans les exemples rencontrés, plutôt réservés aux entrées, d'où ma source d' égarement entre autre..;
Avec digital Read, on lit l'état de la pin nommée.
Avec etatSortie, on compare la valeur vraie ou fausse de la variable int affectée, par la fonction == à une référence 1 ou 0.