Nous connaissons tous les dés et jouons souvent au jeu LUDO ou SANP SIDI (Snake & Ladders) en utilisant des dés. Dice est une boîte solide de type écuyer qui contient 6 nombres différents sur tous ses côtés. Nous lançons des dés sur une surface pour obtenir un nombre aléatoire tout en jouant aux jeux. Dans ce projet, nous avons essayé de le reproduire avec un dé numérique en utilisant la carte arduino uno. Au lieu de lancer les dés, nous devons ici appuyer sur un bouton pour obtenir un nombre aléatoire compris entre 0 et 6.
Composants requis
- Arduino UNO
- Affichage à sept segments (anode commune)
- Boutons poussoir
- Fils de connexion
- Planche à pain
- 1 k résistance
- Source de courant
Schéma de circuit et explication
Comme indiqué dans le circuit de dés numériques ci-dessus, arduino est utilisé pour contrôler l'ensemble du processus. Deux boutons poussoirs sont utilisés dans le circuit - un pour démarrer les dés et l'autre pour réinitialiser les dés. Arduino lit ces deux boutons et effectue l'opération. Un affichage à sept segments est utilisé pour afficher le résultat des dés.
Arduino exécute en permanence la fonction rand () et stocke sa valeur dans une variable temporaire. Lorsque le bouton de dés est pressé, la valeur stockée est calculée et affichée sur sept segments en utilisant la méthode appropriée (voir la partie programmation de l'article).
Ici, dans ce circuit de dés, un affichage à sept segments d'anode commune est utilisé pour afficher les numéros de dés, qui est directement connecté aux numéros de broches numériques Arduino 6, 5, 4, 3, 2, 1, 0. Et la broche d'anode commune de sept segments est connecté avec une résistance de +5 volts 220 Ohm. Deux boutons poussoirs sont également connectés, à savoir le bouton de dés et le bouton de réinitialisation qui sont connectés aux broches numériques 14 (A0) et 15 (A1) par rapport à la masse.
Explication du code
La programmation d'une partie de ce projet joue un rôle très important pour afficher un nombre de dés numériques aléatoire sur un affichage à sept segments. Arduino ne contient aucune bibliothèque pour l'affichage à sept segments. nous avons donc créé le code entier sans utiliser de bibliothèque.
Tout d'abord, nous sélectionnons la broche numérique pour un affichage à sept segments.
broche int = {6,5,4,3,2,1,0};
Après cela, nous créons un tableau de 6 chiffres de dés, à savoir 1, 2, 3, 4, 5 et 6.
caractère de caractère = {0x02, 0x79, 0x24, 0x30, 0x19, 0x12};
Maintenant, nous avons donné la direction d'utiliser la broche Arduino comme sortie.
void setup () {for (int i = 0; i <7; i ++) pinMode (pin, OUTPUT); pinMode (dés, INPUT); pinMode (réinitialisation, INPUT); digitalWrite (dés, HIGH); digitalWrite (réinitialisation, HIGH);
Nous envoyons un code pour afficher zéro sur l'affichage à sept segments par défaut.
int temp = 0x40; pour (int i = 0; i <7; i ++) {int temp1 = temp & 0x01; digitalWrite (broche, temp1); temp = température >> 1; }
Maintenant, nous exécutons la fonction rand () pour obtenir un nombre aléatoire.
int temp = rand ();
Et lorsque nous appuyons sur le programme de bouton de dés, mappez d'abord ce nombre aléatoire, puis envoyez le numéro à l'affichage à sept segments en utilisant un opérateur par bit.
if (digitalRead (dice) == 0) {int k = temp% 6; temp = chiffre; attendez(); pour (int i = 0; i <7; i ++) {int temp1 = temp & 0x01; digitalWrite (broche, temp1); temp = température >> 1; } retard (200); }
Et même pour le bouton de réinitialisation.
Dans ce programme, nous envoyons un seul bit à la fois. Ici, nous appliquons une boucle for qui s'exécute 7 fois pour envoyer des données à chaque segment un par un.