Comment commander une sortie avec 4 boutons ?

Bonjour

je souhaiterais controler une sortie en fontion de l'etat de 4 bouttons poussoir,

voici le fonctionnement que je souhaiterais realiser:

A l'allumage de l'arduino la sortie pwm est activé à (on vas dire 20%)

l'ors de l'appui sur le BP1, la sortie passe à 100% (la faire varié progressivement serais un plus)

BP1 toujours appuyé, si on appuis sur BP2 la sortie reviens à 20%

BP1 ET BP2 toujours appuyé, si j'appuis sur BP3 la sortie passe à 0

et quelque soit la position des BPs 1; 2; et 3, si j'appuis sur BP4 la sortie passe à 100%

ce programme est t'il realisable ?

et comment le faire ?

Merci .

Bonsoir
C'est réalisable, comment le faire ?
Etudier la gestion des boutons... les pwm....
De bonnes explications se trouvent dans les tutoriels conseillés aux débutants
Voir la seconde Règle du Forum Francophone.

merci d'avoir répondu !

j'ai déjà quelque connaissance sur les boutons et le pwm

En gros pour BP1 et BP2 j'y arrive mais après je bloque.

je ne cherche pas a ce que quelqu'un me face le programme,
ce que j'ai besoin c'est d'une aide pour structurer le programme.

car je n'y arrive pas avec la combinaison des boutons.

OK
Le mieux serait de montrer içi le code actuel (dans le corps du message et entre les balises appropriées)
Qu'est ce qui empếche d'étendre à BP1+BP2+BP3 ce qui marche pour BP1+BP2 ?

Le mieux, avant de coder c'est de dessiner un petit organigramme avec les différents états et les actions qui permettent de passer d'un état à l'autre.
Si l'organigramme est clair et exhaustif, le code devrait sortir tout seul (ou presque).
Entre nous, le fonctionnement que tu cherches à obtenir est légèrement tordu. Appuyer 3 boutons ensembles pour obtenir l'un des états, c'est soit un exercice de style, soit la conception d'une lampe de chevet pour organiste.

Bonjour,

je suis pas chez moi donc je peux pas mettre le code maintenant, je pense que je cherche a faire trop simple ou alors je me complique la vie !

mon programme est du style

si BP1=1 alors sortie =100%
si BP2=1 alors sortie =20%
sauf que comme c'est une boucle ça clignote, si je met un while a la place de "si BP2" ça marche mais le programme est bloqué (logique vous me direz)et je peux plus faire la suite !!

je pense ne pas utiliser les bonnes instructions

je réessaierais chez moi ce soir.

Tu ferais bien de regarder le tuto sur les machines à états. Ce que tu cherches à faire correspond typiquement à l'utilisation d'un tel système.

fdufnews:
Tu ferais bien de regarder le tuto sur les machines à états. Ce que tu cherches à faire correspond typiquement à l'utilisation d'un tel système.

j'ai étudié le tuto mais il n'y a rien a faire j'y arrive pas

du coup j'ai fait ça

    //définie les pins des entrées
#define BP1  2
#define BP2  3
#define BP3  4
#define BP4  5

    //définie  les pins de sorties
#define Led  11

void setup() {
  
   //définie les pins  entrées en pullup
  pinMode(2, INPUT_PULLUP);
  pinMode(3, INPUT_PULLUP);
  pinMode(4, INPUT_PULLUP);
  pinMode(5, INPUT_PULLUP);
  
 
  //Définie les pins  sortie
    pinMode(11, OUTPUT);
	
}



void loop() {
   
 // Appuis sur BP1, la led s'allume à 100%

if(digitalRead(BP1) == 0 && digitalRead(BP2) == 1 && digitalRead(BP3) == 1)
      
   {
   digitalWrite(Led, HIGH);
   delay(10);
   }
   
      
 // appuis sur BP1 ET BP2, la led s'allume a 20%  
if(digitalRead(BP1) == 0 && digitalRead(BP2) == 0 && digitalRead(BP3) == 1)
   {
    analogWrite(Led, 50);
    //delay(50);
   }
  
   
  // appuis sue BP1 ET BP2, la led s'eteint
if(digitalRead(BP1) == 0 && digitalRead(BP2) == 0 && digitalRead(BP3) == 0)
   {
   digitalWrite(Led,LOW);
   //delay(50);
   }
  else 
   {
    analogWrite(Led, 50);  // si aucun appuis sur les BP 
   }

  // appuis sur BP4 la led s'allume a 100% quelque soit la position des autres BP 

while(digitalRead(BP4) == 0)  
   {
    digitalWrite(Led, HIGH);
    //delay(10);
   }
   
 
}

c'est pas top mais ça fait ce que je voulais,

chose étrange et que je lui aie pas demandé, si j'appuis sur BP1 ET BP3 la led passe a 20% .