Make a Jumping Jack game using 16*2 LCD display and push button interfacing with Arduino Uno

  Рет қаралды 35,365

REES52

REES52

Күн бұрын

Пікірлер: 51
@krishrp143
@krishrp143 8 ай бұрын
100% working very thankyou
@greenguy665
@greenguy665 Жыл бұрын
thank you! but, the lcd isnt displaying.But its on.
@anillamichhane6959
@anillamichhane6959 2 жыл бұрын
thank you! and can i use this video for my college project?
@FarisPehlic
@FarisPehlic 5 ай бұрын
can i do it without an potentiometer
@manjuj-bx3qi
@manjuj-bx3qi 2 ай бұрын
Code??
@anaishamehta101
@anaishamehta101 2 жыл бұрын
Its working on tinkercad but not on the actual hardware...could someone please help
@Ajay-ns9ut
@Ajay-ns9ut Жыл бұрын
Are you solved that problem ?? if you solved can you please hehp me to send that code and ckt diagram
@robotechzone
@robotechzone 3 жыл бұрын
can i buy produt from your site
@robotechzone
@robotechzone 3 жыл бұрын
is it safe to buy product from your site
@shinobipanda2331
@shinobipanda2331 2 жыл бұрын
Thank you! this really works well. 👍 This is a great project! thanks for the idea.
@Baconyy-jf5pq
@Baconyy-jf5pq 4 ай бұрын
does not work. connections are properly installed.
@SydTMZ
@SydTMZ Ай бұрын
Do you have a code?
@rees5286
@rees5286 15 күн бұрын
Yes, the code is available! You can find the link to it in the description. Let me know if you have any questions or need further assistance. Happy coding!☺
@PesumKadhai
@PesumKadhai Жыл бұрын
thank you! but, the lcd isnt displaying.But its on.
@vivaanchoudhary7464
@vivaanchoudhary7464 3 жыл бұрын
Wow dude
@neellakmal
@neellakmal Жыл бұрын
need access for code plz
@yashpanchal2184
@yashpanchal2184 Жыл бұрын
how to do this on a standalone atmega328p chip ??
@Dxiag123
@Dxiag123 4 жыл бұрын
we r unable to get the code through above link
@efebostanc8590
@efebostanc8590 3 жыл бұрын
#include #define PIN_BUTTON 2 #define PIN_AUTOPLAY 1 #define PIN_READWRITE 10 #define PIN_CONTRAST 12 #define SPRITE_RUN1 1 #define SPRITE_RUN2 2 #define SPRITE_JUMP 3 #define SPRITE_JUMP_UPPER '.' // Use the '.' character for the head #define SPRITE_JUMP_LOWER 4 #define SPRITE_TERRAIN_EMPTY ' ' // User the ' ' character #define SPRITE_TERRAIN_SOLID 5 #define SPRITE_TERRAIN_SOLID_RIGHT 6 #define SPRITE_TERRAIN_SOLID_LEFT 7 #define HERO_HORIZONTAL_POSITION 1 // Horizontal position of hero on screen #define TERRAIN_WIDTH 16 #define TERRAIN_EMPTY 0 #define TERRAIN_LOWER_BLOCK 1 #define TERRAIN_UPPER_BLOCK 2 #define HERO_POSITION_OFF 0 // Hero is invisible #define HERO_POSITION_RUN_LOWER_1 1 // Hero is running on lower row (pose 1) #define HERO_POSITION_RUN_LOWER_2 2 // (pose 2) #define HERO_POSITION_JUMP_1 3 // Starting a jump #define HERO_POSITION_JUMP_2 4 // Half-way up #define HERO_POSITION_JUMP_3 5 // Jump is on upper row #define HERO_POSITION_JUMP_4 6 // Jump is on upper row #define HERO_POSITION_JUMP_5 7 // Jump is on upper row #define HERO_POSITION_JUMP_6 8 // Jump is on upper row #define HERO_POSITION_JUMP_7 9 // Half-way down #define HERO_POSITION_JUMP_8 10 // About to land #define HERO_POSITION_RUN_UPPER_1 11 // Hero is running on upper row (pose 1) #define HERO_POSITION_RUN_UPPER_2 12 // (pose 2) LiquidCrystal lcd(11, 9, 6, 5, 4, 3); static char terrainUpper[TERRAIN_WIDTH + 1]; static char terrainLower[TERRAIN_WIDTH + 1]; static bool buttonPushed = false; void initializeGraphics(){ static byte graphics[] = { // Run position 1 B01100, B01100, B00000, B01110, B11100, B01100, B11010, B10011, // Run position 2 B01100, B01100, B00000, B01100, B01100, B01100, B01100, B01110, // Jump B01100, B01100, B00000, B11110, B01101, B11111, B10000, B00000, // Jump lower B11110, B01101, B11111, B10000, B00000, B00000, B00000, B00000, // Ground B11111, B11111, B11111, B11111, B11111, B11111, B11111, B11111, // Ground right B00011, B00011, B00011, B00011, B00011, B00011, B00011, B00011, // Ground left B11000, B11000, B11000, B11000, B11000, B11000, B11000, B11000, }; int i; // Skip using character 0, this allows lcd.print() to be used to // quickly draw multiple characters for (i = 0; i < 7; ++i) { lcd.createChar(i + 1, &graphics[i * 8]); } for (i = 0; i < TERRAIN_WIDTH; ++i) { terrainUpper[i] = SPRITE_TERRAIN_EMPTY; terrainLower[i] = SPRITE_TERRAIN_EMPTY; } } // Slide the terrain to the left in half-character increments // void advanceTerrain(char* terrain, byte newTerrain){ for (int i = 0; i < TERRAIN_WIDTH; ++i) { char current = terrain[i]; char next = (i == TERRAIN_WIDTH-1) ? newTerrain : terrain[i+1]; switch (current){ case SPRITE_TERRAIN_EMPTY: terrain[i] = (next == SPRITE_TERRAIN_SOLID) ? SPRITE_TERRAIN_SOLID_RIGHT : SPRITE_TERRAIN_EMPTY; break; case SPRITE_TERRAIN_SOLID: terrain[i] = (next == SPRITE_TERRAIN_EMPTY) ? SPRITE_TERRAIN_SOLID_LEFT : SPRITE_TERRAIN_SOLID; break; case SPRITE_TERRAIN_SOLID_RIGHT: terrain[i] = SPRITE_TERRAIN_SOLID; break; case SPRITE_TERRAIN_SOLID_LEFT: terrain[i] = SPRITE_TERRAIN_EMPTY; break; } } } bool drawHero(byte position, char* terrainUpper, char* terrainLower, unsigned int score) { bool collide = false; char upperSave = terrainUpper[HERO_HORIZONTAL_POSITION]; char lowerSave = terrainLower[HERO_HORIZONTAL_POSITION]; byte upper, lower; switch (position) { case HERO_POSITION_OFF: upper = lower = SPRITE_TERRAIN_EMPTY; break; case HERO_POSITION_RUN_LOWER_1: upper = SPRITE_TERRAIN_EMPTY; lower = SPRITE_RUN1; break; case HERO_POSITION_RUN_LOWER_2: upper = SPRITE_TERRAIN_EMPTY; lower = SPRITE_RUN2; break; case HERO_POSITION_JUMP_1: case HERO_POSITION_JUMP_8: upper = SPRITE_TERRAIN_EMPTY; lower = SPRITE_JUMP; break; case HERO_POSITION_JUMP_2: case HERO_POSITION_JUMP_7: upper = SPRITE_JUMP_UPPER; lower = SPRITE_JUMP_LOWER; break; case HERO_POSITION_JUMP_3: case HERO_POSITION_JUMP_4: case HERO_POSITION_JUMP_5: case HERO_POSITION_JUMP_6: upper = SPRITE_JUMP; lower = SPRITE_TERRAIN_EMPTY; break; case HERO_POSITION_RUN_UPPER_1: upper = SPRITE_RUN1; lower = SPRITE_TERRAIN_EMPTY; break; case HERO_POSITION_RUN_UPPER_2: upper = SPRITE_RUN2; lower = SPRITE_TERRAIN_EMPTY; break; } if (upper != ' ') { terrainUpper[HERO_HORIZONTAL_POSITION] = upper; collide = (upperSave == SPRITE_TERRAIN_EMPTY) ? false : true; } if (lower != ' ') { terrainLower[HERO_HORIZONTAL_POSITION] = lower; collide |= (lowerSave == SPRITE_TERRAIN_EMPTY) ? false : true; } byte digits = (score > 9999) ? 5 : (score > 999) ? 4 : (score > 99) ? 3 : (score > 9) ? 2 : 1; // Draw the scene terrainUpper[TERRAIN_WIDTH] = '\0'; terrainLower[TERRAIN_WIDTH] = '\0'; char temp = terrainUpper[16-digits]; terrainUpper[16-digits] = '\0'; lcd.setCursor(0,0); lcd.print(terrainUpper); terrainUpper[16-digits] = temp; lcd.setCursor(0,1); lcd.print(terrainLower); lcd.setCursor(16 - digits,0); lcd.print(score); terrainUpper[HERO_HORIZONTAL_POSITION] = upperSave; terrainLower[HERO_HORIZONTAL_POSITION] = lowerSave; return collide; } // Handle the button push as an interrupt void buttonPush() { buttonPushed = true; } void setup(){ pinMode(PIN_READWRITE, OUTPUT); digitalWrite(PIN_READWRITE, LOW); pinMode(PIN_CONTRAST, OUTPUT); digitalWrite(PIN_CONTRAST, LOW); pinMode(PIN_BUTTON, INPUT); digitalWrite(PIN_BUTTON, HIGH); pinMode(PIN_AUTOPLAY, OUTPUT); digitalWrite(PIN_AUTOPLAY, HIGH); // Digital pin 2 maps to interrupt 0 attachInterrupt(0/*PIN_BUTTON*/, buttonPush, FALLING); initializeGraphics(); lcd.begin(16, 2); } void loop(){ static byte heroPos = HERO_POSITION_RUN_LOWER_1; static byte newTerrainType = TERRAIN_EMPTY; static byte newTerrainDuration = 1; static bool playing = false; static bool blink = false; static unsigned int distance = 0; if (!playing) { drawHero((blink) ? HERO_POSITION_OFF : heroPos, terrainUpper, terrainLower, distance >> 3); if (blink) { lcd.setCursor(0,0); lcd.print("Press Start"); } delay(250); blink = !blink; if (buttonPushed) { initializeGraphics(); heroPos = HERO_POSITION_RUN_LOWER_1; playing = true; buttonPushed = false; distance = 0; } return; } // Shift the terrain to the left advanceTerrain(terrainLower, newTerrainType == TERRAIN_LOWER_BLOCK ? SPRITE_TERRAIN_SOLID : SPRITE_TERRAIN_EMPTY); advanceTerrain(terrainUpper, newTerrainType == TERRAIN_UPPER_BLOCK ? SPRITE_TERRAIN_SOLID : SPRITE_TERRAIN_EMPTY); // Make new terrain to enter on the right if (--newTerrainDuration == 0) { if (newTerrainType == TERRAIN_EMPTY) { newTerrainType = (random(3) == 0) ? TERRAIN_UPPER_BLOCK : TERRAIN_LOWER_BLOCK; newTerrainDuration = 2 + random(10); } else { newTerrainType = TERRAIN_EMPTY; newTerrainDuration = 10 + random(10); } } if (buttonPushed) { if (heroPos > 3)) { playing = false; // The hero collided with something. Too bad. } else { if (heroPos == HERO_POSITION_RUN_LOWER_2 || heroPos == HERO_POSITION_JUMP_8) { heroPos = HERO_POSITION_RUN_LOWER_1; } else if ((heroPos >= HERO_POSITION_JUMP_3 && heroPos = HERO_POSITION_RUN_UPPER_1 && terrainLower[HERO_HORIZONTAL_POSITION] == SPRITE_TERRAIN_EMPTY) { heroPos = HERO_POSITION_JUMP_5; } else if (heroPos == HERO_POSITION_RUN_UPPER_2) { heroPos = HERO_POSITION_RUN_UPPER_1; } else { ++heroPos; } ++distance; digitalWrite(PIN_AUTOPLAY, terrainLower[HERO_HORIZONTAL_POSITION + 2] == SPRITE_TERRAIN_EMPTY ? HIGH : LOW); } delay(100); }
@somsiad1428
@somsiad1428 3 жыл бұрын
best indian accent XD
@techov82
@techov82 4 жыл бұрын
i can dude
@nimz4
@nimz4 3 жыл бұрын
i made this but the character keeps on jumping even if i dont press the button.why ?
@rishan.science.explorer7132
@rishan.science.explorer7132 2 жыл бұрын
what was the first line
@geoduino1233
@geoduino1233 3 жыл бұрын
can you rewrite this code that after score 50 delay of speed was 50 after score 50 speed will 2x can you?
@aayaanshjain9170
@aayaanshjain9170 Жыл бұрын
u could use if conditions like: if score == 50: speed *2
@KAYS_2
@KAYS_2 3 жыл бұрын
can u make it clear I cant even see it but its good
@motorcrossspeedway8944
@motorcrossspeedway8944 2 жыл бұрын
can we do the project without potentiometer????
@truthful_drift
@truthful_drift 2 жыл бұрын
yes, i think
@asiarizwan00
@asiarizwan00 3 жыл бұрын
thanksss a loott it worked for me and it was soo good thanks again
@jonathandias3403
@jonathandias3403 4 жыл бұрын
dude download it and it will show as an arduino genuino file and then open it
@Furbated
@Furbated 2 жыл бұрын
it isint working
@Ruzgar_K_
@Ruzgar_K_ Жыл бұрын
Me too. did you solve
@mohammaddwiek2136
@mohammaddwiek2136 3 жыл бұрын
it is not working
@Ruzgar_K_
@Ruzgar_K_ Жыл бұрын
Me too. did you solve
@yadavblood5367
@yadavblood5367 4 жыл бұрын
You are superb
@jyeshtal2574
@jyeshtal2574 3 жыл бұрын
hello there so, there is a prob which I am facing while I was uploading the code, it is saying some error " Arduino: 1.8.13 (Windows Store 1.8.42.0) (Windows 10), Board: "Arduino Uno" Sketch uses 3844 bytes (11%) of program storage space. The maximum is 32256 bytes. Global variables use 163 bytes (7%) of dynamic memory, leaving 1885 bytes for local variables. The maximum is 2048 bytes. An error occurred while uploading the sketch " can anyone help me out? pls
@strikertuber8566
@strikertuber8566 3 жыл бұрын
Did you solved it ??
@mailtobasava
@mailtobasava 2 жыл бұрын
See if you have selected the port
@mailtobasava
@mailtobasava 2 жыл бұрын
If the problem is not still resolved then you must install the driver
@mailtobasava
@mailtobasava 2 жыл бұрын
@jyeshta l
@jyeshtal2574
@jyeshtal2574 2 жыл бұрын
@@mailtobasava Which drive are you talking about
@nimz4
@nimz4 3 жыл бұрын
i also dont want to use a photoresistor,what should i do?
@mailtobasava
@mailtobasava 2 жыл бұрын
buy it because without it there are very less projects
@rnirmalaramesh8907
@rnirmalaramesh8907 3 жыл бұрын
Sir can you post pin digram in comment
@khansalic1209
@khansalic1209 3 жыл бұрын
Hi there, I’ve managed to get the home page up (“press to start” & the figure), however the push button is not being recognised. Instead would I have to connect the positive to the 5V pin on the Arduino? If you could help ASAP, it’d be highly appreciated. Cheers,
@Qvbix0r
@Qvbix0r 2 жыл бұрын
It doesn't work for me either
@E-_-waste_unofficial
@E-_-waste_unofficial 2 жыл бұрын
Not working for me :(
@sda2750
@sda2750 4 жыл бұрын
Thank you Im watching from Turkey I liked your videos
@akilcejku8245
@akilcejku8245 3 жыл бұрын
sa
@electroniclab9388
@electroniclab9388 3 жыл бұрын
waste of time no use not working at all
Using LCD Displays with Arduino
46:23
DroneBot Workshop
Рет қаралды 1,7 МЛН
ARDUINO LCD GAME WITH JOYSTICK (STEP BY STEP)
6:02
JustBuilds
Рет қаралды 20 М.
小天使和小丑太会演了!#小丑#天使#家庭#搞笑
00:25
家庭搞笑日记
Рет қаралды 36 МЛН
哈莉奎因怎么变骷髅了#小丑 #shorts
00:19
好人小丑
Рет қаралды 55 МЛН
LCD Ekran ile Oyun Projemiz
10:21
Beyhan Arslan
Рет қаралды 7 М.
Учим Arduino за 1 час! #Профессионально
1:00:00
Teacher Inventor DIY
Рет қаралды 260 М.
Can the ESP32 Handle 6 animated GIFs on 6 Screens ?
6:36
The Last Outpost Workshop
Рет қаралды 41 М.
Arduino LCD I2C - Tutorial with Arduino Uno
5:29
Aymaan Rahman
Рет қаралды 458 М.
Animations on OLED display - Arduino
10:51
Volos Projects
Рет қаралды 198 М.
How to Set Up and Program an LCD on the Arduino
5:29
Creative Stuff
Рет қаралды 194 М.
Arduino Security Panel System with using Keypad and LCD Display
10:09
小天使和小丑太会演了!#小丑#天使#家庭#搞笑
00:25
家庭搞笑日记
Рет қаралды 36 МЛН