Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Цифровые кости на Arduino: генератор случайных чисел с LCD-дисплеем и кнопкой

Компоненты и материалы

О проекте

Автор устал от обычных игральных кубиков и решил сделать электронные. Arduino опрашивает кнопку: если нажата (LOW) — запускает анимацию «Rolling dice...» на 4 секунды, затем выдает два случайных числа от 1 до 6 на двух строках LCD. Если кнопка не нажата — показывает заставку «Digital dice» с пользовательским символом (кубик).

Схема подключения

Схема в Fritzing (файл .jpg) в разделе «Schematics».

Код (Arduino)


#include 

long randNumber;
int Led = 13;
int Shock = 2; // пин кнопки (назван "Shock" в оригинале)
int val;

LiquidCrystal lcd(7, 8, 9, 10, 11, 12); // RS, EN, D4, D5, D6, D7

// Пользовательский символ: кубик 5x8
byte customChar[] = {
  B00000,
  B00000,
  B11111,
  B11001,
  B10101,
  B10011,
  B11111,
  B00000
};

void setup() {
  lcd.begin(16, 2);
  lcd.createChar(0, customChar);
  lcd.home();
  pinMode(Led, OUTPUT);
  randomSeed(analogRead(0)); // шум на A0 как источник энтропии
  pinMode(Shock, INPUT);
  lcd.write(byte(0));
  lcd.print("Digital dice");
  lcd.write(byte(0));
  delay(1000);
}

void loop() {
  val = digitalRead(Shock);
  if (val == LOW) { // кнопка нажата
    lcd.clear();
    lcd.print("Rolling dice...");
    delay(4000);
    lcd.clear();
    lcd.setCursor(0, 0);
    randNumber = random(1, 7); // 1..6
    lcd.print("Dice 1 = ");
    lcd.print(randNumber);
    lcd.setCursor(0, 1);
    randNumber = random(1, 7);
    lcd.print("Dice 2 = ");
    lcd.print(randNumber);
  }
  delay(150); // небольшой дебаунс
}

Пояснения

Производственный процесс

  1. TinyML-детектор языка на Arduino Nano 33 BLE Sense с Edge Impulse
  2. Создание игры в реальном времени на Arduino Nano с гироскопом MPU-6050 и OLED-дисплеем
  3. Строим Iron Man на Arduino: компоненты, сенсоры и пошаговый гайд
  4. Find Me: Умный поисковик вещей на Arduino и Bluetooth
  5. DIY-контроллер увлажнителя на Arduino с реле: безопасная работа с высоким напряжением
  6. Измерение расстояния в реальном времени: Ардуино-сонар с визуализацией в Processing
  7. Сборка аудиореактивной настольной лампы на Arduino Nano
  8. NeoPixel Matrix Pong на Arduino Nano: неоновая игра Pong на матрице 15×10
  9. Своё рулевое управление (джойстик) для игр на Arduino
  10. Arduino 101: Пedometer с датчиком DHT11 и LCD-дисплеем