Advertisement
Guest User

Untitled

a guest
Nov 13th, 2018
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ///////////////////////////////////
  2. // Motor Hoch = 10
  3. // Motor Runter = 11
  4. // LED unten = 8
  5. // LED mitte = 9
  6. // LED oben = 12
  7. // REED unten = 5
  8. // REED mitte = 6
  9. // REED oben = 7
  10. // Knopf unten = 1
  11. // Knopf mitte = 2
  12. // Knopf oben = 3
  13. //
  14. //2017.06
  15. //Program erstellt von
  16. //Philipp Hinz || Phisn
  17. ///////////////////////////////////
  18.  
  19. #include <EEPROM.h>
  20.  
  21. #define engineUp 10
  22. #define engineDown 11
  23.  
  24. #define led1 8
  25. #define led2 9
  26. #define led3 12
  27.  
  28. #define reed_bottom 5
  29. #define reed_mid 6
  30. #define reed_top 7
  31.  
  32. #define button1 1
  33. #define button2 2
  34. #define button3 3
  35.  
  36. #define mMove 1
  37. #define mWait 2
  38. #define mSecret 3
  39.  
  40. int cur_position = 3;
  41. int fin_postion = 1;
  42.  
  43. bool engine_eneabled = false;
  44.  
  45. bool led_blink = false;
  46. bool led_blink_pin = 1;
  47. int led_blink_time = millis();
  48. int led_blink_timespan = 360;
  49.  
  50. int mode = mMove;
  51. bool bs1, bs2, bs3;
  52.  
  53. void setup() {
  54.     pinMode(led1, OUTPUT);
  55.     pinMode(led2, OUTPUT);
  56.     pinMode(led3, OUTPUT);
  57.     pinMode(down, INPUT_PULLUP);
  58.     pinMode(mid, INPUT_PULLUP);
  59.     pinMode(up, INPUT_PULLUP);
  60.     pinMode(engineUp, OUTPUT);
  61.     pinMode(engineDown, OUTPUT);
  62.     pinMode(button1, INPUT_PULLUP);
  63.     pinMode(button2, INPUT_PULLUP);
  64.     pinMode(button3, INPUT_PULLUP);
  65. }
  66.  
  67. void spcfnc(int e, int z, int d) {
  68.     digitalWrite(led1, e);
  69.     digitalWrite(led2, z);
  70.     digitalWrite(led3, d);
  71.     delay(200);
  72. }
  73.  
  74. void loop() {
  75.     switch(mode) {
  76.         case mMove:
  77.             if(cur_position != fin_postion) {
  78.                 if(!engine_eneabled) {
  79.                     if(cur_position < fin_postion) {
  80.                         digitalWrite(engineUp, HIGH);
  81.                     }
  82.                     else {
  83.                         digitalWrite(engineDown, HIGH);
  84.                     }
  85.                     engine_eneabled = true;
  86.                 }
  87.                
  88.                 if(led_blink_time + led_blink_timespan >= millis()) {
  89.                     led_blink = !led_blink;
  90.                     digitalWrite(led_blink_pin, led_blink);
  91.                    
  92.                     led_blink_time = millis();
  93.                 }
  94.                
  95.                 break;
  96.             }
  97.             else {
  98.                 mode = mWait;
  99.             }
  100.         case mWait:
  101.             if(cur_position == fin_postion) {
  102.                 if(engine_eneabled) {
  103.                     engine_eneabled = false;
  104.                     digitalWrite(engineUp, LOW);
  105.                     digitalWrite(engineDown, LOW);
  106.                 }
  107.                
  108.                 bs1 = !digitalRead(button1);
  109.                 bs2 = !digitalRead(button2);
  110.                 bs3 = !digitalRead(button3);
  111.                
  112.                 if(bs1 && bs2 && bs3) {
  113.                     mode = mSecret;
  114.                 }
  115.                 else {
  116.                     if(bs1) {
  117.                         fin_postion = 1;
  118.                     }
  119.                    
  120.                     if(bs2) {
  121.                         fin_postion = 2;
  122.                     }
  123.                    
  124.                     if(bs3) {
  125.                         fin_postion = 3;
  126.                     }
  127.                 }
  128.             }
  129.             else {
  130.                 mode = mMove;
  131.             }
  132.         case mSecret:
  133.        
  134.             spcfnc(LOW, LOW, LOW);
  135.             delay(1000);
  136.             for(int i=1; i < 5; ++i) {
  137.                 spcfnc(HIGH, LOW, LOW);
  138.                 spcfnc(LOW, HIGH, LOW);
  139.                 spcfnc(LOW, LOW, HIGH);
  140.                 spcfnc(LOW, HIGH, LOW);
  141.             }
  142.            
  143.             spcfnc(HIGH, LOW, LOW);
  144.             delay(500);
  145.            
  146.             for(int i=1; i < 5; ++i) {
  147.                 spcfnc(HIGH, LOW, LOW);
  148.                 spcfnc(LOW, HIGH, LOW);
  149.                 spcfnc(LOW, LOW, HIGH);
  150.             }
  151.            
  152.             spcfnc(HIGH, HIGH, HIGH);
  153.             delay(1000);
  154.             spcfnc(LOW, LOW, LOW);
  155.            
  156.             mode = mWait;
  157.            
  158.             break;
  159.     }
  160.    
  161.     if(!digitalRead(reed_bottom) && cur_position != 1) {
  162.         digitalWrite(led1, HIGH);
  163.         digitalWrite(led2, LOW);
  164.     }
  165.    
  166.     if(!digitalRead(reed_mid) && cur_position != 2) {
  167.         digitalWrite(led1, LOW);
  168.         digitalWrite(led2, HIGH);
  169.         digitalWrite(led3, LOW);
  170.     }
  171.    
  172.     if(!digitalRead(reed_top) && cur_position != 3) {
  173.         digitalWrite(led2, LOW);
  174.         digitalWrite(led3, HIGH);
  175.     }
  176. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement