Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Dé numérique pour Les Colons de Catane avec Arduino UNO et écran LCD

Matériel nécessaire

Câblage de l'écran LCD

Connexion standard 4 bits de données :

Câblage du bouton

Bouton entre broche D10 et GND. Résistance de pull-up interne activée (pinMode(10, INPUT_PULLUP)). Appui = LOW.

Logique du programme

  1. Initialisation : bibliothèque LiquidCrystal, graine aléatoire sur A0 (bruit thermique), message « Roll the dice! »
  2. Attente appui : lecture D10, si LOW → déclenchement
  3. Animation « tension » : fonction buildUp() : remplissage des 2 lignes de 16 caractères avec des nombres aléatoires 1-6, défilement gauche→droite, accélération progressive (délai initial 220ms, décrément 13ms/étape)
  4. Résultat : tirage de deux dés (random(1,7)), affichage centré (colonne 7) sur les deux lignes
  5. Règle spéciale « 7 » (Le Voleur) : si somme = 7 → effacement, affichage « 7 » en haut, « The Robber » en bas (rappel règle Catane : défausser si >7 cartes)

Code source complet

#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
const int diceButton = 10;
int reply, count = 0;
long diceOne, diceTwo;

void setup() {
  lcd.begin(16, 2);
  pinMode(diceButton, INPUT_PULLUP);
  randomSeed(analogRead(0));
  lcd.setCursor(1, 0);
  lcd.print("Roll the dice!");
}

void buildUp() {
  lcd.clear();
  int countDelay = 220;
  for (count = 0; count <= 16; count++) {
    lcd.setCursor(count, 0); lcd.print(random(1, 7));
    lcd.setCursor(count, 1); lcd.print(random(1, 7));
    delay(countDelay);
    countDelay -= 13;
  }
}

void loop() {
  if (digitalRead(diceButton) == LOW) {
    buildUp();
    diceOne = random(1, 7);
    diceTwo = random(1, 7);
    lcd.clear();
    lcd.setCursor(7, 0); lcd.print(diceOne);
    lcd.setCursor(7, 1); lcd.print(diceTwo);
    if (diceOne + diceTwo == 7) {
      lcd.clear();
      lcd.setCursor(7, 0); lcd.print("7");
      lcd.setCursor(3, 1); lcd.print("The Robber");
    }
    delay(500); // anti-rebond simple
  }
}

Variantes et extensions

Usage

Idéal pour parties de Catane entre amis : plus de dés perdus, animation visuelle ludique, rappel automatique de la règle du 7. Projet débutant parfait (câblage simple, code lisible, résultat immédiat).

Processus de fabrication

  1. Utilisation du décodeur 7 segments 4511 : tutoriel pratique d'affichage BCD
  2. Tubes d'Affichage : Des Tubes Cathodiques aux Indicateurs Œil-de-Chat
  3. Analyse spectrale avancée : interprétation des formes d'onde et harmoniques
  4. L'histoire, la conception et la fabrication des dés : des outils anciens aux jeux modernes
  5. Maîtriser la surcharge de méthodes en C# : Concepts, exemples et bonnes pratiques
  6. Primal Display : Construire un moniteur de température LCD avec Raspberry Pi
  7. Comment Installer l'Écran TFT 3,5″ Kuman sur RetroPie — Guide Étape par Étape
  8. Comprendre les Tasks Verilog : Fonctions vs Tasks, Syntaxe et Utilisation
  9. Maîtriser les Tâches d'Affichage Verilog : Débogage et Journalisation Efficaces