Daten vom Serial Monitor weiter verwenden

Guten Morgen zusammen
Ich habe folgendes Problem.
Ich will mit einem 3x4 Matrix Keyboard diverse geräte ansteuern (einen Pclüfter, Ledstrips ect.).
Jetzt habe ich den Code so geschrieben das er im Serial Monitor immer die gedrückte Taste als Wert ausgiebt. Allerdings komm ich jetzt nicht mehr weiter. Ich habe Zwar die Zahl mit einer Zeile im Code verknüpft, allerdings funktioniert dies nur wenn ich die Zahl manuell im Serial Monitor eingebe.
Wie kann ich den Wert der der Serial Monitor ausgiebt weiter verwenden?
Ich habe schon diverse Codes angesehen und auf Google nach lösungen gesucht aber nichts gefunden dass mit weiter geholfen hat.

Liebe Grüsse Uzip

Hier ist der Code

Keypad_steuerung1.ino (2.37 KB)

Nur mit den Arduino alleine nicht. Schau dir Processing mal an.

Ich möchte das Programm später aber ohne Pc starten können.
Eigendlicht sollte das ja nicht so schwer sein. Wenn man die 1 auf dem keypad drückt soll Ledstrip 1 angehen und wenn man die 1 wieder drückt wieder ausgehen. Wieso braucht man für das Processing?

Das ist auch nicht so schwer. Nur nach deiner Beschreibung versteht man erst mal “Bahnhof”.
Wenn du die Funktionen ohne den PC ausführen möchtest, haben die auf dem Serial Monitor nichts zu suchen. Diesen benutzt man in der Regel nur zum debuggen, also wenn du dir bestimmte Werte von Variablen ansehen möchtest.

Du solltest dir die Basics ansehen und die Schaltfunktionen direkt im Arduino auf die Ausgabepins ausgeben.

Zum Code: gebe diesen bitte direkt mit Code-Tags “Schaltfläche </>” ein.
Das ist für uns besser zu lesen.

Beispiel:
case 0:
Serial.println("#");

Hier kommt der von dir gewünschte Schaltbefehl rein!!

ebenso bei allen anderen!
break;

Dass speichere doch den aktuellen Zustand deiner LEDs ab. Also ob an oder aus. Dann verknüpfe diese Information mit deiner Eingabe.

Danke für die Antworten :slight_smile:
Ich bin recht neu hier, aber eure Antworten haben wir weiter geholfen
LG uzip

uzip:
Danke für die Antworten :slight_smile:
Ich bin recht neu hier, aber eure Antworten haben wir weiter geholfen
LG uzip

Dann teile uns bitte auch mit, wie deine Lösung jetzt aussieht. Das hilft allen Forumsteilnehmern.

Allerings kommt jetzt immer ein error, scheint das es so mit digitalWrite nicht funktioniert.

Beispiel:
case 0:
Serial.println(digitalWrite (12, HIGH);
break;

Du kanst den Befehl auch nicht auf dem Display ausgeben, der muss für sich allein stehen. Sieh dir das in den Beispielen mal an.

Jetzt hab ichs raus :smiley: Ein Blick auf die Beispiele hat mir weiter geholfen.

Beispiel:
case 0:
Serial.println("#"); //# steht für die Bezeichnung auf dem Keypad
digitalWrite (ledPin, HIGH);
break;

Danke :slight_smile:

Prima, wenn dann alles funktioniert, kannst du alle "serial-Befehle" ausmarkieren. Dann werden die beim kompilieren nicht mehr berücksichtigt.

Danke hab ich gemacht.
Jetzt will ich aber die Steuerung machen das wenn ich # einmal drücke geht der Ledstreifen an und beim zweiten mal drücken wieder aus. Ich habs mit einer while schleife schon probiert und auch mit dem Buttonstate befehl aber bis jetzt noch nichts hin gekriegt.

Nix while(). Vergiss while() Schleifen. Die halten nur das Programm an. Du hast schon mit loop() eine Schleife!

Du musst nur den aktuellen Zustand der LEDs speichern:

bool ledsOn = false;

Und je nachdem ob das true oder false ist machst du beim Tastendruck an oder aus

Danke für die antwort, jetzt ist mein Code fertig
Lg uzip :slight_smile:

Und toll wäre es, wenn du uns das Ergebnis zeigst. Hilft vielen die eine ähnlich Frage haben.

Danke