zdenekpetrzd

Untitled

Jan 5th, 2018
188
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.79 KB | None | 0 0
  1. enum state {NONE, L, LT, LV, LP, M, MS};
  2. enum state aktualni_stav = NONE;
  3. char c = 0;
  4.  
  5. unsigned int AmetrBuzeni = 0;
  6. unsigned int AmetrMS1 = 0;
  7. unsigned int AmetrMS2 = 0;
  8. unsigned int Rychlomer = 0;
  9. unsigned int UkazatelARR = 0;
  10. unsigned int TlakValce = 0;
  11. unsigned int TlakVzduchojem = 0;
  12.  
  13. #include <Arduino.h> //Přibal knihovnu Arduina
  14. #include <avdweb_VirtualDelay.h>
  15.  
  16. #include <Keyboard.h>
  17. int vstupy[] = {24,25,26,27};
  18. int stavArray[] = {0,0,0,0};
  19. int stav = 0000;
  20. int rychlosti[12] = {0,255,510,765,1020,1275,1530,1785,2040,2295,2550,2805};
  21. char uber = '-';
  22. char pridej = '=';
  23. boolean klavesaJeStisknuta;
  24. VirtualDelay singleDelay; //Deklarace proměnné potřebné pro délku stisknutí tlačítka
  25. VirtualDelay twoDelay;
  26.  
  27. //═════════════════════════════════════════════════════════════════════════════════════════//
  28. void setup() {
  29. for(int i=0; i<4; i++) {
  30. pinMode(vstupy[i],INPUT);
  31. }
  32. for (int i = 24; i < 36; i++) {
  33. pinMode(i, OUTPUT);
  34. digitalWrite(i, LOW);
  35. }
  36. Serial.setTimeout(3);
  37. Serial.begin(115200);
  38. Serial.flush();
  39. Keyboard.begin();
  40. twoDelay.start(500);
  41.  
  42. }
  43. //═════════════════════════════════════════════════════════════════════════════════════════//
  44. void prectiSerial() {
  45. if (Serial.available() > 0) {
  46. c = Serial.read();
  47.  
  48. switch (aktualni_stav) {
  49. case L:
  50. if (c == 'l') aktualni_stav = L;
  51. else if (c == 't') aktualni_stav = LT;
  52. else if (c == 'v') aktualni_stav = LV;
  53. else if (c == 'p') aktualni_stav = LP;
  54. else if (c == 'm') aktualni_stav = M;
  55. else aktualni_stav = NONE;
  56. break;
  57. /////////////////////////////////////////////////
  58. case LT:
  59. if (c == 'b')
  60. {
  61. AmetrBuzeni = Serial.parseInt();
  62. aktualni_stav = NONE;
  63. }
  64. else if (c == 'l') aktualni_stav = L;
  65. else if (c == 'm') aktualni_stav = M;
  66. else aktualni_stav = NONE;
  67. break;
  68. /////////////////////////////////////////////////
  69. case LV:
  70. if (c == 'l') aktualni_stav = L;
  71. else if (c == 'm') aktualni_stav = M;
  72. else if (c == 'n')
  73. {
  74. // cas1= micros();
  75. // cas = cas1-cas2;
  76. // Serial.println(cas);
  77. Rychlomer = (Serial.parseInt()) / (10);
  78. aktualni_stav = NONE;
  79. // cas2=micros();
  80.  
  81. }
  82. else if (c == 'p')
  83. {
  84. UkazatelARR = (Serial.parseInt()) / (10);
  85. aktualni_stav = NONE;
  86. }
  87. else aktualni_stav = NONE;
  88. break;
  89. /////////////////////////////////////////////////
  90. case LP:
  91. if (c == 'l') aktualni_stav = L;
  92. else if (c == 'v')
  93. {
  94. TlakValce = Serial.parseInt();
  95. aktualni_stav = NONE;
  96. }
  97. else if (c == 'm')
  98. {
  99. TlakVzduchojem = Serial.parseInt();
  100. aktualni_stav = NONE;
  101. }
  102. else aktualni_stav = NONE;
  103. break;
  104. /////////////////////////////////////////////////
  105. case M:
  106. if (c == 'l') aktualni_stav = L;
  107. else if (c == 's') aktualni_stav = MS;
  108. else aktualni_stav = NONE;
  109. break;
  110. /////////////////////////////////////////////////
  111. case MS:
  112. if (c == 'l') aktualni_stav = L;
  113. else if (c == 'm') aktualni_stav = M;
  114. else if (c == 'a')
  115. {
  116. AmetrMS1 = Serial.parseInt();
  117. aktualni_stav = NONE;
  118. }
  119. else if (c == 'b')
  120. {
  121. AmetrMS2 = Serial.parseInt();
  122. aktualni_stav = NONE;
  123. }
  124. else aktualni_stav = NONE;
  125. break;
  126. /////////////////////////////////////////////////
  127. default:
  128. if (c == 'l') aktualni_stav = L;
  129. else if (c == 'm') aktualni_stav = M;
  130. else aktualni_stav = NONE;
  131. break;
  132.  
  133. }
  134. }
  135. }
  136. //═════════════════════════════════════════════════════════════════════════════════════════//
  137. /*void zapisRychlomer() {
  138. if (Rychlomer >= 0 && Rychlomer <= 255 ) {
  139. analogWrite(2, Rychlomer);
  140. for (int i = 3; i < 14; i++) {
  141. digitalWrite(i, LOW);
  142. }
  143. }
  144. if (Rychlomer > 255 && Rychlomer <= 510 ) {
  145. analogWrite(3, Rychlomer - 255);
  146. digitalWrite(2, HIGH);
  147. for (int i = 4; i < 14; i++) {
  148. digitalWrite(i, LOW);
  149. }
  150. }
  151. if (Rychlomer > 510 && Rychlomer <= 765 ) {
  152. analogWrite(4, Rychlomer - 510);
  153. for (int i = 1; i < 4 ; i++) {
  154. digitalWrite(i, HIGH);
  155. }
  156. for (int i = 5; i < 14; i++) {
  157. digitalWrite(i, LOW);
  158. }
  159. }
  160. if (Rychlomer > 765 && Rychlomer <= 1020) {
  161. analogWrite(5, Rychlomer - 765);
  162. for (int i = 1; i < 5 ; i++) {
  163. digitalWrite(i, HIGH);
  164. }
  165. for (int i = 6; i < 12; i++) {
  166. digitalWrite(i, LOW);
  167. }
  168. }
  169. if (Rychlomer > 1020 && Rychlomer <= 1275 ) {
  170. analogWrite(6, Rychlomer - 1020);
  171. for (int i = 1; i < 6 ; i++) {
  172. digitalWrite(i, HIGH);
  173. }
  174. for (int i = 7; i < 14; i++) {
  175. digitalWrite(i, LOW);
  176. }
  177. }
  178. if (Rychlomer > 1275 && Rychlomer <= 1530 ) {
  179. analogWrite(7, Rychlomer - 1275);
  180. for (int i = 1; i < 7 ; i++) {
  181. digitalWrite(i, HIGH);
  182. }
  183. for (int i = 8; i < 14; i++) {
  184. digitalWrite(i, LOW);
  185. }
  186. }
  187. if (Rychlomer > 1530 && Rychlomer <= 1785 ) {
  188. analogWrite(8, Rychlomer - 1530);
  189. for (int i = 1; i < 8 ; i++) {
  190. digitalWrite(i, HIGH);
  191. }
  192. for (int i = 9; i < 14; i++) {
  193. digitalWrite(i, LOW);
  194. }
  195. }
  196. if (Rychlomer > 1785 && Rychlomer <= 2040 ) {
  197. analogWrite(9, Rychlomer - 1785);
  198. for (int i = 1; i < 9 ; i++) {
  199. digitalWrite(i, HIGH);
  200. }
  201. for (int i = 10; i < 14; i++) {
  202. digitalWrite(i, LOW);
  203. }
  204. }
  205. if (Rychlomer > 2040 && Rychlomer <= 2295 ) {
  206. analogWrite(10, Rychlomer - 2040);
  207. for (int i = 1; i < 10 ; i++) {
  208. digitalWrite(i, HIGH);
  209. }
  210. for (int i = 11; i < 14; i++) {
  211. digitalWrite(i, LOW);
  212. }
  213. }
  214. if (Rychlomer > 2295 && Rychlomer <= 2550 ) {
  215. analogWrite(11, Rychlomer - 2295);
  216. for (int i = 1; i < 11 ; i++) {
  217. digitalWrite(i, HIGH);
  218. }
  219. for (int i = 12; i < 14; i++) {
  220. digitalWrite(i, LOW);
  221. }
  222. }
  223. if (Rychlomer > 2550 && Rychlomer <= 2805 ) {
  224. analogWrite(12, Rychlomer - 2550);
  225. for (int i = 1; i < 12 ; i++) {
  226. digitalWrite(i, HIGH);
  227. }
  228. digitalWrite(13, LOW);
  229. }
  230. if (Rychlomer > 2805 && Rychlomer <= 3060 ) {
  231. analogWrite(13, Rychlomer - 2805);
  232. for (int i = 1; i < 13 ; i++) {
  233. digitalWrite(i, HIGH);
  234. }
  235. }
  236. }*/
  237. //═════════════════════════════════════════════════════════════════════════════════════════//
  238. void zapisUkazatelARR() {
  239. if(UkazatelARR < 250 && klavesaJeStisknuta == false && twoDelay.elapsed()) {
  240. // Keyboard.press(KEY_LEFT_SHIFT);
  241. Keyboard.press(pridej);
  242. singleDelay.start(220);
  243. klavesaJeStisknuta = true;
  244. twoDelay.start(480);
  245. }
  246. else if(UkazatelARR > 260 && klavesaJeStisknuta == false && twoDelay.elapsed()) {
  247. // Keyboard.press(KEY_LEFT_SHIFT);
  248. Keyboard.press(uber);
  249. singleDelay.start(220);
  250. klavesaJeStisknuta = true;
  251. twoDelay.start(480);
  252. }
  253.  
  254. }
  255. //═════════════════════════════════════════════════════════════════════════════════════════//
  256. void loop() {
  257. prectiSerial();
  258. for(int i=0; i<4; i++) {
  259. stavArray[i] = digitalRead(vstupy[i]);
  260. bitWrite(stav, i, stavArray[i]);
  261. }
  262. //´´ zapisRychlomer();
  263. zapisUkazatelARR();
  264. if(klavesaJeStisknuta == true && singleDelay.elapsed()) {
  265. Keyboard.releaseAll();
  266. klavesaJeStisknuta = false;
  267. }
  268. }
  269. //═════════════════════════════════════════════════════════════════════════════════════════//
Advertisement
Add Comment
Please, Sign In to add comment