Arduino Digitale Dobbelsteen: Bouw Je Eigen LCD-willekeurige Getalgenerator
Onderdelen en Benodigdheden
| Arduino UNO | 1 |
| Breadboard | 1 |
| 16x2 LCD-display (wit op blauw, HD44780-compatibel) | 1 |
| Drukknop (met breakout/schakelbord) | 1 |
| Potentiometer (10kΩ, voor LCD-contrast) | 1 |
| Draadjes | Verscheidene |
| USB-kabel | 1 |
Over dit Project
Een leuke beginnerproject: een digitale dobbelsteen die twee willekeurige getallen (1-6) genereert wanneer je op de knop drukt. Het LCD toont eerst "Rolling dice..." en na 4 seconden de twee dobbelstenenwaarden. Idee: vervang saaie fysieke dobbelstenen door een elektronische versie!
Aansluitschema
- LCD RS → D7, EN → D8, D4→D9, D5→D10, D6→D11, D7→D12
- LCD VSS → GND, VDD → 5V, V0 → potmeter middenpoot (uitersten aan 5V/GND)
- LCD A (backlight +) → 5V (via 220Ω), K (backlight -) → GND
- Drukknop signaal → D2, andere kant → GND (interne pull-up gebruikt in code)
Code
#include <LiquidCrystal.h>
long randNumber;
int Led = 13;
int Shock = 2; // Drukknop op pin 2
int val;
LiquidCrystal lcd(7, 8, 9, 10, 11, 12);
byte customChar[] = {
B00000,
B00000,
B11111,
B11001,
B10101,
B10011,
B11111,
B00000
};
void setup() {
lcd.begin(16, 2);
lcd.createChar(0, customChar); // Aangepast teken (dobbelsteen?)
lcd.home();
pinMode(Led, OUTPUT);
randomSeed(analogRead(0)); // Ruis op A0 als entropy-bron
pinMode(Shock, INPUT_PULLUP); // Interne pull-up activeren
lcd.write(byte(0));
lcd.print("Digital dice");
lcd.write(byte(0));
delay(1000);
}
void loop() {
val = digitalRead(Shock); // LOW = ingedrukt (naar GND)
if (val == LOW) {
lcd.clear();
lcd.print("Rolling dice...");
delay(4000);
lcd.clear();
lcd.setCursor(0, 0);
randNumber = random(1, 7); // 1 tot en met 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); // Debounce
}
Uitleg
randomSeed(analogRead(0))zorgt voor betere willekeurigheid.INPUT_PULLUPgebruikt de interne pull-up weerstand (knop tussen pin en GND).- Een aangepast karakter (byte 0) wordt getoond als decoratie.
- Na 4 seconden "rollen" worden twee willekeurige getallen getoond.
Uitbreidingsideeën
- Meer dobbelstenen toevoegen
- Geluuidje bij "rollen" (piezo)
- Animatie tijdens rollen (snel wisselende getallen)
- Verschillende dobbelsoorten (d4, d8, d10, d20 voor RPG's)
Productieproces
- TinyML Taaldetector met Edge Impulse op Arduino Nano 33 BLE Sense
- Bouw een real-time gyroscoop-spel met Arduino Nano & MPU-6050 sensor
- Een Arduino Iron Man bouwen: onderdelen, sensoren en stapsgewijze handleiding
- Find Me: Slimme Item Locator met Arduino en Bluetooth
- DIY Arduino Luchtbevochtiger Controller met Relais – Veilige Hoogspanningsopstelling
- Realtime afstandsmeting met Arduino Sonar & Processing visualisatie
- Een audio-reactieve bureaulamp bouwen met Arduino Nano
- NeoPixel Matrix Pong op Arduino Nano: Bouw je eigen neon Pong-spel
- Bouw een Aangepaste Arduino Joystick Stuurwiel voor Gaming
- Arduino 101: Bouw een teller met DHT11 sensor & LCD display
- Bouw een Arduino RGB Kleur Mixer – Stap-voor-stap Handleiding