Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

Dado Digital para Catan con Arduino UNO y Pantalla LCD

Componentes y Suministros

Componente Cantidad
Arduino UNO 1
Pantalla LCD 16x2 (estándar Adafruit, blanco sobre azul) 1
Pulsador 12 mm (SparkFun) 1

Sobre el Proyecto

Para jugar a Los Colonos de Catan se necesitan dos dados. En lugar de dados físicos, este proyecto muestra dos números aleatorios (1–6) en una pantalla LCD al pulsar un botón. Incluye animación de "tensión" y mensaje especial para el 7 ("El Ladrón").

Montaje de la Pantalla

Conectar el LCD 16x2 al Arduino según el esquema estándar (RS=12, E=11, D4=5, D5=4, D6=3, D7=2). Usar potenciómetro en pin V0 para contraste.

Botón de Tirada

Conectar un pulsador entre el pin 10 y GND (usando pull-up interna). Alternativamente, un sensor de inclinación para simular el gesto de tirar los dados.

Código y Texto Inicial

Incluir librería LiquidCrystal.h. En setup() se muestra "Roll the dice!" (¡Tira los dados!).

Animación de Tensión

La función buildUp() rellena las dos filas del LCD con números aleatorios (1–6) que aparecen progresivamente más rápido. Un bucle for de 0 a 16 columnas reduce el retardo en cada iteración (inicial 220 ms, decremento 13 ms). Ajusta estos valores para cambiar la velocidad.

Mostrar los Dados

Tras la animación, se muestran los dos resultados centrados (columna 7) en cada fila. Si la suma es 7, se borra la pantalla, se muestra "7" arriba y "The Robber" (El Ladrón) abajo.

¡A Jugar!

Invita a tus amigos y disfruta de Catan con tu dado digital.

Código

#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;
  int setColumn = 0;
  for (count = 0; count <= 16; count++) {
    lcd.setCursor(setColumn, 0);
    lcd.print(random(1, 7));
    lcd.setCursor(setColumn, 1);
    lcd.print(random(1, 7));
    delay(countDelay);
    countDelay -= 13;
    setColumn++;
  }
}

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); // debounce simple
  }
}

Proceso de manufactura

  1. Historia, Diseño y Fabricación de Dados: De Herramientas Ancestrales al Juego Moderno
  2. Pantalla de Cristal Líquido (LCD): Tecnología, Fabricación y Perspectivas Futuras
  3. Primal Display: construye monitor temperatura LCD con Raspberry Pi
  4. Cómo Instalar la Pantalla TFT 3.5″ Kuman en RetroPie – Guía Paso a Paso
  5. Proyecto Dados Digitales Arduino: Construye tu Propio Generador de Números Aleatorios con LCD
  6. Uso del Decodificador 4511 de 7 Segmentos: Tutorial Práctico de Visualización BCD
  7. Tubos de Visualización: Desde CRT a Indicadores Cat‑Eye
  8. Análisis de Espectro Avanzado: Interpretar Formas de Onda y Armónicos
  9. Dominando la Sobrecarga de Métodos en C#: Conceptos, Ejemplos y Buenas Prácticas
  10. Comprender las Tasks en Verilog: Funciones vs Tasks, sintaxis y uso
  11. Dominar las tareas de visualización en Verilog: Depuración y registro eficientes