Nie działający kod(Arduino).

Nie działający kod(Arduino).
Igor Badźmierowski
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3
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:

Kopiuj
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);
}
jurek1980
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3581
1

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

Kopiuj
void Dodawanie(aLiczba, bLiczba) {

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

}

i wywołanie:

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

Igor Badźmierowski
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3
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:

Kopiuj
void Dodawanie(aLiczba, bLiczba) {

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

}

i wywołanie:

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

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

jurek1980
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3581
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.

Igor Badźmierowski
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3
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

Delor
  • Rejestracja: dni
  • Ostatnio: dni
0

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

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.