Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const int laser = 0;
- const int disp[] = {5, 4, 3}; // RGB LED
- const int trigger = 1;
- const int reload = 2;
- int ammo = 5;
- void setup() {
- pinMode(trigger, INPUT);
- pinMode(reload, INPUT);
- pinMode(laser, OUTPUT);
- pinMode(disp[0], OUTPUT);
- pinMode(disp[1], OUTPUT);
- pinMode(disp[2], OUTPUT);
- }
- void loop() {
- int fire = digitalRead(trigger);
- int bullets = digitalRead(reload);
- // Normales Nachladen
- if ((bullets == HIGH) && (fire == LOW)) {
- magazine(1, 0, 0);
- delay(500);
- magazine(0, 1, 1);
- delay(500);
- ammo = 5;
- }
- // Magazinbrand
- if ( (bullets == HIGH) && (fire == HIGH)) {
- magazine(1, 0, 0);
- delay(200);
- magazine(1, 1, 0);
- delay(200);
- magazine(1, 0, 0);
- delay(200);
- magazine(1, 1, 0);
- delay(200);
- magazine(1, 0, 0);
- delay(200);
- magazine(1, 1, 0);
- delay(200);
- magazine(1, 0, 0);
- delay(200);
- magazine(1, 1, 0);
- delay(200);
- magazine(1, 0, 0);
- delay(200);
- magazine(1, 1, 0);
- delay(200);
- ammo = 3;
- }
- // Schuss
- if ((fire == HIGH) && (ammo > 0)) {
- digitalWrite(laser, HIGH);
- ammo--;
- delay(500);
- digitalWrite(laser, LOW);
- delay(500);
- }
- else {
- digitalWrite(laser, LOW);
- }
- switch (ammo) {
- case 5:
- magazine(0, 1, 0);
- break;
- case 4:
- magazine(0, 1, 1);
- break;
- case 3:
- magazine(1, 1, 0);
- break;
- case 2:
- magazine(1, 1, 1);
- break;
- case 1:
- magazine(1, 0, 0);
- break;
- case 0:
- magazine(0, 0, 0);
- break;
- }
- }
- void magazine(int r, int g, int b) {
- digitalWrite(disp[0], r);
- digitalWrite(disp[1], g);
- digitalWrite(disp[2], b);
- delay(100);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement