При подключении Bluetooth, на входе проскакивает одна и та же цифра - что это может быть?
- Войдите на сайт для отправки комментариев
Втр, 04/06/2019 - 14:16
Нужно менять настройки устройства на Ардуино, для изменения и контроля текущих - использую блютуз модуль.
Скетч раз в пол секунды, передает все текущие значения настроек, строкой через зяпятую, а при получении значений меняет их в программе.
Заметил баг, что при подключении через блютуз например к телефону, блютуз-модуль шлет ардуине число "64247570"
сразу думал, что это косяк в проге, которой я общаюсь с ардуинойс телефона, но потом попробовал подключиться обычным терминалом и получил тот же результат!
Указанное значение проскакивает только 1 раз, потом в процессе работы и при отключении - все нормально.
выявил вот такой вставкой:
if (Serial.available()) { //при наличии входящих данных BluetoothAndroid = Serial.parseInt(); //записываем их в переменную Serial.println(BluetoothAndroid); /// отладка - выводим принятые значения }вот пример скетча, выдающего при подключении:
642475
7
0
int BluetoothAndroid = 1; // Данные пришедшие по Bluetooth от Android приложения. void setup() { Serial.begin(9600); // инициализация порта для обмена данными по блютуз Serial.setTimeout(100); // тайм-аут чтения данных с шины, что бы прочитать полное значение (возможно??) } void loop() { if (Serial.available()) { //при наличии входящих данных BluetoothAndroid = Serial.parseInt(); //записываем их в переменную Serial.println(BluetoothAndroid); /// отладка - выводим принятые значения } }так и не поборол проблему...
обошел, исключением данных значений при приеме
вы бы вместо Serial.parseInt(); прочитали данные с модуля посимвольно командой Serial.read() и посмотрели, что там на самом деле передается.
Вообще, читать с модуля все подряд и считать это нужными данными - путь к ошибками в программе.