Choix aléatoire parmi des led sélectionnées

Bonjour à toutes et tous !

Dans le cadre d'un mouvement de jeunesse, pour l'animation d'un groupe d'enfants, je devrais réaliser le montage décrit ci-après. J'ai tenté de décrire au mieux le projet mais si un truc est pas clair, pas hésiter à me le dire.

Si chacune des étapes n'est pas trop difficile en soi, arriver à "combiner" ces étapes est hors de mes compétences ... Je découvre l'outil arduino et je suis une vraie quiche en programmation :wink:

Déjà un tout grand merci pour vos conseils et votre aide !

Objectif :
Sélectionner aléatoirement une led parmi un certain nombre de led présélectionnées.

Dispositif :
Une alimentation
9 led
1 bouton poussoir par led (donc 9 au total)
Un bouton « start »
Un bouton « reset »
Un interrupteur « on/off »

Etape 0 : Mise sous tension
L’interrupteur doit être placé sur « on » (il ferme le circuit et permet la mise sous tension de l’arduino).

Etape 1 : Sélectionner le nombre de led (sur max 9 led)
Chaque led est associée à un bouton poussoir.
Pour sélectionner une led, on appuie une fois sur le bouton poussoir qui lui est associé.
Lorsque le bouton poussoir a été appuyé, la led concernée s’allume et reste allumée.
Si on appuie à nouveau sur le bouton poussoir d’une led qui avait été sélectionnée, et donc allumée, celle-ci est désélectionnée et donc s’éteint.

Au final de la sélection, si on a sélectionné 3 led, elles sont toutes les 3 allumées et les autres sont toutes éteintes. Si on a sélectionné 6 led, elles sont toutes les 6 allumées et les autres sont toutes éteintes, etc.

Etape 2 : Animation lumineuse avec les led sélectionnées
On appuie sur le bouton « start ».
Pendant une durée prédéfinie (qui est une durée fixe et prévue dans le code, par exemple 5 secondes) les led sélectionnées s’allument et s’éteignent comme un chenillard.

Etape 3 : Déterminer aléatoirement une des led sélectionnées
Après le temps sélectionné (donc par exemple 5 secondes), le programme choisi aléatoirement une seule des led préalablement sélectionnée en la laissant allumée et en éteignant toutes les autres. Cette led reste allumée tant que le bouton « reset » n’a pas été utilisé.

A chaque étape
On peut appuyer le bouton « reset », ce qui éteint toutes les led et qui relance l’étape 1.

Salut,

ton système semble plutôt simple à réaliser, je suis très étonné que tu n'ais pas réussi à faire un semblant de quelque chose ?
tu as écrit un bout de code ?

Bonjour

Pour alimenter 9 leds, il faudra beaucoup plus de courant que ne pourrait fournir un arduino tout seul, et en ajoutant 9 sorties pour les leds à 7 entrées/sorties nécessaires pour la matrice des boutons, ça va faire beaucoup trop d'entrées/sorties.

L'utilisation d'un bandeau de 10 leds de type WS2812B simplifiera énormément le câblage et réduira le coût total du montage et ça libérera autant d'entrées/sorties qui pourront êtres
utilisées pour la matrice des boutons.

( En plus, avec ce type de leds, on peut choisir la couleur qui nous plaît. :smiley: )


Quelques liens sur ce forum pour l'inspiration :

Cordialement.

Ça ressemble bigrement à un projet scolaire… mais bon comme votre compte a été ouvert il y a quelques années déjà (un seul post ?) ce ne doit pas être le cas ??

C’est typiquement une définition de programme qui se prête bien à la programmation par machine à états (cf mon tuto éventuellement)

Pour tirer aléatoirement il y a la fonction random() (à utiliser avec randomSeed() ) et si vous voulez mélanger un tableau il y a l’algorithme de Mélange de Fisher-Yates

Grand merci pour vos premières réponses !

@ alex_vrc
Comme dit dans la description, faire chacune des parties est effectivement plutôt simple. Allumer / éteindre une led, etc. Mais la difficulté réside dans le fait de tenir compte (détecter) le nombre de led sélectionnées pour faire un chenillard puis tirer au sort la led à allumer.

@ amic
Je te remercie d'avoir attiré mon attention à propos du courant nécessaire. Un bandeau led posera problème, car chaque led correspond à un groupe d'enfants (avec une photo en dessous de la led).

@ J-M-LJackson
Si cela peut inspirer des profs comme projet à réaliser pourquoi pas (mais qu'ils publient ici la solution :wink: ). Non, je suis juste un touche à tout qui aime bien bricoler mais qui n'est pas (du tout) compétent en programmation.
J'avais effectivement repéré la fonction random. En fait le nœud du problème semble concerner le fait de "détecter" le nombre de led sélectionnées.

Merci pour vos liens, je vais aller scruter cela.
Et je suis toujours preneur de bonnes idées, de solutions.

Tu peux découper (avec des ciseaux) le bandeau de leds entre chaque led pour les séparer et les mettre où ça t'ira bien, puis refaire la liaison électrique entre les leds avec 3 fils.

1 Like

allez parce que ça a l'air fun et que c'est pour des enfants, voici quelque chose qui doit s'approcher de ce que vous voulez

Un "jeu" avec des boutons

Super !
Je vous remercie beaucoup !
Si j'ai l'une ou l'autre question pour adapter votre proposition je ne manquerai pas de revenir vers vous.

Passez une excellente soirée.