Go Down

Topic: Valeur de retour de fonction [RÉSOLU] (Read 422 times) previous topic - next topic

Arzou

Apr 19, 2019, 09:25 pm Last Edit: Apr 22, 2019, 10:25 pm by Arzou
bonsoir a tous,
nouveau sur ce forum et sur arduino que je decouvre
petite présentation,
 
58 ans, j'ai commencé en 1980 avec un ZX 81 !!! en kit!
programmation en basic puis évolution jusqu'au pc et programmation en turbo basic puis turbo pascal !(merci borland!)
mais j'ai abandonné la programmation depuis les années 1998... boulot, famille, etc...
j'ai découvert l'arduino par un autre forum Photovoltaïque qui grâce a l'arduino certains on créer un kit de gestion de l'énergie! ca m'a donné l'envie de m'y remettre et depuis 3 semaine je me suis replongé dans la programmation avec mon kit de démarrage!
bref le C je ne connaissait pas  trop mais je m'y suis remis..
et là je butte:  alors désolé si je suis bête , si la programmation semble bizarre etc, soyez indulgents svp
 

bon, mon problème: j'ai ecrit une fonction qui, apres avoir lut une LDR, doit me retourner une information s'il fait jour ou non

et ca ne marche pas!

 
Code: [Select]
   bool detection_fin_jour()
{   
    bool fait_jour; // variable temporaire  de l état de la journée
    int LDRValue = analogRead(LDR);
   {   
       if(LDRValue<=700)fait_jour=nuit; else fait_jour=jour; // jour:true ou nuit:false?
   }
   return(fait_jour);
}


quand j'appelle cette fonction avec

Code: [Select]

  etat= detection_fin_jour;


Absolument rien ne se passe, j'ai placé  dans la fonction des sorties vers serial.println.... pour pister son fonctionnement  et la fonction n'est jamais appelée pourquoi?
j'ai utilisé le bout de code directement dans le loop() et il fonctionne..
quelqu'un pourrait m'aider a comprendre ce qu'il (ne)  se passe ?(pas?)

Ps mon petit projet est d'automatiser la fermeture de mon poulailler car un renard à exterminé mon poulailler en 9j ours! 2 poules tous les 2 jours!  >:(  >:(

Merci

"Si vous voulez juste marcher vite, marchez seul, Mais si vous voulez marcher loin, marchez ensemble"
Proverbe Africain.

icare

Bonjour,
Tu n'es pas dans la bonne rubrique, ta question n'a rien à voir avec des "Tutoriels et Cours".
Il faut impérativement lire les messages épinglés.
Pour une nouvelle question, ill faut voir ici
Demande au modérateur de déplacer ton topic.
@+
2B OR NOT(2B) = FF
Arduino 1.0.5 à 1.8.5 + gEdit + Ubuntu 18.04 LTS

lesept

Essaye

 
Code: [Select]
etat= detection_fin_jour() ;

Mais après avoir demandé le déplacement de ton message uniquement...
A force d'essayer on finit par réussir... Donc, plus ça rate, plus on a de chances que ça marche (proverbe Sharduinok).

dbrion06

Outre la modification préconisée par lesept (difference entre invocation d'une fonction -ce que vous souhaitez- et son adresse), votre code sera plus concis (donc plus facile à lire dans 3 mois) ainsi
Code: [Select]

   bool detection_fin_jour() {   
 
   return(analogRead(LDR)> 700); // jour= valeur > seuil
}

Arzou

#4
Apr 20, 2019, 07:46 pm Last Edit: Apr 20, 2019, 09:16 pm by Arzou
Toutes mes excuses pour cette erreur d'aiguillage icare,
Leset
Et bien.. je vous remercie! Effectivement ca marche..
 Si j'ai bien compris, en oublian les ()  j'affecte a "etat " l'adresse memoire dela fonction ? Je comprends mieux pourquoi ca marchait pas!
Lesept , Dbrion06, merci du conseil !
Genial ce forum.... merci  a vous
"Si vous voulez juste marcher vite, marchez seul, Mais si vous voulez marcher loin, marchez ensemble"
Proverbe Africain.

Go Up