Per Taster ein Signal für ein MSM 2 Modul schicken und dabei noch 5 andere knöpfe sperren

Hallo Zusammen
ich Habe ein Kleines Projekt mit einer Soundbox und diese wird Per 6 Tastern angesteuert diese 6 Taster will ich dass sie auf den adruino nano mit einem ErweiterungsBoard (siehe Bild) und dann auf dem Pin daneben ein kurzes Signal ausgiebt aber ich bekomme immer nur in andere moduse und nicht wie ein Tasten Druck aber wenn ich die Kontakte vom MP3 Modul (ELV MSM2 MP3 Modul) auf die 2 Ground anschließe und gleich wieder heraus nimm dann spielt er es ab.

Danke schon mal im Voraus


Aber gerne doch.....nur wie sollen wir helfen, wenn wir deinen Sketch und dein Schaltbild nicht kennen.
Also poste deinen Sketch und ein Bild, wie du alles verdrahtet hast.
Und was meinst du mit "Knöpfe sperren" ?

Sorry, versteh den Bandwurmsatz nicht :thinking:

also ich habe ein Soundmodul von der Firma ELV und will das mit einen Adruino Nano mit ErweiterungsBoard ansteuern nur ist das Problem dass ich das nicht kann weil wenn ich den "Taster" anschließe am Erweiterungsboard also normal an Ground und wofür auch immer "S" steht dann ist es so wie wenn ich einen Taster durchgehend gedrückt halte aber wenn ich die 2 Kontakte beide auf 2 Gound Pins stecke dann funktioniert es aber ich kann sie nicht mehr ansteuern

Mit freundlichen Grüßen GamingNotes (Markus)

Also die Sound datei ist bsp. 2 min. lang das ich egal welchen Knopf bzw Taster ich drücke er kein Signal giebt ich hab die hier einmal den Code gegeben das Schalt bild muss ich noch zeichnen aber dass habe ich mehr oder weniger im Kopf deswegen

const int buttonPin2 = 3;  // Pin des zweiten Tasters
const int buttonPin3 = 4;  // Pin des dritten Tasters
const int buttonPin4 = 5;  // Pin des vierten Tasters
const int buttonPin5 = 6;  // Pin des fünften Tasters
const int buttonPin6 = 7;  // Pin des sechsten Tasters

const int outputPin1 = 8;  // Pin für den Output des ersten Tasters
const int outputPin2 = 9;  // Pin für den Output des zweiten Tasters
const int outputPin3 = 10; // Pin für den Output des dritten Tasters
const int outputPin4 = 11; // Pin für den Output des vierten Tasters
const int outputPin5 = 12; // Pin für den Output des fünften Tasters
const int outputPin6 = 13; // Pin  für den Output des sechsten Tasters

const unsigned long lockDuration1 = 2000;  // Sperrdauer für Taster 1 in Millisekunden (hier: 2 Sekunden)
const unsigned long lockDuration2 = 3000;  // Sperrdauer für Taster 2 in Millisekunden (hier: 3 Sekunden)
const unsigned long lockDuration3 = 4000;  // Sperrdauer für Taster 3 in Millisekunden (hier: 4 Sekunden)
const unsigned long lockDuration4 = 5000;  // Sperrdauer für Taster 4 in Millisekunden (hier: 5 Sekunden)
const unsigned long lockDuration5 = 6000;  // Sperrdauer für Taster 5 in Millisekunden (hier: 6 Sekunden)
const unsigned long lockDuration6 = 7000;  // Sperrdauer für Taster 6 in Millisekunden (hier: 7 Sekunden)

unsigned long lockStartTime1 = 0;  // Startzeitpunkt der Sperrung für Taster 1
unsigned long lockStartTime2 = 0;  // Startzeitpunkt der Sperrung für Taster 2
unsigned long lockStartTime3 = 0;  // Startzeitpunkt der Sperrung für Taster 3
unsigned long lockStartTime4 = 0;  // Startzeitpunkt der Sperrung für Taster 4
unsigned long lockStartTime5 = 0;  // Startzeitpunkt der Sperrung für Taster 5
unsigned long lockStartTime6 = 0;  // Startzeitpunkt der Sperrung für Taster 6

void setup() {
 pinMode(buttonPin1, INPUT);   // Der erste Taster als Eingang definieren
 pinMode(buttonPin2, INPUT);   // Der zweite Taster als Eingang definieren
 pinMode(buttonPin3, INPUT);   // Der dritte Taster als Eingang definieren
 pinMode(buttonPin4, INPUT);   // Der vierte Taster als Eingang definieren
 pinMode(buttonPin5, INPUT);   // Der fünfte Taster als Eingang definieren
 pinMode(buttonPin6, INPUT);   // Der sechste Taster als Eingang definieren

 pinMode(outputPin1, OUTPUT);  // Der Output-Pin des ersten Tasters als Ausgang definieren
 pinMode(outputPin2, OUTPUT);  // Der Output-Pin des zweiten Tasters als Ausgang definieren
 pinMode(outputPin3, OUTPUT);  // Der Output-Pin des dritten Tasters als Ausgang definieren
 pinMode(outputPin4, OUTPUT);  // Der Output-Pin des vierten Tasters als Ausgang definieren
 pinMode(outputPin5, OUTPUT);  // Der Output-Pin des fünften Tasters als Ausgang definieren
 pinMode(outputPin6, OUTPUT);  // Der Output-Pin des sechsten Tasters als Ausgang definieren

 Serial.begin(9600);  // Serielle Kommunikation mit einer Baudrate von 9600 starten
}

void loop() {
 unsigned long currentTime = millis();

 // Taster 1
 if (currentTime - lockStartTime1 >= lockDuration1) {
   int buttonState1 = digitalRead(buttonPin1);
   digitalWrite(outputPin1, buttonState1);
   if (buttonState1 == HIGH) {
     lockStartTime1 = currentTime;  // Sperrung für Taster 1 aktivieren
     Serial.println("Taster 1 gedrückt");
   }
 }

 // Taster 2
 if (currentTime - lockStartTime2 >= lockDuration2) {
   int buttonState2 = digitalRead(buttonPin2);
   digitalWrite(outputPin2, buttonState2);
   if (buttonState2 == HIGH) {
     lockStartTime2 = currentTime;  // Sperrung für Taster 2 aktivieren
     Serial.println("Taster 2 gedrückt");
   }
 }

 // Taster 3
 if (currentTime - lockStartTime3 >= lockDuration3) {
   int buttonState3 = digitalRead(buttonPin3);
   digitalWrite(outputPin3, buttonState3);
   if (buttonState3 ==
 HIGH) {
     lockStartTime3 = currentTime;  // Sperrung für Taster 3 aktivieren
     Serial.println("Taster 3 gedrückt");
   }
 }

 // Taster 4
 if (currentTime - lockStartTime4 >= lockDuration4) {
   int buttonState4 = digitalRead(buttonPin4);
   digitalWrite(outputPin4, buttonState4);
   if (buttonState4 == HIGH) {
     lockStartTime4 = currentTime;  // Sperrung für Taster 4 aktivieren
     Serial.println("Taster 4 gedrückt");
   }
 }

 // Taster 5
 if (currentTime - lockStartTime5 >= lockDuration5) {
   int buttonState5 = digitalRead(buttonPin5);
   digitalWrite(outputPin5, buttonState5);
   if (buttonState5 == HIGH) {
     lockStartTime5 = currentTime;  // Sperrung für Taster 5 aktivieren
     Serial.println("Taster 5 gedrückt");
   }
 }

 // Taster 6
 if (currentTime - lockStartTime6 >= lockDuration6) {
   int buttonState6 = digitalRead(buttonPin6);
   digitalWrite(outputPin6, buttonState6);
   if (buttonState6 == HIGH) {
     lockStartTime6 = currentTime;  // Sperrung für Taster 6 aktivieren
     Serial.println("Taster 6 gedrückt");
   }
 }
}

Versuche das Ganze mal in kurzen Sätzen zu erklären.
Zusätzlich Links zu den Teilen und Sketch und Schaltplan.

Gruß Tommy

Wir können aber nicht in Deinen Kopf schauen. :wink:

Gruß Tommy

Und wozu brauchst du einen Ausgangspin für einen Taster ?
Üblicherweise reicht ein Eingangspin je Taster.

Also es ist so ich habe 6 Taster und diese MUSS ich über den Adruino laufen lassen damit ich die Taster kurzzeitig "sperren" kann also dass man egal was man drückt nichts passiert und für jeden Taster soll ein eigener Output Pin sein der dann weiter geht auf dass MP3 Modul dass dann die Musik abspielt

und ich kenne mich mit coden nicht gut aus deswegn hab ich ChatGPT gefragt ob er mir das Coden kann

https://de.elv.com/elv-mp3-sound-modul-msm-2-komplettbausatz-092853 (MP3 Modul)

Na toll....und da hilft dir ChatGPT nicht weiter. Tolle Hilfe.
So lernst du programmieren def. nicht.

ich wills auch nicht lernen dass mach ich in meiner schule eh noch früh genug aber ich brauche das für einen Verein deswegen suche ich jz Rad bei euch und anbei eine Skizze von der Schaltung

Ahhh.....ok, verstehe.

Ich sag mal so....warte noch ein weilchen, da kommt bestimmt einer vorbei, der das für dich macht.

Hier gibt es Hilfe zur Selbsthilfe. Aufträge gegen Bezahlung ohne selbst zu lernen werden hier entgegen genommen. Die wollen aber auch eine sinnvolle Beschreibung.

Zusätzlich:
Also mit solchen Schaltungen wird sich die Hilfe höchstens bei NULL einpegeln, weil es keine sinnvolle Info gibt.

Gruß Tommy

1 Like

also ich habe die Schaltung jz mit einem Taster aufgebaut und damit man es besser sieht ein wenig auseinander gesteckt also ich gehe von meinen 2 poligen Taster mit Widerstand auf pin 2 Widerstand auf Ground das kabel das beim Widerstand dabei ist auf Dauer + und das andere auf das "S" und dann bei Pin 7 gehe ich mit dem einen Kontakt auf den Ground und den anderen wieder auf das "S" und dass dann wieder weiter auf den Mp3 dings



Das geht nicht, weil die Taster als Matrix angeschlossen sind. Aber in der Bedienungsanleitung "3.4. Belegung der Auswahleingänge" gibt es eine Möglichkeit mit Optokopplern.

ja aber wenn ich den Taster direkt an dem MP3 modul anstecke funktionierts ja auch

Ich gebe es auf. Du kannst ja nicht mal eine brauchbare Beschreibung ohne Bandwurmsätze bauen.

Viel Spaß noch.
Gruß Tommy

1 Like

Da du ja gerne mit Chat gpt arbeitest, habe ich jetzt einfach mal deine Beschreibung in chat gpt geladen. Als Antwort kam folgendes:

"Es tut mir leid, aber Ihre Beschreibung der Schaltung ist nicht ganz klar. Um Ihnen besser helfen zu können, benötige ich weitere Informationen und eine klarere Darstellung Ihrer Schaltung.

Es wäre hilfreich, wenn Sie die genauen Komponenten angeben könnten, die Sie verwenden, sowie eine Skizze oder ein Schaltbild Ihrer Schaltung bereitstellen könnten. Auf diese Weise kann ich Ihre Frage genauer verstehen und Ihnen die entsprechenden Informationen geben.

Bitte stellen Sie sicher, dass Sie die genauen Bezeichnungen und Werte der Komponenten angeben, insbesondere des Tasters, des Widerstands und des MP3-Moduls. Je detaillierter Ihre Informationen sind, desto besser kann ich Ihnen helfen."

Also selbst dein Kumpel kann mit deinen Beschreibungen nix anfangen, wie sollen wir es dann?

Aber evtl. wird dir in der Schule auch noch irgendwann beigebracht wie man es besser macht, wenn nicht... dann guten Nacht