Odpověď na: nahodný výstup z Nextion display
Úvodní stránka › Fórum › Vaše projekty › Arduino › nahodný výstup z Nextion display › Odpověď na: nahodný výstup z Nextion display
Dobrý den, napadá mě, že by problém mohl být v porovnání:
heslo !=""
Jazyk C++ má totiž řetězce implementované jako objekty – vy používáte objekt String. A u nich je potíž, že nejdou jednoduše porovnávat jako primitivní datové typy. Dojde totiž k porovnání jejich refenrencí a ne jejich hodnot (aspoň myslím).
Takže u
String s1 = "A";
String s2 = "A";
myslím neplatí rovnost s1 == s2.
Vy tedy porovnáváte objekt heslo, který je typu String s prázdným řetězcem „“. Dojde k porovnání referencí (něco jako adresa v paměti). Ty dva se ve vašem případě nikdy rovnat nebudou, tedy bude podmínka heslo !=""
vždy true.
K porovnávání hodnot řetězců se používá metody equals – viz https://www.arduino.cc/en/Reference/StringEquals
Tento problém s porovnáváním řetězců tam pak máte několikrát.
Snad to pojede 🙂