Serial.available in switch integrieren

Danke für die Hilfe ich habe 3 Tasten mit eine lasse ich den Counter
wenn ich drauf drücke um ein Inkrementieren zb. Habe ich inden switch (counterPO)
den case 1 der Manueler Taster betetigt mein LED1 jetz will ich über mei
virtueller Taster Appinventor wenn ich drauf drücke das auch parallel zu mein
Manueler Taster das led 1 betetigt ich weiss nicht wie ich den block mit if(Serial.available())
in case 1 mit ein integriere danke ich weiss nicht ob ich dass gut elkleärt habe.

//***************************
if(Serial.available())
z=Serial.read();                                      //diese Block in case 1 mit ein integriere
if(z=='C')digitalWrite(LED2,HIGH); 
else if (z=='c')digitalWrite(LED2,LOW);
Serial.println(z);
//****************************


{
 counterPO++;
if( counterPO>4)
counterPO = 0; 
}  
switch (counterPO) {

case 0:   // Mach nicht
break; 

case 1:   
void funktion 0();
if (digitalRead(INPUT_1)==LOW)
{
digitalWrite(LED1, HIGH);
Serial.println("funktion 0");
  
else if (digitalRead(INPUT_1)==HIGH)
{     
digitalWrite(LED1, LOW);
}     
break;

case 2:   
void funktion 0();
if (digitalRead(INPUT_1)==LOW)
{
digitalWrite(LED1, HIGH);
Serial.println("funktion 0");
  
else if (digitalRead(INPUT_1)==HIGH)
{     
digitalWrite(LED1, LOW);
}     
break;

:confused:
Ich habe versucht das (Serial.available()) zum switch (counterPO)
zu integrieren habe volgendes fenomen drücke ich auf taste 1
und bringe über Pull up wiederstand input2 auf LOW, wenn ich
auf case2 binn der LED2 geht An und Aus wiedas sein soll
drücke ich jetz parallel auf virtuelle Taster von meine app (Appinventor) LED2
blinkt kurk und geht aus danke wenn mier jemand helfen kann
ich kann leider nicht so guht deutch schreiben.

unten ist mein versuch sketch

{
 counterPO++;
if( counterPO>4)
counterPO = 0; 
}  
switch (counterPO) {

case 0:   // Mach nicht
break; 

case 1:   
void funktion 0();
if (digitalRead(INPUT_1)==LOW)
{
digitalWrite(LED1, HIGH);
Serial.println("funktion 0");
  
else if (digitalRead(INPUT_1)==HIGH)
{     
digitalWrite(LED1, LOW);
}     
break;

case 2:   
void funktion 0();
if (digitalRead(INPUT_2)==LOW)
{
digitalWrite(LED2, HIGH);
Serial.println("funktion 0");
  
else if (digitalRead(INPUT_2)==HIGH)
{     
digitalWrite(LED2, LOW);
{
 char z;
if(Serial.available())
{
z=Serial.read();
if(z=='C')digitalWrite(LED2,HIGH); 
else if (z=='c')digitalWrite(LED2,LOW);
Serial.println(z);
}
   
}  
break;

Der Code ist durch die wirre Klammer-Setzung kaum lesbar

void funktion 0();

Was soll das bewirken? Das ist bestenfalls vielleicht die Deklaration einer Funktion, aber kein Aufruf. Außerdem können Funktionsnamen keine Leerzeichen enthalten.

habe ich falsch rein kopiert
auf tastendruck der counterPO++ wird um einz inkrementiert
und rufe meine ---void funktion 0();---void funktion 1()---void funktion 2() und
so weiter

counterPO++;
if( counterPO>4) // wird
counterPO = 0;

switch (counterPO)

void funktion 0();
void funktion 1();
void funktion 2();

Das ist die Deklaration einer Funktion:

void funktion_0();

Das kennst du vielleicht nicht, da die Arduino IDE dir in den meisten Fällen die Erstellung von Funktionsprototypen abnimmt. Mit Ausnahme von ein paar Dingen wie Default Parameter oder enums als Parameter.

Siehe:

Das ist der Aufruf der Funktion:

funktion_0();

Der Rückgabewert darf beim Aufruf nicht dort stehen!

:slight_smile: :slight_smile: :slight_smile:
Ich binn kein C expert sonnst würde ich nicht auf
den forum um hilfe bitten
abe die frage war ein andere?

Strukturiere das Programm nach dem EVA Prinzip (Eingabe, Verarbeitung, Ausgabe), speichere die Read Ergebnisse in Variablen (Eingabe), verwurschte ob Taster oder App, etc. in eine Variable (Verarbeitung) und schreibe das dann auf die Ausgänge (Ausgabe)

In deinem Fall wird die Eingabe der App vom Taster wieder vernichtet

Ciao Salvo1969,

ohne dir zu nahe treten zu wollen, ich verstehe dein Problem nicht ...
Vielleicht wäre es sinnvoller die Frage in einem italienischem Forum zu stellen ?

Viele Grüße

Harry

:slight_smile: ich habe. Variable. Integer in setup erstelt
Int buttonState=0.
Dann habe ich. An die variable den digitalRead(BUTTONPIN)
Zugewiesen. Das ganze ist in ein swit ch integriert
Kann ich auch. In die variable int buttonState.
Die char daten die von taster appinventor kommen
Das sind ya buchstaben wie mache i h das danke

Perche non usi il forum italiano? Arduino Forum > International > Italiano
Mi sembra sarebbe piu semplice...