Go Down

Topic: projet éclairage escalier led (Read 1 time) previous topic - next topic

hbachetti

Un PIR et un bouton-poussoir n'ont pas un comportement identique.
Comme les boutons sont actifs au niveau haut, comme un PIR d'ailleurs, tu ne peux pas utiliser les pull-ups du processeur.
Pour chaque bouton-poussoir il te faut une résistance de pull-down.
Linux is like a wigwam: no Windows, no Gates, and an Apache inside ...

lesept

J'allais dire la même chose que hbachetti. Tu peux lire ceci qui explique bien ton problème. Il faut une résistance pull down comme ceci:


Tu testeras un niveau HIGH pour savoir si le bouton est appuyé.

Tu mets des ";" après les while :
Code: [Select]
    while (Etat_det_haut != HIGH); Etat_det_haut = digitalRead(Detecteurhaut);
Ça veut dire qu'il va attendre que Etat_det_haut soit LOW pour passer à l'instruction suivante (le digitalRead) mais sans jamais le lire, d'où blocage. Ce n'est pas ce que tu veux : tu veux lire le bouton en permanence et passer à la suite lorsqu'il est enfoncé. Pour ça, il faut ôter le ; (même chose plus bas)
Code: [Select]
    while (Etat_det_haut != HIGH) Etat_det_haut = digitalRead(Detecteurhaut);Petit changement de code, grosse différence de comportement !!!
A force d'essayer on finit par réussir... Donc, plus ça rate, plus on a de chances que ça marche (proverbe Sharduinok).

hbachetti

Linux is like a wigwam: no Windows, no Gates, and an Apache inside ...

Nicko_du_70

merci pour ces réponses,

si j'ai bien compris mon capteur PIR ne m'envoi pas de 0 volt aussi, il n'envoi que du 5 volt.

donc mes capteurs ne sont pas adapter



Nicko_du_70

j'ai suivi à la lettre le montage avec les bouton poussoir!

il y a une importance de mettre une résistance plus faible genre 100 ohm?

hbachetti

#20
Mar 02, 2019, 11:44 pm Last Edit: Mar 03, 2019, 12:10 am by hbachetti
Quote
si j'ai bien compris mon capteur PIR ne m'envoi pas de 0 volt aussi, il n'envoi que du 5 volt.
La sortie d'un PIR est à ZERO au repos. Un bouton poussoir ouvert est en l'air au repos.
Ce n'est pas la même chose.

Avec un PIR il n'y a pas besoin de pull-down, sinon les miens déclencheraient sans arrêt..

Quote
il y a une importance de mettre une résistance plus faible genre 100 ohm?
Quel intérêt ? Pourquoi 100Ω ?
J'aimerais bien savoir où tu as vu ça.

10K ou même 100K sont OK.
Linux is like a wigwam: no Windows, no Gates, and an Apache inside ...

Nicko_du_70

j'ai compris avec les résistances!

tout simplement u=r * i.

j'ai tester avec un bouton simple de chaque coté.

la monter se fait bien mais pas la descente.

si je recopie le programme de la monter au niveau void descendre sa marcherai?

car je comprend pas pourquoi il y a un FOR BYTE dans monter et un FOR INT dans descente.

lesept

Un byte est un entier non signé entre 0 & 255. Pour la montée, les numéros vont de 0 à la valeur maximale et restent positifs. Un byte suffit.

Pour la descente, les numéros décroissent jusqu'à passer en dessous de 0,ce qui est le critère d'arrêt. Un byte passera à 255 après être passé à 0 et la boucle ne s'arrêtera pas. En plus on aura un dépassement d'indice de tableau. Il faut donc utiliser un int dans ce cas, pour qu'il aille jusqu'à -1 et que la boucle s'arrête.

J'avais mis du temps à le trouver...
A force d'essayer on finit par réussir... Donc, plus ça rate, plus on a de chances que ça marche (proverbe Sharduinok).

hbachetti

#23
Mar 03, 2019, 09:32 pm Last Edit: Mar 03, 2019, 09:34 pm by hbachetti
Juste une petite remarque à propos des relais :

C'est bruyant et ça prend une place folle sur une carte.

Tu aurais pu facilement commander chaque bande de LEDs avec un MOSFET canal N (IRLZ44N) :



Et en plus tu aurais pu faire de l'allumage et extinction progressif (dimmer).
Linux is like a wigwam: no Windows, no Gates, and an Apache inside ...

Nicko_du_70

bonjour a tous,

merci pour ces précisions lesept,

pour le faite de ne pas avoir mis de MOSFET canal N (IRLZ44N), c'est parce que je débute dans l'arduino.

donc je résume:

si mes capteurs sont bon et que mon programme aussi, alors qu'est ce qui cloche?

je sens qu'on touche au but!!!

et par la suite j'intègre un capteur de lumière pour seulement le faire fonctionner de nuit.

lesept

Si je comprends bien, la descente ne fonctionne pas. Peux tu poster ton code en l'état actuel et préciser ce que tu fais pour dire que la descente ne marche pas ?

Un escalier qui ne marche pas ! C'est un comble...
A force d'essayer on finit par réussir... Donc, plus ça rate, plus on a de chances que ça marche (proverbe Sharduinok).

dbrion06

"si mes capteurs sont bon et que mon programme aussi, alors qu'est ce qui cloche?"

Si vous avez fait une petite faute de frappe lors de la copie des bouts de programmes, on ne peut pas la détecter (on sait déjà que la montée est bien testée; la descente a l'air de clocher).Peut être que rappeler le programme tel qu'il est (on n'a vu que tel qu'il devrait être) rendrait les choses plus faciles, avec la dernière version du programme chez vous....

Nicko_du_70

en faite j'ai analysé le programme:

quand j'appuis sur le bouton haut escalier, les led s'allume de bas en haut.
j'appuis sur bouton bas, les led s'eteigne de bas en haut.
et sa fonctionne que dans ce sens.

sinon quand j'appuis sur bouton haut deux fois d'affilé les led s'eteigne de haut en bas.
je rappuis sur bouton bas et les led se rallume de haut en bas.

donc je pense que sa vient du programme!

vous en pensez quoi?

J-M-L

On en pense qu'il faut poster le code... :)
Hello - Please do not PM me for help,  others will benefit as well if you post your question publicly on the forums.
Bonjour Pas de messages privés SVP, postez dans le forum directement pour que ça profite à tous

lesept

... Et que tu nous rappelles ce que tu veux qu'il se passe quand :
  • On commence à descendre l'escalier, et quand on arrive en bas
  • On commence à monter, et ce qu'il se passe quand on arrive en haut
  • On commence à descendre et on rebrousse chemin vers le haut
  • On commence à monter et on fait demi tour pour descendre
A force d'essayer on finit par réussir... Donc, plus ça rate, plus on a de chances que ça marche (proverbe Sharduinok).

Go Up