Guest User

Untitled

a guest
Oct 14th, 2022
151
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 7.86 KB | Source Code | 0 0
  1. // Author: Antonii Gzara
  2. //IG: @Antek_Gzara_Animations
  3. //GIT: Antek-Gzara-Animations
  4.  
  5.  
  6. #include <LiquidCrystal.h>
  7.  
  8. #define RIGHT  0
  9. #define UP     1
  10. #define DOWN   2
  11. #define LEFT   3
  12. #define SELECT 4
  13. #define NONE   5
  14.  
  15. int adc_key_in = 0;
  16.  
  17. int read()
  18. {
  19.  
  20.  adc_key_in = analogRead(0);  
  21.      
  22.  if (adc_key_in > 1000) return NONE;
  23.  if (adc_key_in < 50)   return RIGHT;
  24.  if (adc_key_in < 250)  return UP;
  25.  if (adc_key_in < 450)  return DOWN;
  26.  if (adc_key_in < 650)  return LEFT;
  27.  if (adc_key_in < 850)  return SELECT;
  28.  
  29.  return NONE;  // when all others fail, return this...
  30.  
  31. }
  32.  
  33.  
  34. LiquidCrystal lcd(8, 9, 4, 5, 6, 7);        // select the pins used on the LCD panel
  35.  
  36.  
  37. byte a[] = {
  38.   B00000,
  39.   B00000,
  40.   B00000,
  41.   B00000,
  42.   B10000,
  43.   B00000,
  44.   B00000,
  45.   B00000
  46. };
  47.  
  48. byte aa[] = {
  49.   B00000,
  50.   B00000,
  51.   B00000,
  52.   B00000,
  53.   B01000,
  54.   B00000,
  55.   B00000,
  56.   B00000
  57. };
  58.  
  59. byte aaa[] = {
  60.   B00000,
  61.   B00000,
  62.   B00000,
  63.   B00000,
  64.   B00100,
  65.   B00000,
  66.   B00000,
  67.   B00000
  68. };
  69.  
  70. byte aaaa[] = {
  71.   B00000,
  72.   B00000,
  73.   B00000,
  74.   B00000,
  75.   B00010,
  76.   B00000,
  77.   B00000,
  78.   B00000
  79. };
  80.  
  81. byte aaaaa[] = {
  82.   B00000,
  83.   B00000,
  84.   B00000,
  85.   B00000,
  86.   B00001,
  87.   B00000,
  88.   B00000,
  89.   B00000
  90. };
  91.  
  92. ////////////////////////////////////////////////
  93.  
  94. byte b[] = {
  95.  B10000,
  96.  B00000,
  97.  B00000,
  98.  B00000,
  99.  B00000,
  100.  B00000,
  101.  B00000,
  102.  B00000
  103. };
  104. byte bb[] = {
  105.  B01000,
  106.  B00000,
  107.  B00000,
  108.  B00000,
  109.  B00000,
  110.  B00000,
  111.  B00000,
  112.  B00000
  113. };
  114. byte bbb[] = {
  115.  B00100,
  116.  B00000,
  117.  B00000,
  118.  B00000,
  119.  B00000,
  120.  B00000,
  121.  B00000,
  122.  B00000
  123. };
  124. byte bbbb[] = {
  125.  B00010,
  126.  B00000,
  127.  B00000,
  128.  B00000,
  129.  B00000,
  130.  B00000,
  131.  B00000,
  132.  B00000
  133. };
  134. byte bbbbb[] = {
  135.  B00001,
  136.  B00000,
  137.  B00000,
  138.  B00000,
  139.  B00000,
  140.  B00000,
  141.  B00000,
  142.  B00000
  143. };
  144.  
  145. ////////////////////////////////////////////////
  146.  
  147. byte c[] = {
  148.     B00000,
  149.   B10000,
  150.     B00000,
  151.     B00000,
  152.     B00000,
  153.     B00000,
  154.     B00000,
  155.     B00000
  156. };
  157. byte cc[] = {
  158.     B00000,
  159.   B01000,
  160.     B00000,
  161.     B00000,
  162.     B00000,
  163.     B00000,
  164.     B00000,
  165.     B00000
  166. };
  167. byte ccc[] = {
  168.     B00000,
  169.   B00100,
  170.     B00000,
  171.     B00000,
  172.     B00000,
  173.     B00000,
  174.     B00000,
  175.     B00000
  176. };
  177. byte cccc[] = {
  178.     B00000,
  179.   B00010,
  180.     B00000,
  181.     B00000,
  182.     B00000,
  183.     B00000,
  184.     B00000,
  185.     B00000
  186. };
  187. byte ccccc[] = {
  188.     B00000,
  189.   B00001,
  190.     B00000,
  191.     B00000,
  192.     B00000,
  193.     B00000,
  194.     B00000,
  195.     B00000
  196. };
  197.  
  198. /////////////////////////////////////
  199.  
  200. byte d[] = {
  201.     B00000,
  202.     B00000,
  203.   B10000,
  204.     B00000,
  205.     B00000,
  206.     B00000,
  207.     B00000,
  208.     B00000
  209. };
  210. byte dd[] = {
  211.     B00000,
  212.     B00000,
  213.   B01000,
  214.     B00000,
  215.     B00000,
  216.     B00000,
  217.     B00000,
  218.     B00000
  219. };
  220. byte ddd[] = {
  221.     B00000,
  222.     B00000,
  223.   B00100,
  224.     B00000,
  225.     B00000,
  226.     B00000,
  227.     B00000,
  228.     B00000
  229. };
  230. byte dddd[] = {
  231.     B00000,
  232.     B00000,
  233.   B00010,
  234.     B00000,
  235.     B00000,
  236.     B00000,
  237.     B00000,
  238.     B00000
  239. };
  240. byte ddddd[] = {
  241.     B00000,
  242.     B00000,
  243.   B00001,
  244.     B00000,
  245.     B00000,
  246.     B00000,
  247.     B00000,
  248.     B00000
  249. };
  250.  
  251. //////////////////////////////////////////////////
  252.  
  253. byte e[] = {
  254.     B00000,
  255.     B00000,
  256.     B00000,
  257.   B10000,  
  258.     B00000,
  259.     B00000,
  260.     B00000,
  261.     B00000
  262. };
  263. byte ee[] = {
  264.     B00000,
  265.     B00000,
  266.     B00000,
  267.   B01000,  
  268.     B00000,
  269.     B00000,
  270.     B00000,
  271.     B00000
  272. };
  273. byte eee[] = {
  274.     B00000,
  275.     B00000,
  276.     B00000,
  277.   B00100,
  278.     B00000,
  279.     B00000,
  280.     B00000,
  281.     B00000
  282. };
  283. byte eeee[] = {
  284.     B00000,
  285.     B00000,
  286.     B00000,
  287.   B00010,
  288.     B00000,
  289.     B00000,
  290.     B00000,
  291.     B00000
  292. };
  293. byte eeeee[] = {
  294.     B00000,
  295.     B00000,
  296.     B00000,
  297.   B00001,  
  298.     B00000,
  299.     B00000,
  300.     B00000,
  301.     B00000
  302. };
  303.  
  304. ////////////////////////////////////
  305. byte f[] = {
  306.     B00000,
  307.     B00000,
  308.     B00000,
  309.     B00000,
  310.     B00000,
  311.   B10000,
  312.     B00000,
  313.     B00000
  314. };
  315. byte ff[] = {
  316.     B00000,
  317.     B00000,
  318.     B00000,
  319.     B00000,
  320.     B00000,
  321.   B01000,
  322.     B00000,
  323.     B00000
  324. };
  325. byte fff[] = {
  326.     B00000,
  327.     B00000,
  328.     B00000,
  329.     B00000,
  330.     B00000,
  331.   B00100,
  332.     B00000,
  333.     B00000
  334. };
  335. byte ffff[] = {
  336.     B00000,
  337.     B00000,
  338.     B00000,
  339.     B00000,
  340.     B00000,
  341.   B00010,
  342.     B00000,
  343.     B00000
  344. };
  345. byte fffff[] = {
  346.     B00000,
  347.     B00000,
  348.     B00000,
  349.     B00000,
  350.     B00000,
  351.   B00001,
  352.     B00000,
  353.     B00000
  354. };
  355.  
  356. /////////////////////////////////
  357.  
  358. byte g[] = {
  359.     B00000,
  360.     B00000,
  361.     B00000,
  362.     B00000,
  363.     B00000,
  364.     B00000,
  365.   B10000,
  366.     B00000
  367. };
  368. byte gg[] = {
  369.     B00000,
  370.     B00000,
  371.     B00000,
  372.     B00000,
  373.     B00000,
  374.     B00000,
  375.   B01000,
  376.     B00000
  377. };
  378. byte ggg[] = {
  379.     B00000,
  380.     B00000,
  381.     B00000,
  382.     B00000,
  383.     B00000,
  384.     B00000,
  385.   B00100,
  386.     B00000
  387. };
  388. byte gggg[] = {
  389.     B00000,
  390.     B00000,
  391.     B00000,
  392.     B00000,
  393.     B00000,
  394.     B00000,
  395.   B00010,
  396.     B00000
  397. };
  398. byte ggggg[] = {
  399.     B00000,
  400.     B00000,
  401.     B00000,
  402.     B00000,
  403.     B00000,
  404.     B00000,
  405.   B00001,
  406.     B00000
  407. };
  408.  
  409. ///////////////////////////////////////////////
  410.  
  411. byte h[] = {
  412.     B00000,
  413.     B00000,
  414.     B00000,
  415.     B00000,
  416.     B00000,
  417.     B00000,
  418.     B00000,
  419.   B10000
  420. };
  421. byte hh[] = {
  422.     B00000,
  423.     B00000,
  424.     B00000,
  425.     B00000,
  426.     B00000,
  427.     B00000,
  428.     B00000,
  429.   B01000
  430. };
  431. byte hhh[] = {
  432.     B00000,
  433.     B00000,
  434.     B00000,
  435.     B00000,
  436.     B00000,
  437.     B00000,
  438.     B00000,
  439.   B00100
  440. };
  441. byte hhhh[] = {
  442.     B00000,
  443.     B00000,
  444.     B00000,
  445.     B00000,
  446.     B00000,
  447.     B00000,
  448.     B00000,
  449.   B00010
  450. };
  451. byte hhhhh[] = {
  452.     B00000,
  453.     B00000,
  454.     B00000,
  455.     B00000,
  456.     B00000,
  457.     B00000,
  458.     B00000,
  459.   B00001
  460. };
  461. ///////////////////////////////////////
  462.  
  463. void Aa(){
  464.   lcd.createChar(1, a);
  465.   lcd.createChar(2, aa);
  466.   lcd.createChar(3, aaa);
  467.   lcd.createChar(4, aaaa);
  468.   lcd.createChar(5, aaaaa);
  469. }
  470.  
  471. void Bb(){
  472.   lcd.createChar(1, b);
  473.   lcd.createChar(2, bb);
  474.   lcd.createChar(3, bbb);
  475.   lcd.createChar(4, bbbb);
  476.   lcd.createChar(5, bbbbb);
  477. }
  478.  
  479. void Cc(){
  480.   lcd.createChar(1, c);
  481.   lcd.createChar(2, cc);
  482.   lcd.createChar(3, ccc);
  483.   lcd.createChar(4, cccc);
  484.   lcd.createChar(5, ccccc);
  485. }
  486.  
  487. void Dd(){
  488.   lcd.createChar(1,d);
  489.   lcd.createChar(2,dd);
  490.   lcd.createChar(3,ddd);
  491.   lcd.createChar(4,dddd);
  492.   lcd.createChar(5,ddddd);
  493. }
  494.  
  495. void Ee(){
  496.   lcd.createChar(1, e);
  497.   lcd.createChar(2, ee);
  498.   lcd.createChar(3, eee);
  499.   lcd.createChar(4, eeee);
  500.   lcd.createChar(5, eeeee);
  501. }
  502.  
  503. void Ff(){
  504.   lcd.createChar(1, f);
  505.   lcd.createChar(2, ff);
  506.   lcd.createChar(3, fff);
  507.   lcd.createChar(4, ffff);
  508.   lcd.createChar(5, fffff);
  509. }
  510.  
  511. void Gg(){
  512.   lcd.createChar(1, g);
  513.   lcd.createChar(2, gg);
  514.   lcd.createChar(3, ggg);
  515.   lcd.createChar(4, gggg);
  516.   lcd.createChar(5, ggggg);
  517. }
  518.  
  519. void Hh(){
  520.   lcd.createChar(1, h);
  521.   lcd.createChar(2, hh);
  522.   lcd.createChar(3, hhh);
  523.   lcd.createChar(4, hhhh);
  524.   lcd.createChar(5, hhhhh);
  525. }
  526.  
  527. int position1 = 1;
  528. int position2 = 0;
  529.  
  530. int height2 = 1;
  531. int height1 = 0;
  532.  
  533. void setup() {
  534.   lcd.begin(16, 2);                       // start the library
  535.  
  536.   Serial.begin(9600);
  537.  
  538.   Aa();
  539.  
  540.   for(int i = 1; i <= 5; i++){
  541.     lcd.setCursor(i,0);
  542.     lcd.write(i);
  543.   }
  544.  
  545.   //lcd.setCursor(0,1);
  546.   //lcd.print("text still here");
  547. }
  548.  
  549. void loop() {
  550.   int input = NONE;
  551.  
  552.   input = read();
  553.  
  554.   if(input == RIGHT){ position1 ++; }
  555.   if(input == LEFT){ position1 --; }
  556.   if(input == UP){ height1 --; }
  557.   if(input == DOWN){ height1 ++;}
  558.  
  559.   if(position1 > 5){
  560.     position1 = 1;
  561.     position2 ++;
  562.   }
  563.   if(position1 < 1){
  564.     position1 = 5;
  565.     position2 --;
  566.   }
  567.  
  568.   if(height1 > 8){
  569.     height1 = 1;
  570.     height2 ++;  
  571.   }
  572.   if(height1 < 1){
  573.     height1 = 8;
  574.     height2 --;
  575.   }
  576.  
  577.   if(position2 > 15){ position2 = 0; }
  578.   if(position2 < 0){ position2 = 15; }
  579.  
  580.   if(height2 > 1){ height2 = 0; }
  581.   if(height2 < 0){ height2 = 1; }
  582.  
  583.     switch(height1){
  584.       case 1:
  585.         Bb();
  586.         break;
  587.       case 2:
  588.         Cc();
  589.         break;
  590.       case 3:
  591.         Dd();
  592.         break;
  593.       case 4:
  594.         Ee();
  595.         break;
  596.       case 5:
  597.         Aa();
  598.         break;
  599.       case 6:
  600.         Ff();
  601.         break;
  602.       case 7:
  603.         Gg();
  604.         break;
  605.       case 8:
  606.         Hh();
  607.         break;
  608.     }  
  609.  
  610.   if(input != NONE){
  611.     lcd.setCursor(0,0);
  612.     lcd.print("                "); //clear only one row
  613.     lcd.setCursor(0,1);
  614.     lcd.print("                "); //clear only one row
  615.  
  616.     lcd.setCursor(position2, height2);
  617.     lcd.write(position1);
  618.     delay(100);
  619.   }
  620.   else{
  621.     delay(10);
  622.   }
  623. }
  624.  
  625.  
  626.  
  627.  
Tags: Arduino
Add Comment
Please, Sign In to add comment