Advertisement
Hanneman

Led spelletje shift registers

Aug 7th, 2014
353
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 29.24 KB | None | 0 0
  1. #include <Bounce2.h>
  2.  
  3. int latchPin = 8;
  4. int klokPin = 12;
  5. int dataPin = 11;
  6.  
  7. int piezoBuz = 3;
  8.  
  9. int Ledlinkerspeler = 10;
  10. int Ledrechterspeler = 9;
  11.  
  12. const int knopPin = 7; // the number of the pushbutton pin
  13. const int knopPin2 = 4; // the number of the pushbutton pin
  14.  
  15. // variables will change:
  16. int knopstatus = LOW; // variable for reading the pushbutton status
  17. int knopstatus2 = LOW; // variable for reading the pushbutton status
  18.  
  19. int snelheid = 250; // elke 1/4 seconden LED1 wisselen
  20.  
  21. unsigned long timer; // nodig om na een bepaalde tijd iets te doen
  22. uint16_t volgendeStap; // geeft aan welke stap verwerkt moet worden
  23. uint16_t teller; // zomaar een tellertje
  24.  
  25. int first = 0;
  26. int second = 0;
  27.  
  28. Bounce debounce1 = Bounce();
  29. Bounce debounce2 = Bounce();
  30.  
  31. void(* resetFunc) (void) = 0;//declare reset function at address 0
  32.  
  33. void setup() {
  34. // put your setup code here, to run once:
  35. pinMode (dataPin, OUTPUT);
  36. pinMode (klokPin, OUTPUT);
  37. pinMode (latchPin, OUTPUT);
  38.  
  39. volgendeStap = 0; // we beginnen bij stap 0
  40. teller = 0; // tellertje voor de eerste keer opzetten
  41. timer = millis(); // timertje idem
  42.  
  43. debounce1.attach(knopPin);
  44. debounce1.interval(20);
  45. debounce2.attach(knopPin2);
  46. debounce2.interval(20);
  47. }
  48.  
  49. enum {
  50. initieerStap1 ,
  51. stap1 ,
  52. initieerStap2 ,
  53. stap2 ,
  54. initieerStap3 ,
  55. stap3 ,
  56. initieerStap4 ,
  57. stap4 ,
  58. initieerStap5 ,
  59. stap5 ,
  60. initieerStap6 ,
  61. stap6 ,
  62. initieerStap7 ,
  63. stap7 ,
  64. initieerStap8 ,
  65. stap8 ,
  66. initieerStap9 ,
  67. stap9 ,
  68. initieerStap10 ,
  69. stap10 ,
  70. initieerStap11 ,
  71. stap11 ,
  72. initieerStap12 ,
  73. stap12 ,
  74. initieerStap13 ,
  75. stap13 ,
  76. initieerStap14 ,
  77. stap14 ,
  78. initieerStap15 ,
  79. stap15 ,
  80. initieerStap16 ,
  81. stap16 ,
  82. initieerStap17 ,
  83. stap17 ,
  84. initieerStap18 ,
  85. stap18 ,
  86. initieerStap19 ,
  87. stap19 ,
  88. initieerStap20 ,
  89. stap20 ,
  90. initieerStap21 ,
  91. stap21 ,
  92. initieerStap22 ,
  93. stap22 ,
  94. initieerStap23 ,
  95. stap23 ,
  96. initieerStap24 ,
  97. stap24 ,
  98. initieerStap25 ,
  99. stap25 ,
  100. initieerStap26 ,
  101. stap26 ,
  102. initieerStap27 ,
  103. stap27 ,
  104. initieerStap28 ,
  105. stap28 ,
  106. initieerStap29 ,
  107. stap29 ,
  108. initieerStap30 ,
  109. stap30 ,
  110. initieerStap31 ,
  111. stap31 ,
  112. initieerStap32 ,
  113. stap32 ,
  114. initieerStap33 ,
  115. stap33 ,
  116. beginOpnieuw
  117. };
  118.  
  119. void loop() {
  120.  
  121. // Update the debouncer
  122. debounce1.update();
  123. debounce2.update();
  124. // Get the update value
  125. int value1 = debounce1.read();
  126. int value2 = debounce2.read();
  127.  
  128. if (snelheid <10)
  129. {
  130. snelheid = 5;
  131. }
  132. // knopstatus = digitalRead(knopPin);
  133. // knopstatus2 = digitalRead(knopPin2);
  134. // put your main code here, to run repeatedly:
  135. //
  136. // verwerk de relevante stap
  137. //
  138. switch (volgendeStap) {
  139.  
  140. case initieerStap1:
  141. teller = 0; // reset de teller
  142. lightLeds (0b00000000, 0b00000000); // zet de LED uit
  143. volgendeStap++;
  144. break;
  145.  
  146. case stap1:
  147. //
  148. // alleen uitvoeren als de tijd is verstreken
  149. //
  150. if (millis() > timer) {
  151. lightLeds (0b00000000, 0b00000001);
  152. // digitalWrite(LED1, !digitalRead(LED1)); // Flip led 1
  153. teller++; // verhoog teller
  154. if (teller > 1) { // alles gehad?
  155. volgendeStap++; // we zijn hier klaar
  156. }
  157. else {
  158. timer = millis() + snelheid; // we zijn er nog niet dus de timer zetten
  159. }
  160. }
  161. break;
  162.  
  163. case initieerStap2:
  164. teller = 0; // reset de teller
  165. lightLeds (0b00000000, 0b00000000); // zet de LED uit
  166. volgendeStap++;
  167. break;
  168.  
  169. case stap2:
  170. //
  171. // alleen uitvoeren als de tijd is verstreken
  172. //
  173. if (millis() > timer) {
  174. lightLeds (0b00000000, 0b00000010);
  175. // digitalWrite(LED2, !digitalRead(LED2)); // Flip led 2
  176. teller++; // verhoog teller tot 10
  177. if (teller > 1) { // alles gehad
  178. volgendeStap++;
  179. }
  180. else {
  181. timer = millis() + snelheid; // we zijn er nog niet dus de timer zetten
  182. }
  183. }
  184. break;
  185.  
  186. case initieerStap3:
  187. teller = 0; // reset de teller
  188. lightLeds (0b00000000, 0b00000000); // zet de LED uit
  189. volgendeStap++;
  190. break;
  191.  
  192. case stap3:
  193. //
  194. // alleen uitvoeren als de tijd is verstreken
  195. //
  196. if (millis() > timer) {
  197. lightLeds (0b00000000, 0b00000100);
  198. teller++; // verhoog teller
  199. if (teller > 1) { // alles gehad?
  200. volgendeStap++; // we zijn hier klaar
  201. }
  202. else {
  203. timer = millis() + snelheid; // we zijn er nog niet dus de timer zetten
  204. }
  205. }
  206. break;
  207.  
  208. case initieerStap4:
  209. teller = 0; // reset de teller
  210. lightLeds (0b00000000, 0b00000000); // zet de LED uit
  211. volgendeStap++;
  212. break;
  213.  
  214. case stap4:
  215. //
  216. // alleen uitvoeren als de tijd is verstreken
  217. //
  218. if (millis() > timer) {
  219. lightLeds (0b00000000, 0b00001000);
  220. teller++; // verhoog teller
  221. if (teller > 1) { // alles gehad?
  222. volgendeStap++; // we zijn hier klaar
  223. }
  224. else {
  225. timer = millis() + snelheid; // we zijn er nog niet dus de timer zetten
  226. }
  227. }
  228. break;
  229. case initieerStap5:
  230. teller = 0; // reset de teller
  231. lightLeds (0b00000000, 0b00000000); // zet de LED uit
  232. volgendeStap++;
  233. break;
  234.  
  235. case stap5:
  236. //
  237. // alleen uitvoeren als de tijd is verstreken
  238. //
  239. if (millis() > timer) {
  240. lightLeds (0b00000000, 0b00010000);
  241. // digitalWrite(LED1, !digitalRead(LED1)); // Flip led 1
  242. teller++; // verhoog teller
  243. if (teller > 1) { // alles gehad?
  244. volgendeStap++; // we zijn hier klaar
  245. }
  246. else {
  247. timer = millis() + snelheid; // we zijn er nog niet dus de timer zetten
  248. }
  249. }
  250. break;
  251.  
  252. case initieerStap6:
  253. teller = 0; // reset de teller
  254. lightLeds (0b00000000, 0b00000000); // zet de LED uit
  255. volgendeStap++;
  256. break;
  257.  
  258. case stap6:
  259. //
  260. // alleen uitvoeren als de tijd is verstreken
  261. //
  262. if (millis() > timer) {
  263. lightLeds (0b00000000, 0b00100000);
  264. // digitalWrite(LED1, !digitalRead(LED1)); // Flip led 1
  265. teller++; // verhoog teller
  266. if (teller > 1) { // alles gehad?
  267. volgendeStap++; // we zijn hier klaar
  268. }
  269. else {
  270. timer = millis() + snelheid; // we zijn er nog niet dus de timer zetten
  271. }
  272. }
  273. break;
  274.  
  275. case initieerStap7:
  276. teller = 0; // reset de teller
  277. lightLeds (0b00000000, 0b00000000); // zet de LED uit
  278. volgendeStap++;
  279. break;
  280.  
  281. case stap7:
  282. //
  283. // alleen uitvoeren als de tijd is verstreken
  284. //
  285. if (millis() > timer) {
  286. lightLeds (0b00000000, 0b01000000);
  287. // digitalWrite(LED1, !digitalRead(LED1)); // Flip led 1
  288. teller++; // verhoog teller
  289. if (teller > 1) { // alles gehad?
  290. volgendeStap++; // we zijn hier klaar
  291. }
  292. else {
  293. timer = millis() + snelheid; // we zijn er nog niet dus de timer zetten
  294. }
  295. }
  296. break;
  297.  
  298. case initieerStap8:
  299. teller = 0; // reset de teller
  300. lightLeds (0b00000000, 0b00000000); // zet de LED uit
  301. volgendeStap++;
  302. break;
  303.  
  304. case stap8:
  305. //
  306. // alleen uitvoeren als de tijd is verstreken
  307. //
  308. if (millis() > timer) {
  309. lightLeds (0b00000000, 0b10000000);
  310. // digitalWrite(LED1, !digitalRead(LED1)); // Flip led 1
  311. teller++; // verhoog teller
  312. if (teller > 1) { // alles gehad?
  313. volgendeStap++; // we zijn hier klaar
  314. }
  315. else {
  316. timer = millis() + snelheid; // we zijn er nog niet dus de timer zetten
  317. }
  318. }
  319. break;
  320.  
  321. case initieerStap9:
  322. teller = 0; // reset de teller
  323. lightLeds (0b00000000, 0b00000000); // zet de LED uit
  324. volgendeStap++;
  325. break;
  326.  
  327. case stap9:
  328. //
  329. // alleen uitvoeren als de tijd is verstreken
  330. //
  331. if (millis() > timer) {
  332. lightLeds (0b00000001, 0b00000000);
  333. // digitalWrite(LED1, !digitalRead(LED1)); // Flip led 1
  334. teller++; // verhoog teller
  335. if (teller > 1) { // alles gehad?
  336. volgendeStap++; // we zijn hier klaar
  337. }
  338. else {
  339. timer = millis() + snelheid; // we zijn er nog niet dus de timer zetten
  340. }
  341. }
  342. break;
  343.  
  344. case initieerStap10:
  345. teller = 0; // reset de teller
  346. lightLeds (0b00000000, 0b00000000); // zet de LED uit
  347. volgendeStap++;
  348. break;
  349.  
  350. case stap10:
  351. //
  352. // alleen uitvoeren als de tijd is verstreken
  353. //
  354. if (millis() > timer) {
  355. lightLeds (0b00000010, 0b00000000);
  356. // digitalWrite(LED1, !digitalRead(LED1)); // Flip led 1
  357. teller++; // verhoog teller
  358. if (teller > 1) { // alles gehad?
  359. volgendeStap++; // we zijn hier klaar
  360. }
  361. else {
  362. timer = millis() + snelheid; // we zijn er nog niet dus de timer zetten
  363. }
  364. }
  365. break;
  366.  
  367. case initieerStap11:
  368. teller = 0; // reset de teller
  369. lightLeds (0b00000000, 0b00000000); // zet de LED uit
  370. volgendeStap++;
  371. break;
  372.  
  373. case stap11:
  374. //
  375. // alleen uitvoeren als de tijd is verstreken
  376. //
  377. if (millis() > timer) {
  378. lightLeds (0b00000100, 0b00000000);
  379. // digitalWrite(LED1, !digitalRead(LED1)); // Flip led 1
  380. teller++; // verhoog teller
  381. if (teller > 1) { // alles gehad?
  382. volgendeStap++; // we zijn hier klaar
  383. }
  384. else {
  385. timer = millis() + snelheid; // we zijn er nog niet dus de timer zetten
  386. }
  387. }
  388. break;
  389.  
  390. case initieerStap12:
  391. teller = 0; // reset de teller
  392. lightLeds (0b00000000, 0b00000000); // zet de LED uit
  393. volgendeStap++;
  394. break;
  395.  
  396. case stap12:
  397. //
  398. // alleen uitvoeren als de tijd is verstreken
  399. //
  400. if (millis() > timer) {
  401. lightLeds (0b00001000, 0b00000000);
  402. // digitalWrite(LED2, !digitalRead(LED2)); // Flip led 2
  403. teller++; // verhoog teller tot 10
  404. if (teller > 1) { // alles gehad
  405. volgendeStap++;
  406. }
  407. else {
  408. timer = millis() + snelheid; // we zijn er nog niet dus de timer zetten
  409. }
  410. }
  411. break;
  412.  
  413. case initieerStap13:
  414. teller = 0; // reset de teller
  415. lightLeds (0b00000000, 0b00000000); // zet de LED uit
  416. volgendeStap++;
  417. break;
  418.  
  419. case stap13:
  420. //
  421. // alleen uitvoeren als de tijd is verstreken
  422. //
  423. if (millis() > timer) {
  424. lightLeds (0b00010000, 0b00000000);
  425. teller++; // verhoog teller
  426. if (teller > 1) { // alles gehad?
  427. volgendeStap++; // we zijn hier klaar
  428. }
  429. else {
  430. timer = millis() + snelheid; // we zijn er nog niet dus de timer zetten
  431. }
  432. }
  433. break;
  434.  
  435. case initieerStap14:
  436. teller = 0; // reset de teller
  437. lightLeds (0b00000000, 0b00000000); // zet de LED uit
  438. volgendeStap++;
  439. break;
  440.  
  441. case stap14:
  442. //
  443. // alleen uitvoeren als de tijd is verstreken
  444. //
  445. if (millis() > timer) {
  446. lightLeds (0b00100000, 0b00000000);
  447. teller++; // verhoog teller
  448. if (teller > 1) { // alles gehad?
  449. volgendeStap++; // we zijn hier klaar
  450. }
  451. else {
  452. timer = millis() + snelheid; // we zijn er nog niet dus de timer zetten
  453. }
  454. }
  455. break;
  456.  
  457. case initieerStap15:
  458. teller = 0; // reset de teller
  459. lightLeds (0b00000000, 0b00000000); // zet de LED uit
  460. volgendeStap++;
  461. break;
  462.  
  463. case stap15:
  464. //
  465. // alleen uitvoeren als de tijd is verstreken
  466. //
  467. if (millis() > timer) {
  468. lightLeds (0b01000000, 0b00000000);
  469. // digitalWrite(LED1, !digitalRead(LED1)); // Flip led 1
  470. teller++; // verhoog teller
  471. if (teller > 1) { // alles gehad?
  472. volgendeStap++; // we zijn hier klaar
  473. }
  474. else {
  475. timer = millis() + snelheid; // we zijn er nog niet dus de timer zetten
  476. }
  477. }
  478. break;
  479.  
  480. case initieerStap16:
  481. teller = 0; // reset de teller
  482. lightLeds (0b00000000, 0b00000000); // zet de LED uit
  483. volgendeStap++;
  484. break;
  485.  
  486. case stap16:
  487. //
  488. // alleen uitvoeren als de tijd is verstreken
  489. //
  490. if (value2 == HIGH) {
  491. volgendeStap = volgendeStap +3;
  492. }
  493.  
  494. if (millis() > timer) {
  495. lightLeds (0b10000000, 0b00000000);
  496. // digitalWrite(LED1, !digitalRead(LED1)); // Flip led 1
  497.  
  498. teller++; // verhoog teller
  499. if (teller > 1) { // alles gehad?
  500. volgendeStap++; // we zijn hier klaar
  501. }
  502. else {
  503. snelheid = snelheid*2;
  504. timer = millis() + snelheid; // we zijn er nog niet dus de timer zetten
  505. }
  506. }
  507. break;
  508.  
  509. case initieerStap17:
  510. teller = 0; // reset de teller
  511. lightLeds (0b00000000, 0b00000000); // zet de LED uit
  512. volgendeStap++;
  513. break;
  514.  
  515. case stap17:
  516. //
  517. // alleen uitvoeren als de tijd is verstreken
  518. //
  519. if (millis() > timer) {
  520. //lightLeds (0b00000000, 0b00000000);
  521. analogWrite(Ledrechterspeler, 255); // rechterspeler is af, led rechterspeler aanzetten voor 3 sec
  522. tone(piezoBuz, 250, 100); // korte afkeurende toon
  523. delay(3000);
  524. analogWrite(Ledrechterspeler, 0); // led rechterspeler uit
  525. resetFunc(); // start de Arduino en dus het spel opnieuw op
  526. }
  527. break;
  528.  
  529.  
  530. case initieerStap18:
  531. teller = 0; // reset de teller
  532. lightLeds (0b00000000, 0b00000000); // zet de LED uit
  533. volgendeStap++;
  534. break;
  535.  
  536. case stap18:
  537. //
  538. // alleen uitvoeren als de tijd is verstreken
  539. //
  540. if (millis() > timer) {
  541. lightLeds (0b01000000, 0b00000000);
  542. // digitalWrite(LED1, !digitalRead(LED1)); // Flip led 1
  543. teller++; // verhoog teller
  544. if (teller > 1) { // alles gehad?
  545. volgendeStap++; // we zijn hier klaar
  546. }
  547. else {
  548. snelheid = snelheid /2;
  549. timer = millis() + snelheid; // we zijn er nog niet dus de timer zetten
  550. }
  551. }
  552. break;
  553.  
  554. case initieerStap19:
  555. teller = 0; // reset de teller
  556. lightLeds (0b00000000, 0b00000000); // zet de LED uit
  557. volgendeStap++;
  558. break;
  559.  
  560. case stap19:
  561. //
  562. // alleen uitvoeren als de tijd is verstreken
  563. //
  564. if (millis() > timer) {
  565. lightLeds (0b00100000, 0b00000000);
  566. teller++; // verhoog teller
  567. if (teller > 1) { // alles gehad?
  568. volgendeStap++; // we zijn hier klaar
  569. }
  570. else {
  571. timer = millis() + snelheid; // we zijn er nog niet dus de timer zetten
  572. }
  573. }
  574. break;
  575.  
  576. case initieerStap20:
  577. teller = 0; // reset de teller
  578. lightLeds (0b00000000, 0b00000000); // zet de LED uit
  579. volgendeStap++;
  580. break;
  581.  
  582. case stap20:
  583. //
  584. // alleen uitvoeren als de tijd is verstreken
  585. //
  586. if (millis() > timer) {
  587. lightLeds (0b00010000, 0b00000000);
  588. teller++; // verhoog teller
  589. if (teller > 1) { // alles gehad?
  590. volgendeStap++; // we zijn hier klaar
  591. }
  592. else {
  593. timer = millis() + snelheid; // we zijn er nog niet dus de timer zetten
  594. }
  595. }
  596. break;
  597.  
  598. case initieerStap21:
  599. teller = 0; // reset de teller
  600. lightLeds (0b00000000, 0b00000000); // zet de LED uit
  601. volgendeStap++;
  602. break;
  603.  
  604. case stap21:
  605. //
  606. // alleen uitvoeren als de tijd is verstreken
  607. //
  608. if (millis() > timer) {
  609. lightLeds (0b00001000, 0b00000000);
  610. teller++; // verhoog teller
  611. if (teller > 1) { // alles gehad?
  612. volgendeStap++; // we zijn hier klaar
  613. }
  614. else {
  615. timer = millis() + snelheid; // we zijn er nog niet dus de timer zetten
  616. }
  617. }
  618. break;
  619.  
  620. case initieerStap22:
  621. teller = 0; // reset de teller
  622. lightLeds (0b00000000, 0b00000000); // zet de LED uit
  623. volgendeStap++;
  624. break;
  625.  
  626. case stap22:
  627. //
  628. // alleen uitvoeren als de tijd is verstreken
  629. //
  630. if (millis() > timer) {
  631. lightLeds (0b00000100, 0b00000000);
  632. teller++; // verhoog teller
  633. if (teller > 1) { // alles gehad?
  634. volgendeStap++; // we zijn hier klaar
  635. }
  636. else {
  637. timer = millis() + snelheid; // we zijn er nog niet dus de timer zetten
  638. }
  639. }
  640. break;
  641.  
  642. case initieerStap23:
  643. teller = 0; // reset de teller
  644. lightLeds (0b00000000, 0b00000000); // zet de LED uit
  645. volgendeStap++;
  646. break;
  647.  
  648. case stap23:
  649. //
  650. // alleen uitvoeren als de tijd is verstreken
  651. //
  652. if (millis() > timer) {
  653. lightLeds (0b00000010, 0b00000000);
  654. teller++; // verhoog teller
  655. if (teller > 1) { // alles gehad?
  656. volgendeStap++; // we zijn hier klaar
  657. }
  658. else {
  659. timer = millis() + snelheid; // we zijn er nog niet dus de timer zetten
  660. }
  661. }
  662. break;
  663.  
  664. case initieerStap24:
  665. teller = 0; // reset de teller
  666. lightLeds (0b00000000, 0b00000000); // zet de LED uit
  667. volgendeStap++;
  668. break;
  669.  
  670. case stap24:
  671. //
  672. // alleen uitvoeren als de tijd is verstreken
  673. //
  674. if (millis() > timer) {
  675. lightLeds (0b00000001, 0b00000000);
  676. teller++; // verhoog teller
  677. if (teller > 1) { // alles gehad?
  678. volgendeStap++; // we zijn hier klaar
  679. }
  680. else {
  681. timer = millis() + snelheid; // we zijn er nog niet dus de timer zetten
  682. }
  683. }
  684. break;
  685.  
  686. case initieerStap25:
  687. teller = 0; // reset de teller
  688. lightLeds (0b00000000, 0b00000000); // zet de LED uit
  689. volgendeStap++;
  690. break;
  691.  
  692. case stap25:
  693. //
  694. // alleen uitvoeren als de tijd is verstreken
  695. //
  696. if (millis() > timer) {
  697. lightLeds (0b00000000, 0b10000000);
  698. teller++; // verhoog teller
  699. if (teller > 1) { // alles gehad?
  700. volgendeStap++; // we zijn hier klaar
  701. }
  702. else {
  703. timer = millis() + snelheid; // we zijn er nog niet dus de timer zetten
  704. }
  705. }
  706. break;
  707.  
  708. case initieerStap26:
  709. teller = 0; // reset de teller
  710. lightLeds (0b00000000, 0b00000000); // zet de LED uit
  711. volgendeStap++;
  712. break;
  713.  
  714. case stap26:
  715. //
  716. // alleen uitvoeren als de tijd is verstreken
  717. //
  718. if (millis() > timer) {
  719. lightLeds (0b00000000, 0b01000000);
  720. teller++; // verhoog teller
  721. if (teller > 1) { // alles gehad?
  722. volgendeStap++; // we zijn hier klaar
  723. }
  724. else {
  725. timer = millis() + snelheid; // we zijn er nog niet dus de timer zetten
  726. }
  727. }
  728. break;
  729.  
  730. case initieerStap27:
  731. teller = 0; // reset de teller
  732. lightLeds (0b00000000, 0b00000000); // zet de LED uit
  733. volgendeStap++;
  734. break;
  735.  
  736. case stap27:
  737. //
  738. // alleen uitvoeren als de tijd is verstreken
  739. //
  740. if (millis() > timer) {
  741. lightLeds (0b00000000, 0b00100000);
  742. teller++; // verhoog teller
  743. if (teller > 1) { // alles gehad?
  744. volgendeStap++; // we zijn hier klaar
  745. }
  746. else {
  747. timer = millis() + snelheid; // we zijn er nog niet dus de timer zetten
  748. }
  749. }
  750. break;
  751.  
  752. case initieerStap28:
  753. teller = 0; // reset de teller
  754. lightLeds (0b00000000, 0b00000000); // zet de LED uit
  755. volgendeStap++;
  756. break;
  757.  
  758. case stap28:
  759. //
  760. // alleen uitvoeren als de tijd is verstreken
  761. //
  762. if (millis() > timer) {
  763. lightLeds (0b00000000, 0b00010000);
  764. teller++; // verhoog teller
  765. if (teller > 1) { // alles gehad?
  766. volgendeStap++; // we zijn hier klaar
  767. }
  768. else {
  769. timer = millis() + snelheid; // we zijn er nog niet dus de timer zetten
  770. }
  771. }
  772. break;
  773.  
  774. case initieerStap29:
  775. teller = 0; // reset de teller
  776. lightLeds (0b00000000, 0b00000000); // zet de LED uit
  777. volgendeStap++;
  778. break;
  779.  
  780. case stap29:
  781. //
  782. // alleen uitvoeren als de tijd is verstreken
  783. //
  784. if (millis() > timer) {
  785. lightLeds (0b00000000, 0b00001000);
  786. teller++; // verhoog teller
  787. if (teller > 1) { // alles gehad?
  788. volgendeStap++; // we zijn hier klaar
  789. }
  790. else {
  791. timer = millis() + snelheid; // we zijn er nog niet dus de timer zetten
  792. }
  793. }
  794. break;
  795.  
  796. case initieerStap30:
  797. teller = 0; // reset de teller
  798. lightLeds (0b00000000, 0b00000000); // zet de LED uit
  799. volgendeStap++;
  800. break;
  801.  
  802. case stap30:
  803. //
  804. // alleen uitvoeren als de tijd is verstreken
  805. //
  806. if (millis() > timer) {
  807. lightLeds (0b00000000, 0b00000100);
  808. teller++; // verhoog teller
  809. if (teller > 1) { // alles gehad?
  810. volgendeStap++; // we zijn hier klaar
  811. }
  812. else {
  813. timer = millis() + snelheid; // we zijn er nog niet dus de timer zetten
  814. }
  815. }
  816. break;
  817.  
  818. case initieerStap31:
  819. teller = 0; // reset de teller
  820. lightLeds (0b00000000, 0b00000000); // zet de LED uit
  821. volgendeStap++;
  822. break;
  823.  
  824. case stap31:
  825. //
  826. // alleen uitvoeren als de tijd is verstreken
  827. //
  828. if (millis() > timer) {
  829. lightLeds (0b00000000, 0b00000010);
  830. teller++; // verhoog teller
  831. if (teller > 1) { // alles gehad?
  832. volgendeStap++; // we zijn hier klaar
  833. }
  834. else {
  835. timer = millis() + snelheid; // we zijn er nog niet dus de timer zetten
  836. }
  837. }
  838. break;
  839. case initieerStap32:
  840. teller = 0; // reset de teller
  841. lightLeds (0b00000000, 0b00000000); // zet de LED uit
  842. volgendeStap++;
  843. break;
  844.  
  845. case stap32:
  846. //
  847. // alleen uitvoeren als de tijd is verstreken
  848. //
  849. if (value1 == HIGH) {
  850. snelheid = snelheid /4;
  851. volgendeStap = initieerStap2;
  852. }
  853. if (millis() > timer) {
  854. lightLeds (0b00000000, 0b00000001);
  855. teller++; // verhoog teller
  856. if (teller > 1) { // alles gehad?
  857. volgendeStap++; // we zijn hier klaar
  858. }
  859. else {
  860. snelheid = snelheid *2;
  861. timer = millis() + snelheid; // we zijn er nog niet dus de timer zetten
  862. }
  863. }
  864. break;
  865.  
  866. case initieerStap33:
  867. teller = 0; // reset de teller
  868. lightLeds (0b00000000, 0b00000000); // zet de LED uit
  869. volgendeStap++;
  870. break;
  871.  
  872. case stap33:
  873. //
  874. // alleen uitvoeren als de tijd is verstreken
  875. //
  876. if (millis() > timer) {
  877. //lightLeds (0b00000000, 0b00000000);
  878. analogWrite(Ledlinkerspeler, 255); //linkerspeler is af, led voor de linkerspeler aanzetten voor 3 sec
  879. tone(piezoBuz, 250, 100); // korte afkeurende toon
  880. delay(3000);
  881. analogWrite(Ledlinkerspeler, 0); // led linkerspeler uit
  882. resetFunc(); // start de Arduino en dus het spel opnieuw op
  883. }
  884. break;
  885.  
  886. case beginOpnieuw:
  887.  
  888. volgendeStap = 0; // begin bij de eerste stap
  889. break;
  890.  
  891. default:
  892. break;
  893. }
  894.  
  895. }
  896.  
  897. void lightLeds (int second, int first) {
  898. digitalWrite (latchPin, LOW);
  899. shiftOut (dataPin, klokPin, LSBFIRST, first);
  900. shiftOut (dataPin, klokPin, LSBFIRST, second);
  901. digitalWrite (latchPin, HIGH);
  902. //delay (snelheid);
  903. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement