Introduction: Guess/pick AttinyCard
Pick attiny card is a random number generator that represents guessing a card in a deck of cards or you could change the setup code to cut a deck of "cards" to see who goes first in a card game.
Step 1: Hardware
Attiny85
Arduino as ISP programmer
5v power supply
Shift register LCD
Tactile momentary switch
10kohm resistor
Step 2: Software
Sketch asks you to pick a card presumably from a deck of 52 cards. Press the button to stop the random sequence. Displays the number randomly picked out of 52 on first line. Card represented on second line.
#include <LiquidCrystal595.h> LiquidCrystal595 lcd(0,1,2); int val; //random card value const int button = 4; //button pin int buttonState = 0; void setup() { lcd.begin(16,2); lcd.clear(); lcd.setCursor(0,0); lcd.print("CHOOSE A CARD"); //lcd.print("CUT "); lcd.setCursor(0,1); lcd.print("REMEMBER IT"); //lcd.print("THE DECK"); pinMode(button, INPUT); delay(5000); } void loop() { val = random(1,52); buttonState = digitalRead(button); if (buttonState == HIGH){ lcd.clear(); lcd.setCursor(6,0); lcd.print(val); switch (val) { case 1:lcd.setCursor(4,1); lcd.print("ACE S"); break; case 2:lcd.setCursor(4,1); lcd.print("2 S"); break; case 3:lcd.setCursor(4,1); lcd.print("3 S"); break; case 4:lcd.setCursor(4,1); lcd.print("4 S"); break; case 5:lcd.setCursor(4,1); lcd.print("5 S"); break; case 6:lcd.setCursor(4,1); lcd.print("6 S"); break; case 7:lcd.setCursor(4,1); lcd.print("7 S"); break; case 8:lcd.setCursor(4,1); lcd.print("8 S"); break; case 9:lcd.setCursor(4,1); lcd.print("9 S"); break; case 10:lcd.setCursor(4,1); lcd.print("10 S"); break; case 11:lcd.setCursor(4,1); lcd.print("JACK S"); break; case 12:lcd.setCursor(4,1); lcd.print("QUEEN S"); break; case 13:lcd.setCursor(4,1); lcd.print("KING S"); break; case 14:lcd.setCursor(4,1); lcd.print("ACE D"); break; case 15:lcd.setCursor(4,1); lcd.print("2 D"); break; case 16:lcd.setCursor(4,1); lcd.print("3 D"); break; case 17:lcd.setCursor(4,1); lcd.print("4 D"); break; case 18:lcd.setCursor(4,1); lcd.print("5 D"); break; case 19:lcd.setCursor(4,1); lcd.print("6 D"); break; case 20:lcd.setCursor(4,1); lcd.print("7 D"); break; case 21:lcd.setCursor(4,1); lcd.print("8 D"); break; case 22:lcd.setCursor(4,1); lcd.print("9 D"); break; case 23:lcd.setCursor(4,1); lcd.print("10 D"); break; case 24:lcd.setCursor(4,1); lcd.print("JACK D"); break; case 25:lcd.setCursor(4,1); lcd.print("QUEEN D"); break; case 26:lcd.setCursor(4,1); lcd.print("KING D"); break; case 27:lcd.setCursor(4,1); lcd.print("ACE C"); break; case 28:lcd.setCursor(4,1); lcd.print("2 C"); break; case 29:lcd.setCursor(4,1); lcd.print("3 CLUB"); break; case 30:lcd.setCursor(4,1); lcd.print("4 C"); break; case 31:lcd.setCursor(4,1); lcd.print("5 C"); break; case 32:lcd.setCursor(4,1); lcd.print("6 C"); break; case 33:lcd.setCursor(4,1); lcd.print("7 C"); break; case 34:lcd.setCursor(4,1); lcd.print("8 C"); break; case 35:lcd.setCursor(4,1); lcd.print("9 C"); break; case 36:lcd.setCursor(4,1); lcd.print("10 C"); break; case 37:lcd.setCursor(4,1); lcd.print("JACK C"); break; case 38:lcd.setCursor(4,1); lcd.print("QUEN C"); break; case 39:lcd.setCursor(4,1); lcd.print("KING C"); break; case 40:lcd.setCursor(4,1); lcd.print("ACE H"); break; case 41:lcd.setCursor(4,1); lcd.print("2 H"); break; case 42:lcd.setCursor(4,1); lcd.print("3 H"); break; case 43:lcd.setCursor(4,1); lcd.print("4 H"); break; case 44:lcd.setCursor(4,1); lcd.print("5 H"); break; case 45:lcd.setCursor(4,1); lcd.print("6 H"); break; case 46:lcd.setCursor(4,1); lcd.print("7 H"); break; case 47:lcd.setCursor(4,1); lcd.print("8 H"); break; case 48:lcd.setCursor(4,1); lcd.print("9 H"); break; case 49:lcd.setCursor(4,1); lcd.print("10 H"); break; case 50:lcd.setCursor(4,1); lcd.print("JACK H"); break; case 51:lcd.setCursor(4,1); lcd.print("QUEEN H"); break; case 52:lcd.setCursor(4,1); lcd.print("KING H"); break; } } }
Step 3: Results
This is my second instructable using my already made 5V power supply, Attiny programmer, and LCD shift register breadboarded circuits. This is a more practical real world use of a microcontroller. Very simple. A momentary button and resistor are connected to one of the pins of the Attiny85. A greeting first displays on the screen for about 5 seconds and then the random number generator starts. Pressing the button stops the random number generator and the selected value and the corresponding card is displayed on the LCD.
Here's a video on Instagram @kayohzee