Go Down

Topic: Maintien d'une variable (bistable ON / OFF) (Read 4 times) previous topic - next topic

piflechien54

Bonjour @toutes et @tous

Voilà je souhaite faire ce montage : (pour mon hexapode)

- un bp poussoir
- une led
- mon arduino

avec comme code :
Code: [Select]
if ETAT_BP==APPUI && LED==OFF => LED=ON
if ETAT_BP==APPUI && LED==ON => LED=OFF
if ETAT_BP==PAS_APPUI && LED==OFF => LED=OFF
if ETAT_BP==PAS_APPUI && LED==ON => LED=ON


En gros je cherche à coder un état bistable ON / OFF
ainsi si je relâche le bp poussoir, la led reste allumée et si je rappui, elle s'éteint.

(peut être avec une mémorisation de l'état dans une variable, mais j'ai le même problème : la variable se remet à zéro quand je relâche le bp  :( )

Merci d'avance :D
Proverbe Tibétain : Un mensonge est un saut du haut du toit

Jean-François

Tu compliques drôlement...

Code: [Select]

if (bouton==1){
led =! led;
}
MacBook intel core 2 duo  os X snow Leopard 10.6
 eMac PPc G4  os X Leopard 10.5
powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

piflechien54

@Jean-François :  :smiley-eek: et ça marche ?? pourrais-tu préciser ton idée ? stp  :smiley-slim:
Proverbe Tibétain : Un mensonge est un saut du haut du toit

Jean-François

L'état de la led est inversé à chaque appuis sur le bouton.
MacBook intel core 2 duo  os X snow Leopard 10.6
 eMac PPc G4  os X Leopard 10.5
powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

piflechien54

Ok :P
En gros cela donne ça : :smiley-roll-sweat:

Code: [Select]
const int APPUI=0;
const int PAS_APPUI=1;
const int BP=52;
const int LED=13;
int ETAT_BP;
int ETAT_LED=LOW;

void setup()
{
  pinMode(LED, OUTPUT);
  pinMode(BP, INPUT);
  digitalWrite(BP, HIGH) ;
}

void loop()
{
  ETAT_BP=digitalRead(BP);
  if (ETAT_BP==APPUI)
  {
    ETAT_LED != ETAT_LED
  }
 
  digitalWrite(LED,ETAT_LED);


j'ai bon ?  :~
Proverbe Tibétain : Un mensonge est un saut du haut du toit

Go Up