Прием данных на Arduino Nano, HC-06, SoftwareSerial, тип данных.

mexme
Offline
Зарегистрирован: 18.10.2021

Добрый день. Пытаюсь принять данные на плату Nano через HC-06, отправка осуществляется с Андройда. Для андройда нашел проект приложения, который редактирую в андройд студио. Сейчас оно выполняет функцию отправки состояний кнопок. Осуществляется это посредством отправки разных символов. Например символ "А" - кнопка в исходном, символ "B" - кнопка в нажатом. Цель мероприятия отправлять данные сенсора. Для этого я отредактирую, буду пытаться, практиковаться. В данный момент затык в том, что долетает только один символ, мне хотелось бы отправлять 2 или 3 знака, а приходит только один. Например задаю 222, прилетает 2, задаю 33, прилетает 3, задаю AAA, прилетает A. Вопрос мой в следующем.

Нет ли проблем со стороны Ардуинки? Для приема используется следующий код:

ЗЫ: Мониторю в мониторе порта. Скорости все испробовал, читабельно только 9600. Пытался принимать в Int, Byte, Char - результат тот же.

#include <SoftwareSerial.h>
SoftwareSerial mySerial(10, 11); // RX, TX

byte input; // Новая переменная входящий поток

void setup() 
{
Serial.begin(9600); // Старт порта на скорости  
mySerial.begin(9600);
}

void loop()
{
if (mySerial.available())
input = mySerial.read();;
Serial.write(input);
Serial.println();
}

 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

mexme пишет:
задаю 222, прилетает 2, задаю 33, прилетает 3, задаю AAA, прилетает A.

Или Вы выложили не тот код, или пудрите всем мозги иным способом. С этим кодом должно быть так:

Один раз посылаете "2", печатается

2
2
2
2
...

и до бесконечности.

mexme
Offline
Зарегистрирован: 18.10.2021

Да, да , все правильно, бежит столбиком, просто пытаюсь отправить двузначные или трехзначные числа, а проходит только один символ, то есть я ожидаю увидеть:

22

22

22

или 

111

111

111

111, а получается только 

2

2

2

или 

1

1

1

1

, то есть не проходит больше одного символа

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

mexme пишет:
я ожидаю увидеть:

22

Интересный Вы человек. А почему Вы не ожидаете увидеть там текст евангелия от Матфея?

Вы же сами, после вывода КАЖДОГО символа, выводите перевод строки

Serial.write(input);
Serial.println();

так с какого ж бодуна Вы ждёте, что его там не будет, а символы будут идти подряд? Вот с какого?

Что выводите, то и получаете.

mexme
Offline
Зарегистрирован: 18.10.2021

Спасибо вам большое, милый человек, что ткнули носом новичка в его ошибки, цель достигнута. Благодарю.

Kakmyc
Offline
Зарегистрирован: 15.01.2018

Предвижу следующий вопрос.
"Сравниваю то, что пришло со значением "333" или "ААА" и всегда получаю несоответствие.
Что я делаю не так ?"

Ответ: всё