egal

hat sich erledigt

Der Code in Code-Tags:

int SPEAKER = 13;
int REDLED = 2;
int GREENLED = 4;
int YELLOWLED = 6;
int BLUELED = 8;


int REDBUTTON = 3;
int GREENBUTTON = 5;
int YELLOWBUTTON = 7;
int BLUEBUTTON = 9;


int RANDOMNUMBER = random(1, 8);


int v=429;
int h=858;




void setup() {
  
 pinMode(SPEAKER, OUTPUT);
  
 pinMode(REDLED, OUTPUT);
 pinMode(GREENLED, OUTPUT);
 pinMode(YELLOWLED, OUTPUT);
 pinMode(BLUELED, OUTPUT);
 
 pinMode(REDBUTTON, INPUT_PULLUP);
 pinMode(YELLOWBUTTON, INPUT_PULLUP);
 pinMode(GREENBUTTON, INPUT_PULLUP);
 pinMode(BLUEBUTTON, INPUT_PULLUP);
 
 digitalWrite(REDLED, HIGH);
 digitalWrite(GREENLED, HIGH);
 digitalWrite(YELLOWLED, HIGH);
 digitalWrite(BLUELED, HIGH);
 
 Serial.begin(9600);
}
void MELODY() { 
 for(int n = 0; n <= RANDOMNUMBER; n++) {
 tone(SPEAKER, 49);
 delay(v);
 tone(SPEAKER, 33);
 delay(v);
 tone(SPEAKER, 37);
 delay(v);
 tone(SPEAKER, 33);
 delay(v);
 tone(SPEAKER, 49);
 delay(v);
 tone(SPEAKER, 33);
 delay(v);
 tone(SPEAKER, 37);
 delay(v);
 tone(SPEAKER, 33);
 delay(v);
 tone(SPEAKER, 37);
 delay(v);
 tone(SPEAKER, 41);
 delay(v);
 tone(SPEAKER, 44);
 delay(h);
 tone(SPEAKER, 37);
 delay(v);
 tone(SPEAKER, 41);
 delay(v);
 tone(SPEAKER, 44);
 delay(h);
 }
 noTone(SPEAKER);
}

Ganz allgemein: Du solltest darauf achten, den Code möglichst kurz und übersichtlich zu gestalten. Z.B. überflüssige Leerzeilen vermeiden und Folgen längerer, mehr oder weniger gleicher Befehlsfolgen zusammenfassen.

Statt

 tone(SPEAKER, 49);
 delay(v);
 tone(SPEAKER, 33);
 delay(v);
 tone(SPEAKER, 37);
 delay(v);

z.B.

 tone(SPEAKER, 49); delay(v);
 tone(SPEAKER, 33); delay(v);
 tone(SPEAKER, 37); delay(v);

Gruß

Gregor

Hallo
mit einer Tüte gefüllt mit einer Schrittkette und diversen Zeitgebern sollte das realisierbar sein.

Hallo,

Warum willst Du den Spieler an den Strom anschliessen ? Und warum willst Du mit Vollgas starten, das frustriert doch nur. Arbeite ein paar Beispiele aus der IDE durch und wandele das ein oder andere nach Deinen Wünschen und Ideen ab. Wenn Du dann die Grundlagen verstanden hast gehst Du dein Projekt noch mal an.

Heinz

Hallo
um einen kompakten und strukturierten Sketch zu bekommen deklariere die LEDs, Buttons und den Spielstatus, in einem Objekt mit dem Namen Spieler:

int led[] {2,4,6,8};
int button[] {3,5,7,9};
struct SPIELER {
  int led;
  int button;
  bool spiel; 
};
SPIELER spieler[sizeof(led)/sizeof(int)];

TO: ich weis das es nur sehr weit mit dem verwandt ist *) was du willst, aber willst vielleicht zunächst mal das hier lesen

https://werner.rothschopf.net/202003_arduino_buzzer_fsm.htm

als Ideenlieferant wie man so etwas
ohne delay,
ohne Codeduplikate und in Form einer State Machine machen könnte? Wie man Arrays, Strukturen und enum class anwendet,..

*) aber es hat auch "Spieler", "Buttons", "LEDs" und einen "Ablauf"

paulpaulson:
Hallo
um einen kompakten und strukturierten Sketch zu bekommen deklariere die LEDs, Buttons und den Spielstatus, in einem Objekt mit dem Namen Spieler:

int led[] {2,4,6,8};

int button[] {3,5,7,9};
struct SPIELER {
  int led;
  int button;
  bool spiel;
};
SPIELER spieler[sizeof(led)/sizeof(int)];

Hmmm ....

Warum sollte man sowas tun?
Was soll das bringen?

Wenn dann doch so, oder so ähnlich:

class Spieler 
{
  private:
  const byte led;
  const byte button;
  bool spiel; 

  public:
  Spieler(const byte led,const byte button):led(led),button(button),spiel(false){}
  void begin()
  {
    pinMode(button, INPUT_PULLUP);
    pinMode(led, OUTPUT);
  }
  void tuwas(){}
};

Spieler spieler[] {{2,3},{4,5},{6,7},{8,9}};

void setup() 
{
  for(Spieler &s:spieler) s.begin();
}

void loop() 
{
}

@32544wll

Other post/duplicate DELETED
Please do NOT cross post / duplicate as it wastes peoples time and efforts to have more than one post for a single topic.

Continued cross posting could result in a time out from the forum.

Could you also take a few moments to Learn How To Use The Forum.

Other general help and troubleshooting advice can be found here.
It will help you get the best out of the forum in the future.

@all: bitte keine Zeit mehr investieren, ich hätte was fertiges. Warte aber noch auf irgendwelche Reaktionen vom TO...

@all: bitte keine Zeit mehr investieren

An solcher Art Empfehlung fühle ich mich nicht gebunden.
Normalerweise ignoriere ich sowas noch nicht einmal.

Yes!

Danke an alle fuer die viele Hilfe. Ich brauche erstmal etwas Zeit um mit alles durchzulesen und etwas zu lernen. :slight_smile:

Hallo. Habe ein großes Problem beim Programmieren. Wer könnte mir helfen.
Das ist die Aufgabe: Jeder Spieler hat eine eigene LED und einen Taster. Die LEDs haben jeweils verschiedene Farben. Zu Beginn leuchten die LEDs und die Melodie "Frère Jacques" beginnt zu spielen. Nach einer zufälligen Zeit hört die Melodie auf. Nun müssen die Spieler so schnell wie möglich ihren Taster drücken. Der langsamste Spieler verliert. Dessen LED erlischt.

Nun folgt Runde 2. Die Melodie beginnt erneut und stoppt nach einer zufälligen Zeit...

Das Spiel endet, sobald nur noch eine LED leuchtet - die des Siegers.

microstarone:
Hallo. Habe ein großes Problem beim Programmieren. Wer könnte mir helfen.
Das ist die Aufgabe: Jeder Spieler hat eine eigene LED und einen Taster. Die LEDs haben jeweils verschiedene Farben. Zu Beginn leuchten die LEDs und die Melodie "Frère Jacques" beginnt zu spielen. Nach einer zufälligen Zeit hört die Melodie auf. Nun müssen die Spieler so schnell wie möglich ihren Taster drücken. Der langsamste Spieler verliert. Dessen LED erlischt.

Nun folgt Runde 2. Die Melodie beginnt erneut und stoppt nach einer zufälligen Zeit...

Das Spiel endet, sobald nur noch eine LED leuchtet - die des Siegers.

Hallo. Habe ein großes Problem beim Programmieren. Wer könnte mir helfen.
Das ist die Aufgabe: Jeder Spieler hat eine eigene LED und einen Taster. Die LEDs haben jeweils verschiedene Farben.
Zu Beginn leuchten die LEDs und die Melodie "Frère Jacques" beginnt zu spielen. Nach einer zufälligen Zeit hört die Melodie auf.#
Nun müssen die Spieler so schnell wie möglich ihren Taster drücken. Der langsamste Spieler verliert. Dessen LED erlischt.

Nun folgt Runde 2. Die Melodie beginnt erneut und stoppt nach einer zufälligen Zeit...

Das Spiel endet, sobald nur noch eine LED leuchtet - die des Siegers.

microstarone:
Hallo. Habe ein großes Problem beim Programmieren. Wer könnte mir helfen.

Gegenfrage:

Wobei ist dir denn zu helfen ?

HotSystems:
Gegenfrage:
Wobei ist dir denn zu helfen ?

Gar nicht mehr. Der OP hat das OP gelöscht, den Betreff geändert und ist offensichtlich jemand, der hinsichtlich moderner Kommunikation vollkommen ahnungslos ist. Sowas gibt's.

Gruß

Gregor

gregorss:
Gar nicht mehr. Der OP hat das OP gelöscht, den Betreff geändert und ist offensichtlich jemand, der hinsichtlich moderner Kommunikation vollkommen ahnungslos ist. Sowas gibt's.

Der TO ja, aber der "TK" (Thread-Kaperer) versucht es zumindest.

HotSystems:
Der TO ja, aber der "TK" (Thread-Kaperer) versucht es zumindest.

Uh stimmt.

Au ja: Dies wird der Sammelthread für Ahnungslose!

Die sind wir los (grmpf :slight_smile:

Gruß

Gregor

Mittlerweile sind beide Threads beschädigt worden.

Vermutlich ist die Zeit für die Hausübung eh schon abgelaufen, dann ist es in Ordnung, dass Google die Lösung kennt.

Der Lehrer findet es wohl auch.

noiasca:
Mittlerweile sind beide Threads beschädigt worden.

Vermutlich ist die Zeit für die Hausübung eh schon abgelaufen, dann ist es in Ordnung, dass Google die Lösung kennt.

Der Lehrer findet es wohl auch.

Daumen hoch