Advertisement
Drakkheen

Untitled

May 25th, 2021
1,321
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. const int laser = 0;
  2. const int disp[] = {5, 4, 3}; // RGB LED
  3. const int trigger = 1;
  4. const int reload = 2;
  5.  
  6. int ammo = 5;
  7.  
  8. void setup() {
  9.   pinMode(trigger, INPUT);
  10.   pinMode(reload, INPUT);
  11.  
  12.   pinMode(laser, OUTPUT);
  13.   pinMode(disp[0], OUTPUT);
  14.   pinMode(disp[1], OUTPUT);
  15.   pinMode(disp[2], OUTPUT);
  16.  
  17. }
  18.  
  19. void loop() {
  20.  
  21.   int fire = digitalRead(trigger);
  22.   int bullets = digitalRead(reload);
  23.  
  24.   // Normales Nachladen
  25.   if ((bullets == HIGH) && (fire == LOW)) {
  26.     magazine(1, 0, 0);
  27.     delay(500);
  28.     magazine(0, 1, 1);
  29.     delay(500);
  30.     ammo = 5;
  31.   }
  32.   // Magazinbrand
  33.   if ( (bullets == HIGH) && (fire == HIGH)) {
  34.     magazine(1, 0, 0);
  35.     delay(200);
  36.     magazine(1, 1, 0);
  37.     delay(200);
  38.     magazine(1, 0, 0);
  39.     delay(200);
  40.     magazine(1, 1, 0);
  41.     delay(200);
  42.     magazine(1, 0, 0);
  43.     delay(200);
  44.     magazine(1, 1, 0);
  45.     delay(200);
  46.     magazine(1, 0, 0);
  47.     delay(200);
  48.     magazine(1, 1, 0);
  49.     delay(200);
  50.     magazine(1, 0, 0);
  51.     delay(200);
  52.     magazine(1, 1, 0);
  53.     delay(200);
  54.     ammo = 3;
  55.   }
  56.   // Schuss
  57.   if ((fire == HIGH) && (ammo > 0)) {
  58.     digitalWrite(laser, HIGH);
  59.     ammo--;
  60.     delay(500);
  61.     digitalWrite(laser, LOW);
  62.     delay(500);
  63.   }
  64.   else {
  65.     digitalWrite(laser, LOW);
  66.   }
  67.  
  68.   switch (ammo) {
  69.  
  70.     case 5:
  71.       magazine(0, 1, 0);
  72.       break;
  73.  
  74.     case 4:
  75.       magazine(0, 1, 1);
  76.       break;
  77.  
  78.     case 3:
  79.       magazine(1, 1, 0);
  80.       break;
  81.  
  82.     case 2:
  83.       magazine(1, 1, 1);
  84.       break;
  85.  
  86.     case 1:
  87.       magazine(1, 0, 0);
  88.       break;
  89.  
  90.     case 0:
  91.       magazine(0, 0, 0);
  92.       break;
  93.   }
  94. }
  95.  
  96. void magazine(int r, int g, int b) {
  97.   digitalWrite(disp[0], r);
  98.   digitalWrite(disp[1], g);
  99.   digitalWrite(disp[2], b);
  100.   delay(100);
  101. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement