Void()

Bonsoir à tous et mes meilleurs vœux pour 2018,

N'étant pas un programmeur régulier j'ai souvent des bloquages et surtout je ne trouve pas sur le net les exemples qui me permettrais de me remettre rapidement a "niveau".

j'ai besoin d'un peu d'aide pour le passage de paramètres dans la fonction Void()

Je joint mon petit programme.

Merci d'avance.

Papoujp

Aiguille_Controle_06_01_18.ino (3.06 KB)

Bonjour,

Déjà dans ton programme il n'y a pas de fonction Void()

Le problème vient de la définition de ta fonction aiguillage(). Tu dois préciser le type du paramètre
void aiguillage(int Numero) {

D'autre par en C/C++ il n'ya a pas d'appel de fonction avec paramètre nommé.
Pour l'appel: aiguillage(1);

il y a plusieurs erreurs dans ton programme (qui ne compile pas)

  • la déclaration de la fonction aiguillage : il faut préciser le type de l'argument passé :
void aiguillage ( int num  ){...}
  • le nom de l'argument de cette fonction "Numero" est en conflit avec une variable globale déclarée en tête du programme. Utilise des noms différents.
  • 2ème ligne de la fonction, il manque un signe +
  • certaines variables sont écrites avec le signe "?" accolé

On peut dire aussi que ta variable "etat" n'a pas besoin d'être crée en variable globale. N'étant utilisée que dans la fonction loop(), il vaut mieux la créer sur la pile en la déclarant à l'intérieur de la fonction loop(). Egalement ta variable globale "Numero" ne sert à rien. Appelle directement aiguillage(1), aiguillage(2)...

Merci à vous pour la rapidité de vos réponses.

Mais je ne comprend pas.

Dans loop() si j'appuie sur un des 10 boutons poussoirs (le numéro 6 par exemple) comment dois je

appeler la routine Void aiguillage( avec un paramètre je suppose?) pour que

digitalWrite(pinMotUn,0); devienne pinMotUn6,0);
pinMotDeux6,0);
....
pinLedRouge6,1);

si j'appuie sur le B.poussoir numéro 3 pinMotUn3,1);

Je ne suis pas sur de bien me faire comprendre.

Papoujp

hello

aiguillage(1);

void aiguillage( byte Numero){
digitalWrite(pinMotUn + Numero , 0);

il semble que tu veuilles passer la sortie pinMotUn1 à LOW

mais tu ne peux pas "bricoler" les noms de variables de cette façon "nom + numéro"

si je comprends bien ton intention,le mieux est de passer par des tableaux puis en boucles "for" imbriquées si besoin

Bonsoir,

Je pensais, pourtant, m'en sortir de cette façon.

Mais si cela n'est pas possible je vais revoir ma "copie".

Merci encore.

papoujp.

hello
ou en es tu avec tes aiguillages ?