Dobrý den
Mám problém, dělám pokus s arduinem a posílám celá čísla přes sériový monitor do arduina MEGA 2560. V programu s ním chci matematicky pracovat, ale nedaří se mi data přijmout v potřebném typu. zkoušel jsem to přes 2 příkazy.
1)Serial.parseFloat()
To však funguje jen do 6 řádu a pak z toho lezou změněná čísla.
2)Serial.readString()
Toto mi sice příjme i vrátí cokoliv v nezměněné podobě, ale matematicky s tím nejde pracovat.
Výstupní datový typ bych potřeboval float, nebo alespoň long.
Jsem teda začátečník, tak se omlouvám za možná triviální otázku.
odeslání a příjimání čísla seriový monitor
Re: odeslání a příjimání čísla seriový monitor
Kód: Vybrat vše
buff = Serial.readString();
long n1 = (long) buff;
long n2 = atol(buff);
long n3 = atof(buff);
Re: odeslání a příjimání čísla seriový monitor
Float je nepřesný formát a dochází u něj někdy i k nečekanému zaokrouhlování.
Funkce Serial.parseInt() dokáže přijímat i long velikost čísla.
Funkce Serial.parseInt() dokáže přijímat i long velikost čísla.
Kód: Vybrat vše
void setup()
{
Serial.begin(9600);
}
void loop()
{
if (Serial.available())
{
unsigned long cislo = Serial.parseInt();
Serial.println(cislo);
}
}
Re: odeslání a příjimání čísla seriový monitor
Čísla ze stringu nebo textového pole lze dostat celkem jednoduše
http://www.cplusplus.com/reference/string/stoi/
Kdo je online
Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 2 hosti