Witam, mam problem, gdyż nie mogę wprowadzić parametrów do programu, gdyż program nie czeka na wpisanie przez użytkownika wartości, tylko pobiera ją od razu po wyświetleniu polecenia. Podpowiecie w którym miejscu robię błąd? Tymczasowo ominąłem program komendą delay(), ale nie zadowala mnie ta opcja, gdyż jest sprzeczne z naturalną reakcją.
Kod:
void silnik() {
//***********************Pobieranie danych od użytkownika***************************************************//
char kierunek = '0';
char sterowanie = '0';
unsigned long kroki = 0;
unsigned long predkosc = 0;
Serial.print("\n\nPodaj tryb sterowania silnika:\n1. Falowe\n2. Pełnokrokowe\n3. Półkrokowe\n");
delay(10000);
if (Serial.available() > 0)
sterowanie = (char)Serial.read();
delay(1500);
Serial.print(sterowanie);
Serial.print("\n\nPodaj kierunek obrotu:\n1. Zgodnie z ruchem wskazówek zegara\n2. Przeciwnie do ruchu wskazówek zegara\n");
delay(10000);
if (Serial.available() > 0)
kierunek = (char)Serial.read();
delay(1500);
Serial.print(kierunek);
Serial.print("\n\nPodaj opóżnienie między krokami silnika:\n");
delay(10000);
if (Serial.available() > 0)
predkosc = (Serial.readString()).toInt();
delay(1500);
Serial.print(predkosc);
Serial.print("\n\nPodaj liczbę kroków silnika:\n");
delay(10000);
if (Serial.available() > 0)
kroki = (Serial.readString().toInt());
delay(1500);
Serial.print(kroki);
}