Bluetooth přijímá jiné hodnoty, než posílám z telefonu

Nedaří se vám s projektem a nenašli jste vhodné místo, kde se zeptat? Napište sem.
Pravidla fóra
Tohle subfórum je určeno pro konzultaci ucelených nápadů, popřípadě řešení komplexnějších projektů, které opravdu není možné rozdělit na menší části.
Většinu problémů jde rozdělit na menší a ptát se na ně v konkrétních subfórech.
Odpovědět
QRocky
Příspěvky: 15
Registrován: 28 zář 2017, 16:30
Reputation: 0

Bluetooth přijímá jiné hodnoty, než posílám z telefonu

Příspěvek od QRocky » 17 kvě 2019, 12:13

Zdravím,

mám ještě jednu potíž, která se týká projektu, který jsem řešil na odkaze níže, ale tento problém je jiného charakteru, proto pro pořádek zakládám nové vlákno.

Někde v tomto kódu zřejmě dělám chybu, protože když se mobil spáruje s Arduinem a pošlu mu z aplikace nějakou hodnotu, Arduino vždy přijme zcela jinou hodnotu (mrkněte na obrázky). Nevíte, prosím, v čem je ten zádrhel?
Screenshot_2019-05-17-10-59-27.png
20190517_105938.jpg

Děkuji


int Aura = 3;
int state; // Vyctena hodnota z bluetooth
int AuraPWM;



void setup() {


pinMode(Aura, OUTPUT);

Serial.begin(9600);
}
void loop() {

if (Serial.available()>0) {
state=Serial.read(); //reading the data from the bluetooth module
Serial.println(state);
delay(1000);
analogWrite(Aura, state);
}



Serial.println(state);
delay(1000);
analogWrite(Aura, state);


}

Odkaz k minulému tématu, ale stejnému projektu
( viewtopic.php?f=37&t=1739 )

pavel1tu
Příspěvky: 747
Registrován: 26 říj 2017, 08:28
Reputation: 1
Bydliště: Trutnov
Kontaktovat uživatele:

Re: Bluetooth přijímá jiné hodnoty, než posílám z telefonu

Příspěvek od pavel1tu » 17 kvě 2019, 12:52

První co bych dal z kodu pryč je to delay() ve smyčce co vyčítáš data ze seriové linky

Kód: Vybrat vše

if (Serial.available()>0) {
state=Serial.read(); //reading the data from the bluetooth module
Serial.println(state);
// delay(1000);
// analogWrite(Aura, state);
}
Já totiž žiji pořád v domění, že pokud do seriové linky pošleš "50", přijde na druhou stranu také "50" ale po jednom znaku. Nejprve "5" pak "0".
Jestlipak se to pak nemusí nějak zpracovat ?
UNO, NANO, Mikro, PRO mini, DUE
http://pavel1tu.8u.cz/

jankop
Příspěvky: 527
Registrován: 06 zář 2017, 20:04
Reputation: 0
Bydliště: Brno
Kontaktovat uživatele:

Re: Bluetooth přijímá jiné hodnoty, než posílám z telefonu

Příspěvek od jankop » 17 kvě 2019, 13:05

Může být chybně nastavená rychlost komunikace s BT modulem nebo jeho konfigurace. Ale především Serial.read() čte jeden byte, nikoliv číslo. Tvůj terminál nejspíš odešle číslo 50 jako kódy 53d a 48d a možná přidá ještě CR+LF.
Podívej se na definici funkce Serial.parseInt(), to by asi bylo pro tvoje použití nejjednodušší.

To delay() není hezké, ale na příjem znaků by v tomto případě nemělo mít zásadní vliv.

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 1 host