G
Dans ce cas c'est des OR, pas des AND dans la condition.si l'une des ldr est égal 511, je lance une fonction qui fait revenir mon panneau à l'Est
Si on faitD'ailleurs certain utilisent cette notation pour éviter les erreurs:
Oui...Tu as utilisé 4 entrées, une par ldr ?
C'est le but... si il n'y a plus de luminosité on a 1023 (511 dans mon cas puisque je divise par deux... je fais çà parce avec Serial.print dans l'editeur Teraterm l'affichagene correspondait à rien... pourquoi pfffffff ????Comment les 4 ldr peuvent voir la même luminosité ? La nuit? Mais si elles voient 1023, du coup, ca marche pas!
Exact... j'avais corrigé. Il faut que les 4 ldr soient à 511 et que servoh soit <= 25 pour lancer le retourDans ce cas c'est des OR, pas des AND dans la condition.
elles sont bien déclarées en "int"Au passage il faut vérifier que les variables soient des "int"
Non, c'est voulu. Il faut que servoh soit à 180 au début du Loop. Sa valeur est ensuite modifié en fonction du suivi.Il y a aussi une erreur la, ou du moins on n'écrit jamais de code comme ça:
if (servoh = 180)
C'est bien un problème de parenthèses !if ((tr / 2 == 511) && ( tl / 2 == 511) && ( br / 2 == 511) && (bl / 2 == 511 ))
Tout à fait !Si on fait
if (servo = 155)
On "met" 155 dans servo.
Pour une comparaison, c'est toujours
if (servo == 155)
et dans le serial moniteur de l'IDE ?C'est le but... si il n'y a plus de luminosité on a 1023 (511 dans mon cas puisque je divise par deux... je fais çà parce avec Serial.print dans l'editeur Teraterm l'affichagene correspondait à rien... pourquoi pfffffff ????
Je l'ai expliqué juste au dessus. J'avais un affichage bizarre dans l'éditeur Teraterm (qui, entre parenthèses, permet de stopper le défilement vertical en utilisant çà)Pourquoi comparer avec 511 une fois / 2 ?????
Oui...
Il faudrait plutôt les placer par 2 dans un pont de mesure. On a donc 1 entrée par point milieu.
On utilise éventuellement une autre entrée pour mesurer le flux lumineux, avec un petit panneau solaire qui alimente une résistance de faible valeur (calculée pour avoir P max), ou une photodiode pour avoir une réponse linéaire.
On pilote le servomoteur seulement si le flux est supérieur à une valeur définie.
J'ai déjà eu des soucis avec ce genre d'écriture maintenat j'assure le coup avec les parenthèses !J'ai aussi essayé
if (tr / 2 == 511 && tl / 2 == 511 && br / 2 == 511 && bl / 2 == 511)
et çà
if ((tr / 2 == 511) && (tl / 2 == 511) && (br / 2 == 511) && (bl / 2 == 511))
les deux fonctionnent à priori.
J'ai déjà eu des soucis avec ce genre d'écriture maintenat j'assure le coup avec les parenthèses !
if ( ((tr / 2) == 511) && ((tl / 2) == 511) && ((br / 2) == 511) && ((bl / 2) == 511)) )
if (var1 = my_func() == var2)
Merci pour cette écriture
Tout à fait d'accord avec toi !Je suis effaré à chaque fois que je vois du code, généralement c'est impossible de faire de la maintenance dessus.
c'est quand même pas difficile de mettre des commentaires, ca prends du temps, mais au moins on peut relire et reprendre le code des années après sans problème.
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?