Nie działający kod(Arduino).

0

Hej robię kalkulator.Wszystko idzie dobrze tylko funkcja switch mi nie działa(jestem początkujący więc przepraszam za głupie błędy).Ponizej daje kod:

int bLiczba;
String aTekst;
String bTekst;
int wyborLiczba;
String wyborTekst;
int wynik;



void setup() {
  // put your setup code here, to run once:
Serial.begin(9600);
Serial.println("Wpisz a");
delay(3000);
Serial.println();
Serial.println("wpisz b:");
delay(3000);
Serial.println();
Serial.println("wybierz funkcje");
delay(3000);


}


void loop() {
  // put your main code here, to run repeatedly:
if(Serial.available() > 0) { //Czy Arduino odebrało dane
  
aTekst = Serial.readStringUntil('\n');
aLiczba= aTekst.toInt();
}
if(Serial.available() > 0) { //Czy Arduino odebrało dane
  
bTekst = Serial.readStringUntil('\n');
bLiczba= bTekst.toInt();

wyborTekst=Serial.readStringUntil('\n');
wyborLiczba=wyborTekst.toInt();//jeśli przycsk jakiś wciśnięty to wybór = 1 itd.

 switch(wyborLiczba)
 {
case 1:
Dodawanie();
break;
case 2:
Odejmowanie();
break;
case 3:
Mnozenie();
break;
case 4:
Dzielenie();
break;
default:
Serial.println("źle podałeś");
 }
 }
 }


void Dodawanie(){

wynik = aLiczba + bLiczba;
Serial.println(wynik);

}
void Odejmowanie(){

wynik = aLiczba - bLiczba;
Serial.println(wynik);
}

void Mnozenie(){

wynik = aLiczba * bLiczba;
Serial.println(wynik);
}
void Dzielenie(){

wynik = aLiczba / bLiczba;
Serial.println(wynik);
}
1

Spróbuj przekazywać wartości do funkcji, bo tak to chyba zmienne aLiczba i bLiczba nie będą widoczne w funcji:

void Dodawanie(aLiczba, bLiczba) {

  wynik = aLiczba + bLiczba;
  Serial.println(wynik);

}

i wywołanie:

switch (wyborLiczba)
    {
      case 1:
        Dodawanie(aLiczba, bLiczba);
        break;
      default:
        Serial.println("źle podałeś");
    }

0
jurek1980 napisał(a):

Spróbuj przekazywać wartości do funkcji, bo tak to chyba zmienne aLiczba i bLiczba nie będą widoczne w funcji:

void Dodawanie(aLiczba, bLiczba) {

  wynik = aLiczba + bLiczba;
  Serial.println(wynik);

}

i wywołanie:

switch (wyborLiczba)
    {
      case 1:
        Dodawanie(aLiczba, bLiczba);
        break;
      default:
        Serial.println("źle podałeś");
    }

Ja to zrobię pojawia się błąd.

0

A jaki masz błąd dokładnie. Jak programujesz w Arduino Ide to korzystaj z dobroci tego narzędzia. Masz możliwość po pierwsze automatycznego formatowania kodu Narzędzia->automatyczne formatowanie. Po drugie możesz nam wkleić skopiowany błąd po próbie kompilacji.

0
jurek1980 napisał(a):

A jaki masz błąd dokładnie. Jak programujesz w Arduino Ide to korzystaj z dobroci tego narzędzia. Masz możliwość po pierwsze automatycznego formatowania kodu Narzędzia->automatyczne formatowanie. Po drugie możesz nam wkleić skopiowany błąd po próbie kompilacji.

variable or field 'Dodawanie' declared void

0

Przenieś definicje funkcji Dodawanie(), Odejmowanie(), ... przed definicję funkcji loop().

1 użytkowników online, w tym zalogowanych: 0, gości: 1