Components and supplies
Arduino UNO
Standard LCD - 16x2 White on Blue
Resistor 220 ohm
Apps and platforms
Custom Glyph Generator
Arduino IDE
Project description
Code
Butterfly Metamorphosis Animation
arduino
This is example code (the code behind the butterfly metamorphosis animation from the gif).
1/* 2 butterfly metamorphosis animation 3 4 2021 ~ by tusindfryd 5 this code is in public domain 6*/ 7 8#include <LiquidCrystal.h> 9LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // RS, E, D4, D5, D6, D7 10void setup() 11{ 12 lcd.begin(16, 2); 13} 14void loop() 15{ 16 image00(); 17 delay(250); 18 image01(); 19 delay(250); 20 image02(); 21 delay(250); 22 image03(); 23 delay(700); 24 image04(); 25 delay(250); 26 image05(); 27 delay(250); 28 image06(); 29 delay(700); 30 image07(); 31 delay(1250); 32} 33 34void image00() 35{ 36 lcd.clear(); 37 38 byte image22[8] = {B00110, B01101, B11011, B10011, B00111, B01111, B01111, B11111}; 39 byte image23[8] = {B01111, B11110, B11100, B11000, B11000, B10000, B10000, B00000}; 40 byte image07[8] = {B00000, B00000, B00000, B00000, B00000, B00000, B00001, B00111}; 41 byte image08[8] = {B00000, B01000, B10000, B10000, B10000, B11111, B11111, B11000}; 42 byte image09[8] = {B00000, B00000, B00000, B00000, B00000, B11000, B11000, B00100}; 43 44 lcd.createChar(0, image22); 45 lcd.createChar(1, image23); 46 lcd.createChar(2, image07); 47 lcd.createChar(3, image08); 48 lcd.createChar(4, image09); 49 50 lcd.setCursor(5, 1); 51 lcd.write(byte(0)); 52 lcd.setCursor(6, 1); 53 lcd.write(byte(1)); 54 lcd.setCursor(6, 0); 55 lcd.write(byte(2)); 56 lcd.setCursor(7, 0); 57 lcd.write(byte(3)); 58 lcd.setCursor(8, 0); 59 lcd.write(byte(4)); 60} 61 62void image01() 63{ 64 lcd.clear(); 65 66 byte image22[8] = {B00110, B00101, B00011, B00011, B00111, B01111, B01111, B11111}; 67 byte image23[8] = {B01111, B11110, B11100, B11000, B11000, B10000, B10000, B00000}; 68 byte image07[8] = {B00000, B00000, B00000, B00000, B00000, B00000, B11001, B10111}; 69 byte image08[8] = {B00000, B01000, B10000, B10000, B10000, B11111, B11111, B11000}; 70 byte image09[8] = {B00000, B00000, B00000, B00000, B00000, B11000, B11000, B00100}; 71 byte image06[8] = {B00000, B00000, B00000, B00000, B00000, B00000, B00000, B00011}; 72 73 lcd.createChar(0, image22); 74 lcd.createChar(1, image23); 75 lcd.createChar(2, image07); 76 lcd.createChar(3, image08); 77 lcd.createChar(4, image09); 78 lcd.createChar(5, image06); 79 80 lcd.setCursor(5, 1); 81 lcd.write(byte(0)); 82 lcd.setCursor(6, 1); 83 lcd.write(byte(1)); 84 lcd.setCursor(6, 0); 85 lcd.write(byte(2)); 86 lcd.setCursor(7, 0); 87 lcd.write(byte(3)); 88 lcd.setCursor(8, 0); 89 lcd.write(byte(4)); 90 lcd.setCursor(5, 0); 91 lcd.write(byte(5)); 92} 93 94void image02() 95{ 96 lcd.clear(); 97 98 byte image22[8] = {B00000, B00001, B00011, B00011, B00111, B01111, B01111, B11111}; 99 byte image23[8] = {B01111, B11110, B11100, B11000, B11000, B10000, B10000, B00000}; 100 byte image07[8] = {B00000, B00000, B00000, B00001, B00111, B00100, B11001, B10111}; 101 byte image08[8] = {B00000, B01000, B10000, B10000, B10000, B11111, B11111, B11000}; 102 byte image09[8] = {B00000, B00000, B00000, B00000, B00000, B11000, B11000, B00100}; 103 104 lcd.createChar(0, image22); 105 lcd.createChar(1, image23); 106 lcd.createChar(2, image07); 107 lcd.createChar(3, image08); 108 lcd.createChar(4, image09); 109 110 lcd.setCursor(5, 1); 111 lcd.write(byte(0)); 112 lcd.setCursor(6, 1); 113 lcd.write(byte(1)); 114 lcd.setCursor(6, 0); 115 lcd.write(byte(2)); 116 lcd.setCursor(7, 0); 117 lcd.write(byte(3)); 118 lcd.setCursor(8, 0); 119 lcd.write(byte(4)); 120} 121 122void image03() 123{ 124 lcd.clear(); 125 126 byte image22[8] = {B00000, B00001, B00011, B00011, B00111, B01111, B01111, B11111}; 127 byte image23[8] = {B01111, B11110, B11100, B11000, B11000, B10000, B10000, B00000}; 128 byte image07[8] = {B00000, B00000, B00000, B00000, B00000, B00000, B00001, B00111}; 129 byte image08[8] = {B00000, B01000, B10000, B10000, B10000, B11111, B11111, B11010}; 130 byte image09[8] = {B00000, B00000, B00000, B00000, B00000, B11000, B11000, B00100}; 131 byte image24[8] = {B00010, B00111, B00111, B00111, B00111, B00111, B00010, B00000}; 132 133 lcd.createChar(0, image22); 134 lcd.createChar(1, image23); 135 lcd.createChar(2, image07); 136 lcd.createChar(3, image08); 137 lcd.createChar(4, image09); 138 lcd.createChar(5, image24); 139 140 lcd.setCursor(5, 1); 141 lcd.write(byte(0)); 142 lcd.setCursor(6, 1); 143 lcd.write(byte(1)); 144 lcd.setCursor(6, 0); 145 lcd.write(byte(2)); 146 lcd.setCursor(7, 0); 147 lcd.write(byte(3)); 148 lcd.setCursor(8, 0); 149 lcd.write(byte(4)); 150 lcd.setCursor(7, 1); 151 lcd.write(byte(5)); 152} 153 154void image04() 155{ 156 lcd.clear(); 157 158 byte image22[8] = {B00000, B00001, B00011, B00011, B00111, B01111, B01111, B11111}; 159 byte image23[8] = {B01111, B11110, B11100, B11000, B11000, B10001, B10000, B00000}; 160 byte image07[8] = {B00000, B00000, B00000, B00000, B00000, B00000, B00001, B00111}; 161 byte image08[8] = {B00000, B01000, B10000, B10000, B10000, B11111, B11111, B11010}; 162 byte image09[8] = {B00000, B00000, B00000, B00000, B00000, B11000, B11000, B00100}; 163 byte image24[8] = {B00010, B00100, B01011, B10101, B11010, B10101, B11010, B01110}; 164 byte image25[8] = {B00000, B00000, B00000, B10000, B10000, B00000, B00000, B00000}; 165 166 lcd.createChar(0, image22); 167 lcd.createChar(1, image23); 168 lcd.createChar(2, image07); 169 lcd.createChar(3, image08); 170 lcd.createChar(4, image09); 171 lcd.createChar(5, image24); 172 lcd.createChar(6, image25); 173 174 lcd.setCursor(5, 1); 175 lcd.write(byte(0)); 176 lcd.setCursor(6, 1); 177 lcd.write(byte(1)); 178 lcd.setCursor(6, 0); 179 lcd.write(byte(2)); 180 lcd.setCursor(7, 0); 181 lcd.write(byte(3)); 182 lcd.setCursor(8, 0); 183 lcd.write(byte(4)); 184 lcd.setCursor(7, 1); 185 lcd.write(byte(5)); 186 lcd.setCursor(8, 1); 187 lcd.write(byte(6)); 188} 189 190void image05() 191{ 192 lcd.clear(); 193 194 byte image24[8] = {B01010, B10100, B01011, B10101, B11010, B10101, B11010, B01110}; 195 byte image25[8] = {B00000, B00000, B00000, B10000, B10000, B00000, B00000, B00000}; 196 byte image23[8] = {B01101, B01010, B01101, B00111, B00000, B00000, B00000, B00000}; 197 byte image07[8] = {B00000, B00000, B00000, B00000, B00000, B00000, B00001, B00011}; 198 byte image08[8] = {B00000, B00000, B00000, B00000, B00000, B00000, B00000, B10000}; 199 200 lcd.createChar(0, image24); 201 lcd.createChar(1, image25); 202 lcd.createChar(2, image23); 203 lcd.createChar(3, image07); 204 lcd.createChar(4, image08); 205 206 lcd.setCursor(7, 1); 207 lcd.write(byte(0)); 208 lcd.setCursor(8, 1); 209 lcd.write(byte(1)); 210 lcd.setCursor(6, 1); 211 lcd.write(byte(2)); 212 lcd.setCursor(6, 0); 213 lcd.write(byte(3)); 214 lcd.setCursor(7, 0); 215 lcd.write(byte(4)); 216} 217 218void image06() 219{ 220 lcd.clear(); 221 222 byte image08[8] = {B00000, B00100, B01010, B01010, B10001, B00011, B00110, B01100}; 223 byte image07[8] = {B00000, B00000, B00000, B00000, B00001, B00010, B00010, B00001}; 224 byte image09[8] = {B00000, B00000, B10000, B11000, B00000, B00000, B11000, B00100}; 225 byte image24[8] = {B00100, B00100, B00011, B00000, B00000, B00000, B00000, B00000}; 226 byte image25[8] = {B10000, B00000, B00000, B00000, B00000, B00000, B00000, B00000}; 227 228 lcd.createChar(0, image08); 229 lcd.createChar(1, image07); 230 lcd.createChar(2, image09); 231 lcd.createChar(3, image24); 232 lcd.createChar(4, image25); 233 234 lcd.setCursor(7, 0); 235 lcd.write(byte(0)); 236 lcd.setCursor(6, 0); 237 lcd.write(byte(1)); 238 lcd.setCursor(8, 0); 239 lcd.write(byte(2)); 240 lcd.setCursor(7, 1); 241 lcd.write(byte(3)); 242 lcd.setCursor(8, 1); 243 lcd.write(byte(4)); 244} 245 246void image07() 247{ 248 lcd.clear(); 249 250 byte image24[8] = {B10101, B01110, B01110, B00100, B10101, B01110, B00100, B11111}; 251 byte image08[8] = {B00000, B00100, B01010, B01010, B10001, B00011, B00110, B01100}; 252 byte image07[8] = {B00000, B00000, B00000, B00000, B00001, B00010, B00010, B00001}; 253 byte image09[8] = {B00000, B00000, B10000, B11000, B00000, B00000, B00000, B00000}; 254 255 lcd.createChar(0, image24); 256 lcd.createChar(1, image08); 257 lcd.createChar(2, image07); 258 lcd.createChar(3, image09); 259 260 lcd.setCursor(7, 1); 261 lcd.write(byte(0)); 262 lcd.setCursor(7, 0); 263 lcd.write(byte(1)); 264 lcd.setCursor(6, 0); 265 lcd.write(byte(2)); 266 lcd.setCursor(8, 0); 267 lcd.write(byte(3)); 268}
Butterfly Metamorphosis Animation
arduino
This is example code (the code behind the butterfly metamorphosis animation from the gif).
1/* 2 butterfly metamorphosis animation 3 4 2021 ~ by tusindfryd 5 this code is in public domain 6*/ 7 8#include <LiquidCrystal.h> 9LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // RS, E, D4, D5, D6, D7 10void setup() 11{ 12 lcd.begin(16, 2); 13} 14void loop() 15{ 16 image00(); 17 delay(250); 18 image01(); 19 delay(250); 20 image02(); 21 delay(250); 22 image03(); 23 delay(700); 24 image04(); 25 delay(250); 26 image05(); 27 delay(250); 28 image06(); 29 delay(700); 30 image07(); 31 delay(1250); 32} 33 34void image00() 35{ 36 lcd.clear(); 37 38 byte image22[8] = {B00110, B01101, B11011, B10011, B00111, B01111, B01111, B11111}; 39 byte image23[8] = {B01111, B11110, B11100, B11000, B11000, B10000, B10000, B00000}; 40 byte image07[8] = {B00000, B00000, B00000, B00000, B00000, B00000, B00001, B00111}; 41 byte image08[8] = {B00000, B01000, B10000, B10000, B10000, B11111, B11111, B11000}; 42 byte image09[8] = {B00000, B00000, B00000, B00000, B00000, B11000, B11000, B00100}; 43 44 lcd.createChar(0, image22); 45 lcd.createChar(1, image23); 46 lcd.createChar(2, image07); 47 lcd.createChar(3, image08); 48 lcd.createChar(4, image09); 49 50 lcd.setCursor(5, 1); 51 lcd.write(byte(0)); 52 lcd.setCursor(6, 1); 53 lcd.write(byte(1)); 54 lcd.setCursor(6, 0); 55 lcd.write(byte(2)); 56 lcd.setCursor(7, 0); 57 lcd.write(byte(3)); 58 lcd.setCursor(8, 0); 59 lcd.write(byte(4)); 60} 61 62void image01() 63{ 64 lcd.clear(); 65 66 byte image22[8] = {B00110, B00101, B00011, B00011, B00111, B01111, B01111, B11111}; 67 byte image23[8] = {B01111, B11110, B11100, B11000, B11000, B10000, B10000, B00000}; 68 byte image07[8] = {B00000, B00000, B00000, B00000, B00000, B00000, B11001, B10111}; 69 byte image08[8] = {B00000, B01000, B10000, B10000, B10000, B11111, B11111, B11000}; 70 byte image09[8] = {B00000, B00000, B00000, B00000, B00000, B11000, B11000, B00100}; 71 byte image06[8] = {B00000, B00000, B00000, B00000, B00000, B00000, B00000, B00011}; 72 73 lcd.createChar(0, image22); 74 lcd.createChar(1, image23); 75 lcd.createChar(2, image07); 76 lcd.createChar(3, image08); 77 lcd.createChar(4, image09); 78 lcd.createChar(5, image06); 79 80 lcd.setCursor(5, 1); 81 lcd.write(byte(0)); 82 lcd.setCursor(6, 1); 83 lcd.write(byte(1)); 84 lcd.setCursor(6, 0); 85 lcd.write(byte(2)); 86 lcd.setCursor(7, 0); 87 lcd.write(byte(3)); 88 lcd.setCursor(8, 0); 89 lcd.write(byte(4)); 90 lcd.setCursor(5, 0); 91 lcd.write(byte(5)); 92} 93 94void image02() 95{ 96 lcd.clear(); 97 98 byte image22[8] = {B00000, B00001, B00011, B00011, B00111, B01111, B01111, B11111}; 99 byte image23[8] = {B01111, B11110, B11100, B11000, B11000, B10000, B10000, B00000}; 100 byte image07[8] = {B00000, B00000, B00000, B00001, B00111, B00100, B11001, B10111}; 101 byte image08[8] = {B00000, B01000, B10000, B10000, B10000, B11111, B11111, B11000}; 102 byte image09[8] = {B00000, B00000, B00000, B00000, B00000, B11000, B11000, B00100}; 103 104 lcd.createChar(0, image22); 105 lcd.createChar(1, image23); 106 lcd.createChar(2, image07); 107 lcd.createChar(3, image08); 108 lcd.createChar(4, image09); 109 110 lcd.setCursor(5, 1); 111 lcd.write(byte(0)); 112 lcd.setCursor(6, 1); 113 lcd.write(byte(1)); 114 lcd.setCursor(6, 0); 115 lcd.write(byte(2)); 116 lcd.setCursor(7, 0); 117 lcd.write(byte(3)); 118 lcd.setCursor(8, 0); 119 lcd.write(byte(4)); 120} 121 122void image03() 123{ 124 lcd.clear(); 125 126 byte image22[8] = {B00000, B00001, B00011, B00011, B00111, B01111, B01111, B11111}; 127 byte image23[8] = {B01111, B11110, B11100, B11000, B11000, B10000, B10000, B00000}; 128 byte image07[8] = {B00000, B00000, B00000, B00000, B00000, B00000, B00001, B00111}; 129 byte image08[8] = {B00000, B01000, B10000, B10000, B10000, B11111, B11111, B11010}; 130 byte image09[8] = {B00000, B00000, B00000, B00000, B00000, B11000, B11000, B00100}; 131 byte image24[8] = {B00010, B00111, B00111, B00111, B00111, B00111, B00010, B00000}; 132 133 lcd.createChar(0, image22); 134 lcd.createChar(1, image23); 135 lcd.createChar(2, image07); 136 lcd.createChar(3, image08); 137 lcd.createChar(4, image09); 138 lcd.createChar(5, image24); 139 140 lcd.setCursor(5, 1); 141 lcd.write(byte(0)); 142 lcd.setCursor(6, 1); 143 lcd.write(byte(1)); 144 lcd.setCursor(6, 0); 145 lcd.write(byte(2)); 146 lcd.setCursor(7, 0); 147 lcd.write(byte(3)); 148 lcd.setCursor(8, 0); 149 lcd.write(byte(4)); 150 lcd.setCursor(7, 1); 151 lcd.write(byte(5)); 152} 153 154void image04() 155{ 156 lcd.clear(); 157 158 byte image22[8] = {B00000, B00001, B00011, B00011, B00111, B01111, B01111, B11111}; 159 byte image23[8] = {B01111, B11110, B11100, B11000, B11000, B10001, B10000, B00000}; 160 byte image07[8] = {B00000, B00000, B00000, B00000, B00000, B00000, B00001, B00111}; 161 byte image08[8] = {B00000, B01000, B10000, B10000, B10000, B11111, B11111, B11010}; 162 byte image09[8] = {B00000, B00000, B00000, B00000, B00000, B11000, B11000, B00100}; 163 byte image24[8] = {B00010, B00100, B01011, B10101, B11010, B10101, B11010, B01110}; 164 byte image25[8] = {B00000, B00000, B00000, B10000, B10000, B00000, B00000, B00000}; 165 166 lcd.createChar(0, image22); 167 lcd.createChar(1, image23); 168 lcd.createChar(2, image07); 169 lcd.createChar(3, image08); 170 lcd.createChar(4, image09); 171 lcd.createChar(5, image24); 172 lcd.createChar(6, image25); 173 174 lcd.setCursor(5, 1); 175 lcd.write(byte(0)); 176 lcd.setCursor(6, 1); 177 lcd.write(byte(1)); 178 lcd.setCursor(6, 0); 179 lcd.write(byte(2)); 180 lcd.setCursor(7, 0); 181 lcd.write(byte(3)); 182 lcd.setCursor(8, 0); 183 lcd.write(byte(4)); 184 lcd.setCursor(7, 1); 185 lcd.write(byte(5)); 186 lcd.setCursor(8, 1); 187 lcd.write(byte(6)); 188} 189 190void image05() 191{ 192 lcd.clear(); 193 194 byte image24[8] = {B01010, B10100, B01011, B10101, B11010, B10101, B11010, B01110}; 195 byte image25[8] = {B00000, B00000, B00000, B10000, B10000, B00000, B00000, B00000}; 196 byte image23[8] = {B01101, B01010, B01101, B00111, B00000, B00000, B00000, B00000}; 197 byte image07[8] = {B00000, B00000, B00000, B00000, B00000, B00000, B00001, B00011}; 198 byte image08[8] = {B00000, B00000, B00000, B00000, B00000, B00000, B00000, B10000}; 199 200 lcd.createChar(0, image24); 201 lcd.createChar(1, image25); 202 lcd.createChar(2, image23); 203 lcd.createChar(3, image07); 204 lcd.createChar(4, image08); 205 206 lcd.setCursor(7, 1); 207 lcd.write(byte(0)); 208 lcd.setCursor(8, 1); 209 lcd.write(byte(1)); 210 lcd.setCursor(6, 1); 211 lcd.write(byte(2)); 212 lcd.setCursor(6, 0); 213 lcd.write(byte(3)); 214 lcd.setCursor(7, 0); 215 lcd.write(byte(4)); 216} 217 218void image06() 219{ 220 lcd.clear(); 221 222 byte image08[8] = {B00000, B00100, B01010, B01010, B10001, B00011, B00110, B01100}; 223 byte image07[8] = {B00000, B00000, B00000, B00000, B00001, B00010, B00010, B00001}; 224 byte image09[8] = {B00000, B00000, B10000, B11000, B00000, B00000, B11000, B00100}; 225 byte image24[8] = {B00100, B00100, B00011, B00000, B00000, B00000, B00000, B00000}; 226 byte image25[8] = {B10000, B00000, B00000, B00000, B00000, B00000, B00000, B00000}; 227 228 lcd.createChar(0, image08); 229 lcd.createChar(1, image07); 230 lcd.createChar(2, image09); 231 lcd.createChar(3, image24); 232 lcd.createChar(4, image25); 233 234 lcd.setCursor(7, 0); 235 lcd.write(byte(0)); 236 lcd.setCursor(6, 0); 237 lcd.write(byte(1)); 238 lcd.setCursor(8, 0); 239 lcd.write(byte(2)); 240 lcd.setCursor(7, 1); 241 lcd.write(byte(3)); 242 lcd.setCursor(8, 1); 243 lcd.write(byte(4)); 244} 245 246void image07() 247{ 248 lcd.clear(); 249 250 byte image24[8] = {B10101, B01110, B01110, B00100, B10101, B01110, B00100, B11111}; 251 byte image08[8] = {B00000, B00100, B01010, B01010, B10001, B00011, B00110, B01100}; 252 byte image07[8] = {B00000, B00000, B00000, B00000, B00001, B00010, B00010, B00001}; 253 byte image09[8] = {B00000, B00000, B10000, B11000, B00000, B00000, B00000, B00000}; 254 255 lcd.createChar(0, image24); 256 lcd.createChar(1, image08); 257 lcd.createChar(2, image07); 258 lcd.createChar(3, image09); 259 260 lcd.setCursor(7, 1); 261 lcd.write(byte(0)); 262 lcd.setCursor(7, 0); 263 lcd.write(byte(1)); 264 lcd.setCursor(6, 0); 265 lcd.write(byte(2)); 266 lcd.setCursor(8, 0); 267 lcd.write(byte(3)); 268}
Downloadable files
Connecting the LCD to the Arduino
Connecting the LCD to the Arduino
Comments
Only logged in users can leave comments
tusindfryd
0 Followers
•0 Projects
Table of contents
Intro
49
0