Je voulais donc un système pour 3 joueurs; le premier bouton actionné entraîne la production d'un son caractéristique (différent pour chaque concurrent) et l'allumage d'une LED (de couleur différente pour chaque concurrent). L'appui sur les autres boutons est ignoré jusqu'à ce qu'une remise à zéro soit effectuée par le maître de jeu.
Un tel système peut être mis au point sans microcontrôleur, au moyen d'un assez grand nombre de résistances et de transistors (voir schéma d'un montage ici): beaucoup de soudure en perspective... Avec l'Arduino, le circuit est beaucoup plus simple:
Le prototype a été fait sur une platine sans soudure. Bien entendu, le modèle définitif contiendrait de bonnes longueurs de fil pour permettre à chaque concurrent de tenir son bouton devant soi.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/******************************************************** | |
Témoin lumineux et sonore pour jeu questionnaire | |
Mars 2012 | |
https://electroniqueamateur.blogspot.com/2012/03/temoin-sonore-et-lumineux-pour-jeu.html | |
*********************************************************/ | |
// assignation des entrées-sorties | |
const int boutonreset = 2; | |
const int bouton1 = 3; | |
const int bouton2 = 4; | |
const int bouton3 = 5; | |
const int LED1 = 6; | |
const int LED2 = 7; | |
const int LED3 = 8; | |
const int HautParleur = 9; | |
short joueur = 0; | |
void setup() { | |
// les boutons sont des inputs | |
pinMode(boutonreset, INPUT); | |
pinMode(bouton1, INPUT); | |
pinMode(bouton2, INPUT); | |
pinMode(bouton3, INPUT); | |
// les LEDs sont des outputs | |
pinMode(LED1, OUTPUT); | |
pinMode(LED2, OUTPUT); | |
pinMode(LED3, OUTPUT); | |
} | |
void loop(){ | |
if (digitalRead(boutonreset)){ | |
joueur = 0; | |
} | |
if (joueur==0){ | |
if (digitalRead(bouton1)){ | |
joueur = 1; | |
tone(HautParleur, 264, 100); | |
} | |
if (digitalRead(bouton2)){ | |
joueur = 2; | |
tone(HautParleur, 330, 100); | |
} | |
if (digitalRead(bouton3)){ | |
joueur = 3; | |
tone(HautParleur, 396, 100); | |
} | |
} | |
if (joueur == 1) { | |
digitalWrite(LED1, HIGH); | |
} | |
else { | |
digitalWrite(LED1, LOW); | |
} | |
if (joueur == 2) { | |
digitalWrite(LED2, HIGH); | |
} | |
else { | |
digitalWrite(LED2, LOW); | |
} | |
if (joueur == 3) { | |
digitalWrite(LED3, HIGH); | |
} | |
else { | |
digitalWrite(LED3, LOW); | |
} | |
} |
Yves Pelletier (Twitter: @ElectroAmateur)
Aucun commentaire:
Enregistrer un commentaire