lts-projekt
Differences
This shows you the differences between two versions of the page.
| Next revision | Previous revision | ||
| lts-projekt [2026/06/02 05:10] – created daddysun | lts-projekt [2026/06/02 09:54] (current) – daddysun | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | Download der Dateien | + | Download der Dateien |
| + | |||
| + | {{FileSharing}} | ||
| + | |||
| + | < | ||
| + | #include < | ||
| + | #include < | ||
| + | |||
| + | #define BUTTON1 4 | ||
| + | #define BUTTON2 5 | ||
| + | #define BUTTON3 6 | ||
| + | #define BUZZER 2 | ||
| + | #define MAX_LEDS 24 | ||
| + | #define SPEED 50 | ||
| + | #define RAND_MIN 3 | ||
| + | #define RAND_MAX 10 | ||
| + | |||
| + | MCP23017 controller1 = MCP23017(0x20); | ||
| + | MCP23017 controller2 = MCP23017(0x21); | ||
| + | MCP23017 controller3 = MCP23017(0x22); | ||
| + | |||
| + | void setPinAll(byte state) { | ||
| + | if (state == 0) { | ||
| + | controller1.writeRegister(MCP23017Register:: | ||
| + | controller2.writeRegister(MCP23017Register:: | ||
| + | controller3.writeRegister(MCP23017Register:: | ||
| + | } else if (state == 1) { | ||
| + | controller1.writeRegister(MCP23017Register:: | ||
| + | controller2.writeRegister(MCP23017Register:: | ||
| + | controller3.writeRegister(MCP23017Register:: | ||
| + | } | ||
| + | } | ||
| + | |||
| + | void setPinState(int led, byte state) { | ||
| + | if (led > MAX_LEDS) { | ||
| + | Serial.println(" | ||
| + | led = led - MAX_LEDS; | ||
| + | } | ||
| + | switch (led) { | ||
| + | case 1: | ||
| + | controller1.digitalWrite(0, | ||
| + | break; | ||
| + | case 2: | ||
| + | controller1.digitalWrite(1, | ||
| + | break; | ||
| + | case 3: | ||
| + | controller1.digitalWrite(2, | ||
| + | break; | ||
| + | case 4: | ||
| + | controller1.digitalWrite(3, | ||
| + | break; | ||
| + | case 5: | ||
| + | controller1.digitalWrite(4, | ||
| + | break; | ||
| + | case 6: | ||
| + | controller1.digitalWrite(5, | ||
| + | break; | ||
| + | case 7: | ||
| + | controller1.digitalWrite(6, | ||
| + | break; | ||
| + | case 8: | ||
| + | controller1.digitalWrite(7, | ||
| + | break; | ||
| + | case 9: | ||
| + | controller2.digitalWrite(0, | ||
| + | break; | ||
| + | case 10: | ||
| + | controller2.digitalWrite(1, | ||
| + | break; | ||
| + | case 11: | ||
| + | controller2.digitalWrite(2, | ||
| + | break; | ||
| + | case 12: | ||
| + | controller2.digitalWrite(3, | ||
| + | break; | ||
| + | case 13: | ||
| + | controller2.digitalWrite(4, | ||
| + | break; | ||
| + | case 14: | ||
| + | controller2.digitalWrite(5, | ||
| + | break; | ||
| + | case 15: | ||
| + | controller2.digitalWrite(6, | ||
| + | break; | ||
| + | case 16: | ||
| + | controller2.digitalWrite(7, | ||
| + | break; | ||
| + | case 17: | ||
| + | controller3.digitalWrite(0, | ||
| + | break; | ||
| + | case 18: | ||
| + | controller3.digitalWrite(1, | ||
| + | break; | ||
| + | case 19: | ||
| + | controller3.digitalWrite(2, | ||
| + | break; | ||
| + | case 20: | ||
| + | controller3.digitalWrite(3, | ||
| + | break; | ||
| + | case 21: | ||
| + | controller3.digitalWrite(4, | ||
| + | break; | ||
| + | case 22: | ||
| + | controller3.digitalWrite(5, | ||
| + | break; | ||
| + | case 23: | ||
| + | controller3.digitalWrite(6, | ||
| + | break; | ||
| + | case 24: | ||
| + | controller3.digitalWrite(7, | ||
| + | break; | ||
| + | } | ||
| + | } | ||
| + | |||
| + | void runSample(byte sample) { | ||
| + | switch (sample) { | ||
| + | case 1: | ||
| + | for (int i = 1; i <= MAX_LEDS; i++) { | ||
| + | setPinState(i, | ||
| + | delay(SPEED); | ||
| + | } | ||
| + | for (int i = 1; i <= MAX_LEDS; i++) { | ||
| + | setPinState(i, | ||
| + | delay(SPEED); | ||
| + | } | ||
| + | break; | ||
| + | case 2: | ||
| + | for (int i = 1; i <= MAX_LEDS; i++) { | ||
| + | setPinState(i, | ||
| + | delay(SPEED); | ||
| + | setPinState(i, | ||
| + | } | ||
| + | break; | ||
| + | case 3: | ||
| + | for (int i = 1; i <= MAX_LEDS; i++) { | ||
| + | setPinState(i, | ||
| + | if (i > 12) { | ||
| + | setPinState(i - 12, 1); | ||
| + | delay(SPEED); | ||
| + | setPinState(i - 12, 0); | ||
| + | } else if (i < 12) { | ||
| + | setPinState(i + 12, 1); | ||
| + | delay(SPEED); | ||
| + | setPinState(i + 12, 0); | ||
| + | } | ||
| + | delay(SPEED); | ||
| + | setPinState(i, | ||
| + | } | ||
| + | break; | ||
| + | } | ||
| + | } | ||
| + | |||
| + | void setup() { | ||
| + | Wire.begin(); | ||
| + | Serial.begin(19200); | ||
| + | Serial.println(" | ||
| + | Serial.println(" | ||
| + | randomSeed(analogRead(0)); | ||
| + | |||
| + | Serial.println(" | ||
| + | controller1.init(); | ||
| + | controller1.portMode(MCP23017Port:: | ||
| + | controller1.writeRegister(MCP23017Register:: | ||
| + | |||
| + | Serial.println(" | ||
| + | controller2.init(); | ||
| + | controller2.portMode(MCP23017Port:: | ||
| + | controller2.writeRegister(MCP23017Register:: | ||
| + | |||
| + | Serial.println(" | ||
| + | controller3.init(); | ||
| + | controller3.portMode(MCP23017Port:: | ||
| + | controller3.writeRegister(MCP23017Register:: | ||
| + | delay(100); | ||
| + | } | ||
| + | |||
| + | void loop() { | ||
| + | // Test Sample Mode | ||
| + | if (digitalRead(BUTTON1) == HIGH && digitalRead(BUTTON2) == LOW && digitalRead(BUTTON3) == HIGH) { | ||
| + | Serial.println(" | ||
| + | tone(BUZZER, | ||
| + | setPinAll(1); | ||
| + | delay(150); | ||
| + | noTone(BUZZER); | ||
| + | |||
| + | tone(BUZZER, | ||
| + | delay(150); | ||
| + | noTone(BUZZER); | ||
| + | setPinAll(0); | ||
| + | |||
| + | while (true) { | ||
| + | // BUTTON 1 | ||
| + | if (digitalRead(BUTTON1) == HIGH && digitalRead(BUTTON2) == LOW && digitalRead(BUTTON3) == LOW) { | ||
| + | tone(BUZZER, | ||
| + | runSample(1); | ||
| + | noTone(BUZZER); | ||
| + | return; | ||
| + | } | ||
| + | // BUTTON 2 | ||
| + | else if (digitalRead(BUTTON1) == LOW && digitalRead(BUTTON2) == HIGH && digitalRead(BUTTON3) == LOW) { | ||
| + | tone(BUZZER, | ||
| + | runSample(2); | ||
| + | noTone(BUZZER); | ||
| + | return; | ||
| + | } | ||
| + | // BUTTON 3 | ||
| + | else if (digitalRead(BUTTON1) == LOW && digitalRead(BUTTON2) == LOW && digitalRead(BUTTON3) == HIGH) { | ||
| + | tone(BUZZER, | ||
| + | runSample(3); | ||
| + | noTone(BUZZER); | ||
| + | return; | ||
| + | } | ||
| + | delay(100); | ||
| + | } | ||
| + | } | ||
| + | //Game Mode | ||
| + | else if (digitalRead(BUTTON1) == HIGH && digitalRead(BUTTON2) == LOW && digitalRead(BUTTON3) == LOW) { | ||
| + | int randomOffset = 0; | ||
| + | Serial.println(" | ||
| + | tone(BUZZER, | ||
| + | setPinAll(1); | ||
| + | delay(750); | ||
| + | setPinAll(0); | ||
| + | noTone(BUZZER); | ||
| + | delay(100); | ||
| + | |||
| + | // Game Basis auf Sample 2 | ||
| + | while (true) { | ||
| + | for (int i = 1; i <= MAX_LEDS; i++) { | ||
| + | setPinState(i, | ||
| + | // BUTTON 2 To Stop | ||
| + | if (digitalRead(BUTTON1) == LOW && digitalRead(BUTTON2) == HIGH && digitalRead(BUTTON3) == LOW) { | ||
| + | randomOffset = random(RAND_MIN, | ||
| + | } | ||
| + | delay(SPEED); | ||
| + | setPinState(i, | ||
| + | if (randomOffset != 0) { | ||
| + | Serial.println(randomOffset); | ||
| + | for (int a = 0; a <= randomOffset; | ||
| + | { | ||
| + | setPinState(i + a, 1); | ||
| + | delay(SPEED * 10); | ||
| + | setPinState(i + a, 0); | ||
| + | } | ||
| + | setPinState(i + randomOffset, | ||
| + | tone(BUZZER, | ||
| + | delay(1000); | ||
| + | noTone(BUZZER); | ||
| + | setPinState(i + randomOffset, | ||
| + | return; | ||
| + | } | ||
| + | } | ||
| + | } | ||
| + | } | ||
| + | delay(100); | ||
| + | } | ||
| + | |||
| + | </ | ||
lts-projekt.1780369824.txt.gz · Last modified: by daddysun
