Components and supplies
1
Breadboard (generic)
1
Jumper wires (generic)
1
Alphanumeric LCD, 16 x 2
1
Single Turn Potentiometer- 10k ohms
1
Arduino UNO
1
Pushbutton switch 12mm
Apps and platforms
1
Arduino IDE
Project description
Code
MASTER CODE (Updated)
cpp
This is the master code. It will power this whole project!
1/* 2Made by milespeterson101 3Date published 6/20/2022 4Enjoy your very own dog adventure! 5*/ 6 7#include <LiquidCrystal.h> 8LiquidCrystal lcd(12, 11, 10, 9, 8, 7); // RS, E, D4, D5, D6, D7 9void setup() { 10lcd.begin(16, 2); 11image(); 12} 13void loop() {} 14 15void image() { 16lcd.clear(); 17 18byte image09[8] = {B00000, B00000, B00000, B00010, B00101, B10101, B01101, B00001}; 19byte image08[8] = {B01000, B10100, B00100, B10010, B00001, B01000, B10000, B00000}; 20byte image07[8] = {B00100, B01011, B01000, B01010, B10001, B10101, B10011, B10000}; 21byte image23[8] = {B10000, B10000, B10000, B10000, B01001, B01010, B00100, B00000}; 22byte image24[8] = {B00000, B00000, B00000, B01110, B01010, B01010, B10001, B00000}; 23byte image25[8] = {B00001, B00001, B00001, B00010, B11010, B11010, B00100, B00000}; 24 25 26lcd.createChar(0, image09); 27lcd.createChar(1, image08); 28lcd.createChar(2, image07); 29lcd.createChar(3, image23); 30lcd.createChar(4, image24); 31lcd.createChar(5, image25); 32 33 34lcd.setCursor(8, 0); 35lcd.write(byte(0)); 36lcd.setCursor(7, 0); 37lcd.write(byte(1)); 38lcd.setCursor(6, 0); 39lcd.write(byte(2)); 40lcd.setCursor(6, 1); 41lcd.write(byte(3)); 42lcd.setCursor(7, 1); 43lcd.write(byte(4)); 44lcd.setCursor(8, 1); 45lcd.write(byte(5)); 46 47delay(1000); 48 49lcd.clear(); 50 51byte image06[8] = {B00000, B00000, B00000, B00010, B00101, B10101, B01101, B00001}; 52byte image22[8] = {B00001, B00001, B00001, B11010, B11010, B01010, B00100, B00000}; 53byte image21[8] = {B00000, B00000, B00000, B01110, B01010, B01010, B10001, B00000}; 54byte image05[8] = {B01000, B10100, B00100, B10010, B00001, B01000, B10000, B00000}; 55byte image04[8] = {B00100, B01011, B01000, B01010, B10001, B10101, B10011, B10000}; 56byte image20[8] = {B10000, B10000, B10000, B10000, B01001, B01010, B00100, B00000}; 57 58 59lcd.createChar(0, image06); 60lcd.createChar(1, image22); 61lcd.createChar(2, image21); 62lcd.createChar(3, image05); 63lcd.createChar(4, image04); 64lcd.createChar(5, image20); 65 66 67lcd.setCursor(5, 0); 68lcd.write(byte(0)); 69lcd.setCursor(5, 1); 70lcd.write(byte(1)); 71lcd.setCursor(4, 1); 72lcd.write(byte(2)); 73lcd.setCursor(4, 0); 74lcd.write(byte(3)); 75lcd.setCursor(3, 0); 76lcd.write(byte(4)); 77lcd.setCursor(3, 1); 78lcd.write(byte(5)); 79delay(1000); 80 81lcd.clear(); 82 83byte image03[8] = {B00000, B00000, B00000, B00010, B00101, B10101, B01101, B00001}; 84byte image19[8] = {B00001, B00001, B00001, B11010, B11010, B01010, B00100, B00000}; 85byte image02[8] = {B01000, B10100, B00100, B10010, B00001, B01000, B10000, B00000}; 86byte image01[8] = {B00100, B01011, B01000, B01010, B10001, B10101, B10011, B10000}; 87byte image18[8] = {B00000, B00000, B00000, B01110, B01010, B01010, B10001, B00000}; 88byte image17[8] = {B10000, B10000, B10000, B10000, B01001, B01010, B00100, B00000}; 89 90 91lcd.createChar(0, image03); 92lcd.createChar(1, image19); 93lcd.createChar(2, image02); 94lcd.createChar(3, image01); 95lcd.createChar(4, image18); 96lcd.createChar(5, image17); 97 98 99lcd.setCursor(2, 0); 100lcd.write(byte(0)); 101lcd.setCursor(2, 1); 102lcd.write(byte(1)); 103lcd.setCursor(1, 0); 104lcd.write(byte(2)); 105lcd.setCursor(0, 0); 106lcd.write(byte(3)); 107lcd.setCursor(1, 1); 108lcd.write(byte(4)); 109lcd.setCursor(0, 1); 110lcd.write(byte(5)); 111delay(1000); 112 113lcd.clear(); 114 115byte image32[8] = {B00001, B00001, B00001, B11010, B11010, B01010, B00100, B00000}; 116byte image16[8] = {B00000, B00000, B00000, B00010, B00101, B10101, B01101, B00001}; 117byte image15[8] = {B01000, B10100, B00100, B10010, B00001, B01000, B10000, B00000}; 118byte image14[8] = {B00100, B01011, B01000, B01010, B10001, B10101, B10011, B10000}; 119byte image30[8] = {B10000, B10000, B10000, B10000, B01001, B01010, B00100, B00000}; 120byte image31[8] = {B00000, B00000, B00000, B01110, B01010, B01010, B10001, B00000}; 121 122 123lcd.createChar(0, image32); 124lcd.createChar(1, image16); 125lcd.createChar(2, image15); 126lcd.createChar(3, image14); 127lcd.createChar(4, image30); 128lcd.createChar(5, image31); 129 130 131lcd.setCursor(15, 1); 132lcd.write(byte(0)); 133lcd.setCursor(15, 0); 134lcd.write(byte(1)); 135lcd.setCursor(14, 0); 136lcd.write(byte(2)); 137lcd.setCursor(13, 0); 138lcd.write(byte(3)); 139lcd.setCursor(13, 1); 140lcd.write(byte(4)); 141lcd.setCursor(14, 1); 142lcd.write(byte(5)); 143delay(1000); 144 145lcd.clear(); 146 147byte image29[8] = {B00001, B00001, B00001, B11010, B11010, B01010, B00100, B00000}; 148byte image28[8] = {B00000, B00000, B00000, B01110, B01010, B01010, B10001, B00000}; 149byte image27[8] = {B10000, B10000, B10000, B10000, B01001, B01010, B00100, B00000}; 150byte image13[8] = {B00000, B00000, B00000, B00010, B00101, B10101, B01101, B00001}; 151byte image12[8] = {B01000, B10100, B00100, B10010, B00001, B01000, B10000, B00000}; 152byte image11[8] = {B00100, B01011, B01000, B01010, B10001, B10101, B10011, B10000}; 153 154 155lcd.createChar(0, image29); 156lcd.createChar(1, image28); 157lcd.createChar(2, image27); 158lcd.createChar(3, image13); 159lcd.createChar(4, image12); 160lcd.createChar(5, image11); 161 162 163lcd.setCursor(12, 1); 164lcd.write(byte(0)); 165lcd.setCursor(11, 1); 166lcd.write(byte(1)); 167lcd.setCursor(10, 1); 168lcd.write(byte(2)); 169lcd.setCursor(12, 0); 170lcd.write(byte(3)); 171lcd.setCursor(11, 0); 172lcd.write(byte(4)); 173lcd.setCursor(10, 0); 174lcd.write(byte(5)); 175delay(1000); 176 177lcd.clear(); 178 179byte image40[8] = {B00100, B01011, B01000, B01010, B10001, B10101, B10011, B10000}; 180byte image10[8] = {B01000, B10100, B00100, B10010, B00001, B01000, B10000, B00000}; 181byte image41[8] = {B00000, B00000, B00000, B00010, B00101, B10101, B01101, B00001}; 182byte image35[8] = {B10000, B10000, B10000, B10000, B01001, B01010, B00100, B00000}; 183byte image26[8] = {B00000, B00000, B00000, B01110, B01010, B01010, B10001, B00000}; 184byte image44[8] = {B00001, B00001, B00001, B11010, B11010, B01010, B00100, B00000}; 185 186 187lcd.createChar(0, image40); 188lcd.createChar(1, image10); 189lcd.createChar(2, image41); 190lcd.createChar(3, image35); 191lcd.createChar(4, image26); 192lcd.createChar(5, image44); 193 194 195lcd.setCursor(8, 0); 196lcd.write(byte(0)); 197lcd.setCursor(9, 0); 198lcd.write(byte(1)); 199lcd.setCursor(10, 0); 200lcd.write(byte(2)); 201lcd.setCursor(8, 1); 202lcd.write(byte(3)); 203lcd.setCursor(9, 1); 204lcd.write(byte(4)); 205lcd.setCursor(10, 1); 206lcd.write(byte(5)); 207//Here is where the original code used to end. HERE! 208delay(1000); 209lcd.begin(16, 2); 210lcd.print("Hello!"); 211byte image50[8] = {B00001, B00001, B00001, B11010, B11010, B01010, B00100, B00000}; 212byte image52[8] = {B00000, B00000, B00000, B01110, B01010, B01010, B10001, B00000}; 213byte image57[8] = {B10000, B10000, B10000, B10000, B01001, B01010, B00100, B00000}; 214byte image53[8] = {B00000, B00000, B00000, B00010, B00101, B10101, B01101, B00001}; 215byte image58[8] = {B01000, B10100, B00100, B10010, B00001, B01000, B10000, B00000}; 216byte image51[8] = {B00100, B01011, B01000, B01010, B10001, B10101, B10011, B10000}; 217 218 219lcd.createChar(0, image50); 220lcd.createChar(1, image52); 221lcd.createChar(2, image57); 222lcd.createChar(3, image53); 223lcd.createChar(4, image58); 224lcd.createChar(5, image51); 225 226 227lcd.setCursor(12, 1); 228lcd.write(byte(0)); 229lcd.setCursor(11, 1); 230lcd.write(byte(1)); 231lcd.setCursor(10, 1); 232lcd.write(byte(2)); 233lcd.setCursor(12, 0); 234lcd.write(byte(3)); 235lcd.setCursor(11, 0); 236lcd.write(byte(4)); 237lcd.setCursor(10, 0); 238lcd.write(byte(5)); 239delay(5000); 240lcd.begin(16, 2); 241lcd.print("What's on"); 242delay(2000); 243lcd.begin(16, 2); 244lcd.print("your mind today?"); 245delay(2000); 246 247lcd.clear(); 248lcd.begin(16, 2); 249lcd.print("Woof,Woof!"); 250byte image67[8] = {B01100, B10000, B10000, B10010, B10010, B10010, B01010, B00110}; 251byte image61[8] = {B00000, B00000, B00000, B00000, B00000, B00000, B00000, B00011}; 252byte image62[8] = {B00000, B00000, B00000, B00000, B00000, B00000, B11000, B00100}; 253byte image68[8] = {B00001, B01001, B01000, B00000, B00000, B00001, B00110, B00100}; 254byte image69[8] = {B00000, B11000, B11000, B11000, B01000, B10000, B00000, B00000}; 255 256 257lcd.createChar(0, image67); 258lcd.createChar(1, image61); 259lcd.createChar(2, image62); 260lcd.createChar(3, image68); 261lcd.createChar(4, image69); 262 263 264lcd.setCursor(10, 1); 265lcd.write(byte(0)); 266lcd.setCursor(10, 0); 267lcd.write(byte(1)); 268lcd.setCursor(11, 0); 269lcd.write(byte(2)); 270lcd.setCursor(11, 1); 271lcd.write(byte(3)); 272lcd.setCursor(12, 1); 273lcd.write(byte(4)); 274delay(3000); 275lcd.begin(16, 2); 276lcd.print("Uh oh!"); 277byte image77[8] = {B01100, B10000, B10000, B10010, B10010, B10010, B01010, B00110}; 278byte image71[8] = {B00000, B00000, B00000, B00000, B00000, B00000, B00000, B00011}; 279byte image72[8] = {B00000, B00000, B00000, B00000, B00000, B00000, B11000, B00100}; 280byte image78[8] = {B00001, B01001, B01000, B00000, B00000, B00001, B00110, B00100}; 281byte image79[8] = {B00000, B11000, B11000, B11000, B01000, B10000, B00000, B00000}; 282 283 284lcd.createChar(0, image77); 285lcd.createChar(1, image71); 286lcd.createChar(2, image72); 287lcd.createChar(3, image78); 288lcd.createChar(4, image79); 289 290 291lcd.setCursor(10, 1); 292lcd.write(byte(0)); 293lcd.setCursor(10, 0); 294lcd.write(byte(1)); 295lcd.setCursor(11, 0); 296lcd.write(byte(2)); 297lcd.setCursor(11, 1); 298lcd.write(byte(3)); 299lcd.setCursor(12, 1); 300lcd.write(byte(4)); 301delay(2000); 302lcd.begin(16, 2); 303lcd.print("I think I need"); 304delay(1500); 305lcd.begin(16, 2); 306lcd.print("To go to the"); 307delay(1500); 308lcd.begin(16, 2); 309lcd.print("BATHROOM!"); 310delay(2000); 311lcd.begin(16, 2); 312lcd.print("Give me one"); 313delay(1500); 314lcd.begin(16, 2); 315lcd.print("Second please."); 316delay(4000); 317lcd.begin(16, 2); 318lcd.print("OHH..."); 319 320byte image80[8] = {B00001, B00010, B00111, B00100, B01001, B01110, B10000, B01111}; 321byte image81[8] = {B10000, B11000, B00100, B01100, B10010, B00110, B11001, B11110}; 322byte image85[8] = {B00000, B00000, B00000, B00000, B00000, B01000, B10000, B10000}; 323 324 325lcd.createChar(0, image80); 326lcd.createChar(1, image81); 327lcd.createChar(2, image85); 328 329 330lcd.setCursor(13, 1); 331lcd.write(byte(0)); 332lcd.setCursor(14, 1); 333lcd.write(byte(1)); 334lcd.setCursor(14, 0); 335lcd.write(byte(2)); 336delay(2000); 337lcd.begin(16, 2); 338lcd.print("Looks like I"); 339delay(1500); 340lcd.begin(16, 2); 341lcd.print("I left a little"); 342delay(1500); 343lcd.begin(16, 2); 344lcd.print("Stinky surprise!"); 345delay(2000); 346lcd.begin(16, 2); 347lcd.print("Well..."); 348 349byte image82[8] = {B01000, B01000, B00100, B01100, B10100, B00010, B00001, B00000}; 350byte image83[8] = {B00000, B00000, B00000, B10001, B01110, B00000, B00001, B11110}; 351byte image84[8] = {B00100, B00100, B01010, B01001, B01000, B10000, B00000, B00000}; 352byte image86[8] = {B00000, B00000, B00000, B11110, B10001, B10000, B01000, B00100}; 353byte image87[8] = {B00000, B00000, B00000, B01111, B10001, B00010, B00100, B01000}; 354byte image88[8] = {B00000, B00000, B00000, B11111, B00000, B00000, B10001, B10001}; 355 356 357lcd.createChar(0, image82); 358lcd.createChar(1, image83); 359lcd.createChar(2, image84); 360lcd.createChar(3, image86); 361lcd.createChar(4, image87); 362lcd.createChar(5, image88); 363 364 365lcd.setCursor(12, 1); 366lcd.write(byte(0)); 367lcd.setCursor(13, 1); 368lcd.write(byte(1)); 369lcd.setCursor(14, 1); 370lcd.write(byte(2)); 371lcd.setCursor(14, 0); 372lcd.write(byte(3)); 373lcd.setCursor(12, 0); 374lcd.write(byte(4)); 375lcd.setCursor(13, 0); 376lcd.write(byte(5)); 377delay(2000); 378lcd.begin(16, 2); 379lcd.print("we'll pick"); 380 381byte image91[8] = {B01000, B01000, B00100, B01100, B10100, B00010, B00001, B00000}; 382byte image92[8] = {B00000, B00000, B00000, B10001, B01110, B00000, B00001, B11110}; 383byte image93[8] = {B00100, B00100, B01010, B01001, B01000, B10000, B00000, B00000}; 384byte image94[8] = {B00000, B00000, B00000, B11110, B10001, B10000, B01000, B00100}; 385byte image95[8] = {B00000, B00000, B00000, B01111, B10001, B00010, B00100, B01000}; 386byte image96[8] = {B00000, B00000, B00000, B11111, B00000, B00000, B00000, B11011}; 387 388 389lcd.createChar(0, image91); 390lcd.createChar(1, image92); 391lcd.createChar(2, image93); 392lcd.createChar(3, image94); 393lcd.createChar(4, image95); 394lcd.createChar(5, image96); 395 396 397lcd.setCursor(12, 1); 398lcd.write(byte(0)); 399lcd.setCursor(13, 1); 400lcd.write(byte(1)); 401lcd.setCursor(14, 1); 402lcd.write(byte(2)); 403lcd.setCursor(14, 0); 404lcd.write(byte(3)); 405lcd.setCursor(12, 0); 406lcd.write(byte(4)); 407lcd.setCursor(13, 0); 408lcd.write(byte(5)); 409 410delay(1000); 411lcd.begin(16, 2); 412lcd.print("It up later!"); 413 414byte image97[8] = {B01000, B01000, B00100, B01100, B10100, B00010, B00001, B00000}; 415byte image98[8] = {B00000, B00000, B00000, B10001, B01110, B00000, B00001, B11110}; 416byte image99[8] = {B00100, B00100, B01010, B01001, B01000, B10000, B00000, B00000}; 417byte image100[8] = {B00000, B00000, B00000, B11110, B10001, B10000, B01000, B00100}; 418byte image101[8] = {B00000, B00000, B00000, B01111, B10001, B00010, B00100, B01000}; 419byte image102[8] = {B00000, B00000, B00000, B11111, B00000, B00000, B00000, B11011}; 420 421 422lcd.createChar(0, image97); 423lcd.createChar(1, image98); 424lcd.createChar(2, image99); 425lcd.createChar(3, image100); 426lcd.createChar(4, image101); 427lcd.createChar(5, image102); 428 429 430lcd.setCursor(12, 1); 431lcd.write(byte(0)); 432lcd.setCursor(13, 1); 433lcd.write(byte(1)); 434lcd.setCursor(14, 1); 435lcd.write(byte(2)); 436lcd.setCursor(14, 0); 437lcd.write(byte(3)); 438lcd.setCursor(12, 0); 439lcd.write(byte(4)); 440lcd.setCursor(13, 0); 441lcd.write(byte(5)); 442delay(3000); 443lcd.begin(16, 2); 444lcd.print("Oh, so you want"); 445delay(1200); 446lcd.begin(16, 2); 447lcd.print("to play more?"); 448delay(1000); 449lcd.begin(16, 2); 450lcd.print("That's an idea."); 451delay(2000); 452lcd.begin(16, 2); 453lcd.print("But I'm tired"); 454 455 456byte image103[8] = {B01111, B00010, B00100, B01000, B01111, B00000, B00000, B00000}; 457byte image104[8] = {B00100, B00010, B11111, B01000, B00100, B00000, B00000, B00000}; 458byte image105[8] = {B00000, B00000, B00100, B00010, B00001, B11111, B01000, B00100}; 459 460 461lcd.createChar(0, image103); 462lcd.createChar(1, image104); 463lcd.createChar(2, image105); 464 465 466lcd.setCursor(13, 1); 467lcd.write(byte(0)); 468lcd.setCursor(15, 0); 469lcd.write(byte(1)); 470lcd.setCursor(14, 0); 471lcd.write(byte(2)); 472delay(2000); 473lcd.begin(16, 2); 474lcd.print("So if you want"); 475delay(2000); 476lcd.begin(16, 2); 477lcd.print("to play again"); 478delay(1500); 479lcd.begin(16, 2); 480lcd.print("press the"); 481delay(1500); 482lcd.begin(16, 2); 483lcd.print("RESET button"); 484delay(2000); 485lcd.begin(16, 2); 486lcd.print("So, bye bye!"); 487delay(1500); 488lcd.begin(16, 2); 489lcd.print("see ya later! (:"); 490 491}
Test Code
cpp
This is just a test code. try this one first and it will reveal if your creation works! if this works than the master code will too!
1// include the library code: 2#include <LiquidCrystal.h> 3 4// initialize the library by associating any needed LCD interface pin 5// with the arduino pin number it is connected to 6const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2; 7LiquidCrystal lcd(rs, en, d4, d5, d6, d7); 8 9void setup() { 10 // set up the LCD's number of columns and rows: 11 lcd.begin(16, 2); 12 // Print a message to the LCD. 13 lcd.print("It's Working!"); 14} 15 16void loop() { 17 // Turn off the display: 18 lcd.noDisplay(); 19 delay(500); 20 // Turn on the display: 21 lcd.display(); 22 delay(500); 23}
Documentation
LCD Schematic
The Schematic needed for this project, USE IT!
LCD schamatic.png

Comments
Only logged in users can leave comments