1x12w Kos Poser Blanc À Lampe Noir pLMVSGqUz
Lampes5044683 Lampe Plongée Led De Lenser D14 76vybfYg
Go Down
Pages: [1]

Topic: probléme pour faire un bistable(Read 4048 times) previous topic - next topic

Lampes5044683 Lampe Plongée Led De Lenser D14 76vybfYg
Bonjour à tous!

je vient juste de me mettre à la programmation de l'arduino (je commence donc par des choses simple), le matérielle: un bp en DG8 monté de la maniére suivante:

+5V
Sans Lights Lampeslumière Tea Submersible Operated Battery Flamme Candle Blanche 36pcs Led Étanche Pnk0Ow             I
I
\
\
I_ _ _ _ _ PIN 8
IWTrépied Lampe Led 1800mm 2x De Chantier Flow Mw 50 Télescopique 1TlK3FJc
[  ]
I  I
I  I     R= 10 Kohms
[  ]
I
I
MASSE

et la led de la carte sur la DG13.

Le début du code est le suivant:

int led=13;
int bp=8;
int etat=0;

void setup ()
{Lampes5044683 Lampe Plongée Led De Lenser D14 76vybfYg
pinMode (bp,INPUT);
pinMode (led,OUTPUT);

}

void loop()
{
etat=digitalRead (bp);
if (etat==HIGH) {
digitalWrite (led,HIGH);
}
}

Jusqu'ici pas de probléme >> si appui sur BP, led = 1 (avec etat stable aprés relachement du BP.Lampes5044683 Lampe Plongée Led De Lenser D14 76vybfYg
la ou cela se complique c'est pour faire retomber la sortie 13 à 0.

J'ai essayé plusieurs possibiltés mais sans succés, donc si quelqu'un à une idée?
le fonctionnement vulu est celui du bistable.

Salutatins FD
Lampes5044683 Lampe Plongée Led De Lenser D14 76vybfYg

Lampes5044683 Lampe Plongée Led De Lenser D14 76vybfYg

zener57

  • Guest
Salut
essaye avec ça:int led=13;
int bp=8;
int etat=0;

void setup ()
{
pinMode (bp,INPUT);
pinMode (led,OUTPUT);

}

void loop()
Torche Led Mécanicien Rechargeable Voiture Travail De Garage Magnétique Maison Cob Clh8 Lampe 4RAj3L5{
etat=digitalRead (bp);

digitalWrite (led,etat);

}
@+
william

Lampes5044683 Lampe Plongée Led De Lenser D14 76vybfYg

Lampes5044683 Lampe Plongée Led De Lenser D14 76vybfYg

Lampe Chevet PoserDe Opaline Blanche À Vintage Ancien Verre strCQhxdoB

FD

  • Guest
#2 Lampes5044683 Lampe Plongée Led De Lenser D14 76vybfYg
Mar 15, 2010, 06:10 pm
Bonjour Zener57,

j'ai rentré ton code dans la puce et la, la led s'allume bien lorsque j'appui sur le bp et retombe au relachement du bp.

en fait cela fonctionne maintenant en monostable.

il faudrais que la led reste à 1 aprés relachement du bp et passe à 0 à l'appui suivant sur le bp.

merci pour ton aide.

Salutations FD
LmPour Eclairage Vidéoamp; Lampe E27 Fixation 55w Dans Led 220v 5400°k6600 Lede27900 Illustar Support Studio De Photo 8n0wXPOk

Poser Pas Cher A Arc Achat Vente Lampe 13FJcTlK

Bidouille

  • Guest
Bonsoir,
Si je comprends bien, tu veux faire un bistable : T'appuis 1 coup, ça s'allume, tu rappuis un coup et ça s'éteint.

Si c'est cela :
- Tu rajoutes une variable "bascule" que tu mets à O
- après appuis sur le bouton, tu mets un if pour tester "bascule"

if (bascule = O)
bascule = 1
tu allumes la led
else
bascule = 0Lampes5044683 Lampe Plongée Led De Lenser D14 76vybfYg
tu éteins la led

Y a peut être moyen de supprimer la variable "bascule" et de simplement lire l'etat de la sortie qui commande la led mais n'étant pas ( encore  ) un pro de l'arduino, ça ne reste qu'une supposition ( qu'il faudra que je teste )

A+

Lampes5044683 Lampe Plongée Led De Lenser D14 76vybfYg

Bidouille

  • Guest
#4
Mar 15, 2010, 08:20 pm Lampes5044683 Lampe Plongée Led De Lenser D14 76vybfYg
Lampes5044683 Lampe Plongée Led De Lenser D14 76vybfYg
Il doit manquer un truc concernant l'inter : il faut attendre la relachement avant de continuer car sinon, ça va basculer en permanence :

Lecture bouton
while (bouton =1 )
if (bascule = O)
bascule = 1
tu allumes la led
else
bascule = 0
tu éteins la led

A+Lampes5044683 Lampe Plongée Led De Lenser D14 76vybfYg

Lampes5044683 Lampe Plongée Led De Lenser D14 76vybfYg
#5
Mar 15, 2010, 09:13 pm Lampes5044683 Lampe Plongée Led De Lenser D14 76vybfYg
Salut,Cinterrupteur Legrand Mosaic Variateur W 600 TlFK1cJ

j'avais répondu sur l'autre post avant de voir que bidouille avait répondu ici. FD, vois si tu peux supprimer le doublon.

C'est le principe du telerupteur.
En gros, il te faut mémoriser l'appui sur le bp pour ne traiter la comparaison entre l'etat de la led et l'état du bp qu'une seule fois jusqu'au prochain appuie.

Ci-dessous un code à optimiser.

Gromain



Code: [Select]
														
															
25 D'extérieurLes Tendances Pour 2019 Luminaires FKTJlc31
int led=13;
int bp=8;
int etat=0;
boolean mem_etat_led=false;
boolean mem_front_bp=false;

void setup ()
{
pinMode (bp,INPUT);
pinMode (led,OUTPUT);
// digitalWrite (bp,HIGH); // permet d'activer la résistance de pull-up interne à l'atmega si besoin
Serial.begin(9600);
}
void loop()
{
etat=digitalRead(bp);

if (etat && !mem_etat_led && !mem_front_bp) {Porsche Vesuvio Vcentrum 993 Carrera 911 EditionOferta S De9W2YHEI
digitalWrite (led,HIGH);
mem_etat_led=true;
mem_front_bp=true;  //memorisation appuie sur bp
Serial.println("on");
}
else if(etat && mem_etat_led && !mem_front_bp){
digitalWrite (led,LOW);
mem_etat_led=false;
mem_front_bp=true;  //memorisation appuie sur bp
Serial.println("off");
}
Lampes5044683 Lampe Plongée Led De Lenser D14 76vybfYg
if (!etat) {
mem_front_bp=false;  //raz memoire sur relachement du bp
}

delay(10); // pour filtrer les rebonds du contact si besoin

}Lampes5044683 Lampe Plongée Led De Lenser D14 76vybfYg

"pour résoudre un gros problème, il est souvent plus facile de le diviser en petits problèmes élémentaires..."

projet domotique xPLDuino
Lampes5044683 Lampe Plongée Led De Lenser D14 76vybfYgIRC: freenode #xplduino

zener57

  • Guest
#6
Poche L2 Plongée Led Lampe Marine 30000lm 7x Xm Torche L De Sous Étanche XZPkiu
Mar 15, 2010, 09:16 pm Last Edit: Mar 15, 2010, 09:18 pm by zener57ReasonLampes5044683 Lampe Plongée Led De Lenser D14 76vybfYg : 1
salut
désolé,car suite à la lecture de ton explication ,je n'avais pas saisie
en plus BISTABLE
plus simple que gromain
voir pour les debounces


int led=13;Schwamm Nano Crevettes Mini Set Innenfilter Pat Filter Eau Aquarium F1clKJ
int bp=8;
int etat=0;

void setup ()
{
pinMode (bp,INPUT);
pinMode (led,OUTPUT);

}

void loop()
{
if (digitalRead(bp) == HIGH  && etat == 0) {Lampes5044683 Lampe Plongée Led De Lenser D14 76vybfYg
BPlow();
etat=1;

}

if (digitalRead(bp) == HIGH  && etat == 1) {
BPlow();
etat=0;

}

digitalWrite (led,etat);

}
void BPlow()
{Lampe Jouet Réacteur En Mk2 Science 11 Arc Led Lumière Stock Modèle Diy Tony À Coffre Poitrine trhxQdCs
do
{

} while (digitalRead(bp) == HIGH);
Prix 2016 Diamond Icon Black Frontale Lampe Ivyfgb76y f76ygvYb}

@+
William

FD

  • Guest
Lampes5044683 Lampe Plongée Led De Lenser D14 76vybfYg
#7
Mar 17, 2010, 06:09 pm
Lampes5044683 Lampe Plongée Led De Lenser D14 76vybfYg
Bonsoir Mrs.

j'ai testé vos codes et je vous confirme que les 2 fonctionnent !

Je vous remercie d'avoir pris sur votre temps, je vais decortiquer les deux sketchs de m.Zener57  et Gromain59 afin de comprendre comment cela fonctionne. Un débutant doit bien debuter, car je ne suis pas du tout familiarisé avec ce language (que je trouve putot complexe par rapport à d'autres comme le basic  par ex.)

encore une fois merci, et désolés pour le temps de réponse mais le travail...

Sautations FD

Bidouille

  • Guest
  • Lampes5044683 Lampe Plongée Led De Lenser D14 76vybfYg
Bonsoir,

Si tu veux un tuto progressif mais en anglais :  http://www.earthshinedesign.co.uk/ASKManual/Site/ASKManual.html

A+

zener57

Lampes5044683 Lampe Plongée Led De Lenser D14 76vybfYg
  • Guest
#9
Mar 19, 2010, 05:32 pm Lampes5044683 Lampe Plongée Led De Lenser D14 76vybfYg
Salut et merci Bidouille
pour ce lien,car des petites choses interressantes.
@+
William
Lampes5044683 Lampe Plongée Led De Lenser D14 76vybfYg

Go Up
Pages: [1]

Lampes5044683 Lampe Plongée Led De Lenser D14 76vybfYg