Arduino: Random Options Picker

Introduction: Arduino: Random Options Picker

About: Stay thinking 24/7

Arduino: Random Options Picker is a tool to generate a random name based on your options, with unlimited options, and different Random Seed every time you push the button. I spent +$36. Time needed just about 2-3 hours. Let's get started.

Step 1: Preparing...

Here's the things you gonna need:

(1) Arduino Uno

(1) 16x2 LCD

(1) Breadboard

(1) Button

(1) Potentiometer 10kΩ

(1) Resistor 220Ω

(18) Wire or Jumper Wire

(1) Arduino Cable to USB or 9V Battery + DC Adaptor

Step 2: Making...

The form is technically looks-like on the graph. Simple. Follow it and done.

Step 3: Uploading...

Once you have finish the "plugging cable" and "stuffs", it's time to upload the code to the Arduino.

Step 4: Finishing...

Once you have finished, try to use it. When you push the button, it will shows a random name from your options for 5 sec (you can change the time from the code).

*P.S. If necessary, you can make a case or any alternative, so it can look cleaner and tidier.

Step 5: Extras

If the LCD don't show any text, but just blocks or weird languages somehow like error, you can:

1. Make sure that all your cables are fine and can be used.

2. Make sure that your cables, LCD, button, and Potentiometer are plugged at the right spot.

3. If it still not working, Reset the Arduino, or Re-Make it.

Arduino All The Things! Contest

Participated in the
Arduino All The Things! Contest

Full Spectrum Laser Contest 2016

Participated in the
Full Spectrum Laser Contest 2016

1 Person Made This Project!

Recommendations

  • Box Challenge

    Box Challenge
  • Toys & Games Contest

    Toys & Games Contest
  • Make it Real Student Design Challenge #3

    Make it Real Student Design Challenge #3

9 Comments

0
paranormalhunting101

I want to make it roll automatically (without a button) just wondering how to remove button from code and automate it.

0
sdreoos
sdreoos

2 years ago

Hello, trying a 20x4 display (I need longer sentences) on I2C it doesn't work...any suggestion please?

#include <Wire.h>
#include <PCF8574_HD44780_I2C.h>
PCF8574_HD44780_I2C lcd(0x27,20,4);
char *players[]={
"John",
"Marie",
"Bob",
"Richard",
"Michael",
"Madeleine",
"Samuel",
"Michelle",
"Jennifer",
"Claire",
};
long player;
int val1 = 0;
int BUTTON1 = 13;
void setup() {
lcd.begin(20, 4);
pinMode(BUTTON1, INPUT);
}
void loop() {
lcd.setCursor(0,1);
lcd.print(millis() / 1000);
val1 = digitalRead(BUTTON1);
unsigned long seed=seedOut(50);
randomSeed(seed);
if (val1 == HIGH) {
for (int i=0;i<1;++i) {
player = (random(sizeof(players)/sizeof(char*)));
lcd.setCursor(0, 0);
lcd.print(players[player]);
delay(5000);
lcd.clear();
}
}
else
{
return;
}
}
unsigned int bitOut(void) {
static unsigned long firstTime=1, prev=0;
unsigned long bit1=0, bit0=0, x=0, port=0, limit=10;
if (firstTime) {
firstTime=0;
prev=analogRead(port);
}
while (limit--) {
x=analogRead(port);
bit1=(prev!=x?1:0);
prev=x;
x=analogRead(port);
bit0=(prev!=x?1:0);
prev=x;
if (bit1!=bit0)
break;
}
return bit1;
}
unsigned long seedOut(unsigned int noOfBits) {
unsigned long seed=0;
for (int i=0;i<noOfBits;++i)
seed = (seed<<1) | bitOut();
return seed;
}

0
ehudwill
ehudwill

5 years ago

I like this. I want to build a random number generator.

0
haydians09
haydians09

Reply 5 years ago

Yeah that could work too. But I suggest you to use the random number generator code, because this one is for options you made.

0
ehudwill
ehudwill

Reply 5 years ago

I would like to make a device that generates all manner of randomness. Mostly for use in an RPG setting.

0
asharma172
asharma172

5 years ago

can u have a cheaper one

0
haydians09
haydians09

Reply 5 years ago

Of course it can. There's a lot cheaper LCD with blue light in Amazon and cheaper wires and stuffs. Or even cheaper by using Serial.println, not by LCD.

0
Samytronix
Samytronix

5 years ago

Really simple and can be very useful for some occasions ;)

One question, what is the function of the number below the name?

0
haydians09
haydians09

Reply 5 years ago

Well at first I'm trying to put a timer below the name, but since I still haven't find out what's the code, I turned it into a stopwatch.