Advertisement
sixshoot95

Pomeranje_smajlija_debounce

Dec 12th, 2016
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.59 KB | None | 0 0
  1. #include<LiquidCrystal.h>
  2. LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
  3. int brojac;
  4. byte stanje_tastera;
  5. byte blokiraj;
  6. unsigned long poslednja_promena;
  7. byte vrsta,kolona;
  8.  
  9. #define SELECT 1
  10. #define LEFT 2
  11. #define DOWN 4
  12. #define UP 3
  13. #define RIGHT 5
  14. #define NONE 0
  15.  
  16. byte ocitajTaster(int ulaz);
  17.  
  18.  
  19. void setup(){
  20. lcd.begin(16,2);
  21.  
  22. }
  23. void loop(){
  24. if(stanje_tastera !=ocitajTaster(analogRead(0))){
  25. stanje_tastera = ocitajTaster(analogRead(0));
  26. poslednja_promena = millis();
  27. blokiraj = 0;
  28. }
  29. if((millis()-poslednja_promena) > 50 && (blokiraj == 0 )){
  30. blokiraj =1 ;
  31.  
  32. switch(ocitajTaster(analogRead(0))){
  33. case UP: {
  34. if(vrsta == 1)
  35. vrsta = 0;
  36. else if(vrsta == 0)
  37. vrsta = 1;}break;
  38. case DOWN: {
  39. if(vrsta == 1)
  40. vrsta = 0;
  41. else if(vrsta == 0)
  42. vrsta = 1;
  43. }break;
  44. case LEFT:{
  45. if(kolona == 0)
  46. kolona = 14;
  47. else
  48. kolona--;}break;
  49. case RIGHT:{
  50. if(kolona == 14)
  51. kolona = 0;
  52. else
  53. kolona++;}break;
  54. default: {} break;
  55. }
  56. lcd.clear();
  57. lcd.setCursor(kolona,vrsta);
  58. lcd.print(":");
  59. lcd.setCursor(kolona+1,vrsta);
  60. lcd.print(")");
  61. }
  62. }
  63.  
  64.  
  65. byte ocitajTaster(int ulaz){
  66. if(ulaz < 1023){
  67. if(ulaz >715){
  68. return SELECT;
  69. }else{
  70. if(ulaz>475){
  71. return LEFT;
  72. }else{
  73. if(ulaz>300){
  74. return DOWN;
  75. }else{
  76. if (ulaz>125){
  77. return UP;
  78. }else{
  79. return RIGHT;
  80. }
  81. }
  82. }
  83. }
  84. }else{
  85. return NONE;
  86. }
  87.  
  88. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement