Не удается отправить строку с arduino на обработку через hc05

Я пытаюсь отправлять и получать данные со своего ноутбука на arduino nano через Bluetooth hc05 для бортового компьютера ракеты. По некоторым причинам, которых я не знаю, я могу отправлять данные из программного обеспечения для обработки с помощью myPort.write (), но не могу отправить строку обратно из arduino обратно в обработку для целей телеметрии. В какой-то момент это работало, потом прекратилось. Я попробовал другой код из HowToMechatronics.com и все равно это не сработало. Я использую функцию Serial.println на аппаратном последовательном. Пожалуйста, помогите

В коде обработки я использую все необходимые библиотеки и функции, например serialEvent(), myPort.bufferUntil(\n), myPort.readStringUntil(‘\n’)

[1]: https://i.stack.imgur.com/V3Jqn.jpg![введите описание изображения здесь](https://i.stack.imgur.com/usvad.jpg)

, 👍1

Обсуждение

Начните с использования чего-то другого, кроме обработки, чтобы попытаться получить ваши данные. Таким образом, вы можете подтвердить, кто является виновником: настройка Arduino или код обработки., @Majenko

Я это сделал. Сначала я использовал ide arduino, установил порт на COM8(Bluetooth), и он не работал. Затем я использовал шпатлевку, тоже такую же., @Brandy

Хорошо, теперь замените свою прошивку на очень простую, которая просто печатает значение "millis()" каждую секунду., @Majenko

Он работает только на последовательном порту монитора arduino, а не на Bluetooth.Вот код, который я использовал. Void setup(){ Serial.begin(115200): } Void loop(){ float timer= millis(); Serial.println(timer); Delay(1000); }, @Brandy

Тогда, похоже, ваша проблема связана либо с оборудованием, либо с самим подключением / конфигурацией Bluetooth., @Majenko

Я удалил и hc05, и nano из схемы и установил новое соединение с разделением напряжения на макете, все тот же результат. Ноутбук может отправлять данные по Bluetooth(arduino), но arduino не может отправлять их обратно. Я также изменяю скорость передачи данных на 115200(формально 9600), используя режим AT, @Brandy

Давайте [продолжим это обсуждение в чате](https://chat.stackexchange.com/rooms/127439/discussion-between-brandy-and-majenko)., @Brandy

Извлеките HC05 из Arduino. Подключите вывод HC05 TX к выводу HC05 RX и включите его от Arduino. Попробуйте отправить данные с компьютера и посмотрите, будет ли они возвращены эхом., @Majenko

Имеет ли стоп-бит или бит четности Hc05 какое-либо отношение к передаче?, @Brandy


1 ответ


1

Обновление: Попробовав множество кодов, я был уверен, что это не проблема с программным обеспечением. Затем я удалил модуль Hc05 из схемы, и мне удалось перевести его в режим AT(это означает, что мой модуль работает нормально). Это оставляет только одну возможную проблему, то есть схему. Я использовал мультиметр для измерения напряжения между Hc05 RX и GND. У меня 1,8 В(но как?). После прослеживания соединений я выяснил, что проблема заключалась в разделении напряжения, которое я использовал для понижения 5 В до 3,3 В. Я использовал резистор 2k Ом вместо 1k и 1k вместо резистора 2k. Так вот почему я получаю напряжение около 1,8 В. Оказывается, 1,8 В слишком мало для использования вывода Hc05 rx. После исправления все работает нормально

,