Jeu de mémoire : Différence entre versions
| Ligne 41 : | Ligne 41 : | ||
delay(100); | delay(100); | ||
} | } | ||
| + | </source> | ||
| + | |||
| + | On fait ensuite clignoter la led avec un bouton sur le principe suivant : si le bouton est appuyé, la led est allumée, sinon elle est éteinte. | ||
| + | On code le programme suivant : | ||
| + | <source lang=c> | ||
| + | unsigned char ledPin = 13; // on positionne la led | ||
| + | unsigned char bpPin = 2; // le bouton est sur la patte 2 | ||
| + | unsigned char etatBp; // on récupère l'état du bouton | ||
| + | |||
| + | void setup() | ||
| + | { | ||
| + | pinMode(bpPin,INPUT); | ||
| + | pinMode(ledPin,OUTPOUT); // on configure les e/s | ||
| + | } | ||
| + | |||
| + | void loop() | ||
| + | { | ||
| + | etatBp = digitalRead(bpPin); // on "lit" l'état de l'entrée | ||
| + | if (etatBp==1) | ||
| + | digitalWrite(ledPin,0); // on "écrit" l'état de la sortie | ||
| + | else | ||
| + | digitalWrite(ledPin,1); | ||
</source> | </source> | ||
Version du 3 octobre 2014 à 09:28
Fabrication d'un jeu de mémoire en quantité indutrielle
Cahier des charges
- Présentation du projet
L'objectif du projet est de réaliser un jeu de mémoire en quantité industrielle (une centaine). Ce jeu est simple : une série de leds s'allume dans un ordre particulier, le joueur doit reproduire parfaitement cette séquence.
- Objectifs
- Public ciblé
- Dimension des cartes : le plus compact possible
- Disposition des leds, boutons et microcontrôleur : leds et boutons organisés en 4 (comme un dé), position du microcontrôleur à définir
- Différents niveaux possibles : la difficulté des niveaux augmente avec des séries à reproduire qui deviennent de plus en plus longues et rapides
- Description du fonctionnement
Les leds de ce jeu sont contrôlées par un microcontrôleur AT Tiny qui permet de faire allumer aléatoirement les leds dans un ordre précis.
Tests sur cartes Arduino
On fait d'abord clignoter une led sans bouton :
void setup()
{
pinMode(13,OUTPUT); // on précise ici que la patte 13 est une sortie
}
void loop()
{
digitalWrite(13,0); // extinction de la led 13 de la carte Arduino
delay(100);
digitalWrite(13,1); // éclairement de la led 13 de la carte Arduino
delay(100);
}
On fait ensuite clignoter la led avec un bouton sur le principe suivant : si le bouton est appuyé, la led est allumée, sinon elle est éteinte. On code le programme suivant :
unsigned char ledPin = 13; // on positionne la led
unsigned char bpPin = 2; // le bouton est sur la patte 2
unsigned char etatBp; // on récupère l'état du bouton
void setup()
{
pinMode(bpPin,INPUT);
pinMode(ledPin,OUTPOUT); // on configure les e/s
}
void loop()
{
etatBp = digitalRead(bpPin); // on "lit" l'état de l'entrée
if (etatBp==1)
digitalWrite(ledPin,0); // on "écrit" l'état de la sortie
else
digitalWrite(ledPin,1);
