Pb lecture cellule photoelectrique

Bonjour,

bon voila;
débutant en Arduino,je me suis lancé sur un projet de porte de poulailler dont l'ensemble de la réalisation a été trouvé ici

j'ai juste rajouté un panneau solaire pour la batterie et un régulateur de tension 5v pour la carte Arduino
je suis passé par un lm295 pour la partie moteur qui alimente un moteur d,imprimante le site est très bien fait il y un script pour le réglage du moteur en montée et descente qui fonctionne tres bien.
le problème:
la porte s'ouvre mais ne se referme pas le signal de la ldr n'est pas géré en analogique mais en 0 ou 1
j,ai tenté plusieurs manip couper le signal sur la pin D2 remplacer la ldr par une résistance de 100 homs ect
je n'arrive pas a comprendre le script surtout la partie ldr et savoir si ma ldr (resistance cablage) est bonne

d'avance merci de votre aide

voici le montage

IMG_0175.jpg

Rien ne t'empêche de le lire en analogique et d'agir en fonction du niveau lu. Essaye le code fourni en exemple sur cette page pour visualiser le niveau en fonction de la luminosité :

int analogPin = A3; // potentiometer wiper (middle terminal) connected to analog pin 3
                    // outside leads to ground and +5V
int val = 0;  // variable to store the value read

void setup() {
  Serial.begin(9600);           //  setup serial
}

void loop() {
  val = analogRead(analogPin);  // read the input pin
  Serial.println(val);          // debug value
}

Bien sûr, il faut brancher la LDR sur la pin A3.

Un autre exemple ici, avec le montage :

alors essai concluant

jour = 200 et nuit = 1020 avec résistance de 10 k

jour = 60 et nuit = 1000 avec résistance de 47 ohms (celle qui se rapproche le plus du montage) la fourchette de réglage est plus grande du coup c'est mieux

j'ai aussi changé les polarités (un peu inquiet quand même mais çà a marché) pour me rapprocher au plus prés de mon montage
jour = 960 et nuit = 0 les résultats parle d'eux même on inverse le signal

donc dans l’idéal il faudrait que passe de la pin D2 a la pin A3 et que j’intègre mes résultats au programme pour commander les moteurs
concernant le programme c'est pas une mince affaire quand même

"je n’arrive pas a comprendre le script surtout la partie ldr "

si on détecte un changement d’ état de la pin2 alors :
1a)si la pin 2 est low (volts sur D2 < 2,5 volts)
on ouvre (en respectant le temps de montée obtenue par le script moteur )
1b)si autre (volts sur D2 > 2,5 volts)
on attend 40 minutes !!
puis on ferme(en respectant le temps de descente obtenue par le script moteur )
2 ) on stoppe le moteur
puis on archive la valeur journuit (elle servira de point de comparaison pour un futur
changement d’ état)
ect…

ça c’est se que dit le programme et la datasheat de l’ atméga 328 (hight= haut =superieur a 2v5 .)

ce que dit pouiellec 77:
“lorsque la nuit est présente, la résistance est alors infinie et bloque le courant, l’entrée de la pin ‘D2’ passe en niveau bas, la porte peut se fermer.”

conclusion==>!!!..

… le câblage…
on est dans une configuration pull up (la ldr remplace le bouton poussoir)
masse ===ldr ===pin D2===resistance de pup====plus 5v

…les tests…
si vous faites des essai ou des test en positionnant votre doigt sur le coté ou devant la cellule pensez que votre programme comporte des instruction bloquantes ,delay,
style 40 minutes.

merci pour cet éclairage qui me permet d'avancer un peu plus

la tension mesuré entre D2 et +5v ne varie pas énormément avec la luminosité,
en jour on a 4.7v et en nuit 5v.
Effectivement je suis loin d'activer le changement haut et bas de D2 d’où m'a question doit je changer la valeur de ma résistance qui a l'heure actuelle est de 47 ohms pour arriver a jongler aux environ des 2.5V.

une autre question le fait d'avoir débrancher la pin D2 aurais du me déclencher un changement d’état?
sachant que j'ai bien pris en compte le délay de 40 min et réduit a 4 sec

"....ne varie pas énormément avec la luminosité,
en jour on a 4.7v et en nuit 5v."

vous :
" alors essai concluant
jour = 200 et nuit = 1020 avec résistance de 10 k.. "

normalement le convertisseur analogique numérique a fait son travail
5volts =1024 conversion sur 10 bits
(ps:normalement en rien envoyant sur "aref")
(5:1024)x1020=4v98 et (5:1024)x200=0,97v
en effet la solution de lesept montre qu' avec se câblage on a ces valeurs de tensions
donc il faut rester sur 10 khoms.

en général en résistance de pullup ou pulldown on est a 10 k ou a 4,7k a cause de la pull up interne activée , 47 homs c' est trop peu!

donc normalement si on câble sur D2 au lieu de A0 avec une résistance de 10k , et bien sur sous réserve d'autres erreurs dans le prog , ça pourrai le faire.( a tester)

"débrancher la pin D2 aurais du me déclencher un changement d'état?"
tout dépend l' état de la ldr au moment ou vous avez débranché, de plus une pin
numérique en entrée , en l' air , c'est tout "parasité".

en fait je m’était suis trompé sur la valeur de la résistance et effectivement avec une 47k j'active bien le changement d’état sur D2.

j'ai du changer int IsJourLast=HIGH; en LOW sinon rien ne se lance

il y a une autre problématique mais a vérifier quand même pour les essais j'ai du réduire le temps de fermeture a la nuit tombée ça fonctionne très bien mais j'ai voulu remettre 40 minutes et la, la porte ne s'est pas refermée.
je vais refaire quelques essai pour vérifier.

Finalement l'erreur a du bon, Grace a vous je comprend un peu mieux l’interaction entre le signal analogique et numérique
j'ai un peu regardé le pullup pulldown si je comprend bien suivant comment câble on peut inverser l’état sur la pin?

en tout cas un grand merci a vous deux