Advertisement
Pendax

Portofolio 4

Dec 6th, 2019
137
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.30 KB | None | 0 0
  1. int ss = 7;                                     // Definerer Pins for knapper
  2. int k1 = 8;
  3. int k2 = 9;
  4. int k3 = 10;
  5. int k4 = 11;
  6. int L1 = 2;                                     // Definerer pins for LED
  7. int L2 = 3;
  8. int L3 = 4;
  9. int L4 = 5;
  10.  
  11. int range = 0;                                  // Sætter "range" til 0 fra start af
  12.  
  13. void setup() {
  14.   pinMode(ss,INPUT);                            // Definerer inputs og outputs
  15.   pinMode(k1,INPUT);
  16.   pinMode(k2,INPUT);
  17.   pinMode(k3,INPUT);
  18.   pinMode(k4,INPUT);
  19.   pinMode(L1,OUTPUT);
  20.   pinMode(L2,OUTPUT);
  21.   pinMode(L3,OUTPUT);
  22.   pinMode(L4,OUTPUT);
  23.  
  24.   Serial.begin(9600);                            // Starter seriel-monitor
  25. }
  26.  
  27. void loop() {
  28.  
  29.   Serial.println(range);                         // Printer "range" på seriel monitor
  30.  
  31. if (digitalRead(ss) == HIGH && range == 0){      // If sætninger der er afhængige af "Switch-case og tryk på en knap.
  32.   range = 1;                                     // Bygget op så de kommer i en sekvens, det er angivet i switch case,
  33. }                                                // at range-værdien vil gå rundt og rundt, og ikke kan  hoppe frem og tilbage.
  34. if (digitalRead(k2) == HIGH && range == 2){      
  35.   range = 3;
  36. }
  37. if (digitalRead(k4) == HIGH && range == 4){
  38.   range = 5;
  39. }
  40. if (digitalRead(k1) == HIGH && range == 6){
  41.   range = 7;
  42. }
  43. if (digitalRead(k3) == HIGH && range == 8){
  44.   range = 0;
  45. }
  46.  
  47.   switch (range) {                                // Switch case gør så værdien "range" afgør hvilken case der læses.
  48.     case 0:                                       // Break i alle case gør at der kun læses en case hver gang loopet køres.    
  49.       digitalWrite(L1,HIGH);                      // Koden er bygget op så der i alt er 9 cases, det betyder der er cases, som køres indtil der er signal fra en knap.
  50.       digitalWrite(L3,HIGH);                      // Dette er nødvendigt, fordi koden skal vente på et signal fra knappen, og derved køre loop med det stadie indtil knappen trykkes.
  51.                                                   // (kunne måske undgås med en else funktion)
  52.       Serial.println("Cyl 1 og 2 i udgangsposition");
  53.       break;
  54.     case 1:
  55.       digitalWrite(L1,LOW);
  56.       Serial.println("Cyl 1 bevægelse");          // I switch case cirkulerer jeg hele tiden, så en knap får en cylinder i bevægelse, og ender ved en anden knap.
  57.       delay(1000);                                // Her skriver jeg det ud på den serielle monitor, og lægger 1 til "range".
  58.       range ++;
  59.       break;
  60.     case 2:
  61.       digitalWrite(L2,HIGH);
  62.       Serial.println("Cyl 1 ude");
  63.       break;
  64.     case 3:
  65.       digitalWrite(L3,LOW);
  66.       Serial.println("Cyl 2 bevægelse");
  67.       delay(1000);
  68.       range ++;
  69.       break;
  70.     case 4:
  71.       digitalWrite(L4,HIGH);
  72.       Serial.println("Cyl 2 ude");
  73.       break;
  74.     case 5:
  75.       digitalWrite(L2,LOW);
  76.       Serial.println("Cyl 1 bevægelse");
  77.       delay(1000);
  78.       range ++;
  79.       break;
  80.     case 6:
  81.       digitalWrite(L1,HIGH);
  82.       Serial.println("Cyl 1 inde");
  83.       break;
  84.     case 7:
  85.       digitalWrite(L4,LOW);
  86.       Serial.println("Cyl 2 bevægelse");
  87.       delay(1000);
  88.       range ++;
  89.       break;
  90.     case 8:
  91.       digitalWrite(L3,HIGH);
  92.       Serial.println("Cyl 2 inde");
  93.       break;
  94.   }
  95. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement