Урок Serial

Aleks_kaifat
Offline
Зарегистрирован: 19.01.2020

Здравствуйте. Изучаю уроки по ардуино . Виндовс 10 ардуино 1.8.9. Отправляю число 1 с компьютера на ардуино должен получить обратно 49. получаю 49 и 10. отправляю 2 получаю 50 и 10. Вопрос откуда берется 10 и как от нее избавится. Пробовал на мега и нано, на разных усб портах, без изменений. нормально получилось только на версии ардуино 1.0.1

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

void loop() 
{
 
while (Serial.available() == 0);
int val = Serial.read();
 Serial.println(val);
 
}

 

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

В строке 11 вместо println напишите print.

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

Самоделкин, не понял, а толку, если отправляет символы, а читает их коды?

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

ЕвгенийП пишет:

Самоделкин, не понял, а толку, если отправляет символы, а читает их коды?

Ну я ответил на вопрос "как избавиться от 10", и всё ;)

Aleks_kaifat
Offline
Зарегистрирован: 19.01.2020

От 10 не избавляется. в одну строчку пишет 4910 а раньше было в столбик.

Чтобы выдавало в десятичной я делаю такой код

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

void loop() 
{
 
while (Serial.available() == 0);
int val = Serial.read()-'0';
 Serial.print(val);
 
}

но тогда вместо 10 получаю -38 пример: если оправить 1  придёт 1-38,если оправить 2 придет 2-38.

еще раз в новой Arduino IDE 1.8.9 так получается, а старой Arduino IDE 1.0.1 что отправил то и получил без всяких десяток или минус 38,

nik182
Offline
Зарегистрирован: 04.05.2015

У меня дежавю. Вчера отвечал на этот вопрос. Неужели трудно почитать несколько тем форума по сериалам? Всё разжёвано. Всё отвечено.

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

Дело не в новой и старой иде, а в Ваших настройках. Посмотрите в правый нижний угол окна монитора в новой и в старой.

10 - это код перевода строки. Вот его Вы и читаете.

Aleks_kaifat
Offline
Зарегистрирован: 19.01.2020

ЕвгенийП Спасибо.