Извлечь число
- Войдите на сайт для отправки комментариев
Пнд, 06/02/2017 - 21:13
Прошу сильно не пинать в программирование не селен.
Вообшем имеется программа которая шлет в UART слово типа AB0123456789;
Как я понимаю АВ-идентификатор, 0123456789-переменная которую надо вытащить умножить на 4 и отправить на LCD, ;-конец слова.
Слово я получяю а вот как вытянуть число не могу понять
#include <LiquidCrystal.h>
char ind;
long out;
LiquidCrystal lcd(12, 13, 7, 6, 5, 4);
void setup() {
lcd.begin(16, 1);
Serial.begin(9600);
}
void loop() {
while(Serial.available() > 0) {
ind=Serial.read();
out=atoi(ind);
lcd.print(out);
}
}
Сначала пропускаете "AB" и одновременно обнуляете out, заем в цикле out = out*10 + ind, пока не встретится ";".
Сначала пропускаете "AB"
Вот с этого места по подробнее пожалуйста. Я разобрался как убрать ";" в конце функцией replace() , а как убрать "AB"?
Если кроме этого ничего не принимаете, то можно цикл while заменить на:
if (Serial.available() > 0) out = Serial.parseInt();https://www.arduino.cc/en/Serial/ParseInt
Всем откликнувшимся спасибо. задачу решил substring() c последующим toInt();