Вывод 2х значного числа в сериал порт
- Войдите на сайт для отправки комментариев
Всем здрасте! Сразу к делу. необходимо выводит через serial.print число которое условно по нажатию кнопки увеличивается на 1, но выводить его надо в виде 01 !!!! бьюсь уже неделю, и всё ни как не получается.
Суть такова, что есть несколько датчиков, которые в сеть rs-485 выкидывают нужную мне информацию, а мастер её обрабатывает и ведёт подсчет, и каждые 5сек в сериал выводи информацию сколько сигналов было с датчика. и выглядит так что изначально отображается 00 (первый 0 это сигнал с 1 датчика, второй 0, это соответственно 2 датчик) при появлении сигнала, информация отображается что то типа 01 или 15, в зависимости от количиства сигналов, но мне необходимо чтоб они отображали значения в таком виде 0000, где первые два 0 это 1 датчик, и приёме с него сигнало в сериал должно выходить значение 0100, ну и соответственно если пришло 15 сигналов на 1 датчик и 7 сигналов на второй то должно выглядить как 1507, но всё что я не делала у меня получается 157
бьюсь уже неделю, и всё ни как не получается.
Шишки и синяки (Ваш нынешний код с пояснениями "что не так") в студию!
Давайте подумаем...
Вопрос #1: При каком значении переменной она начинает выводится в два знакоместа, а не в одно?
не совсем понял что имеется в виду, но при значении свыше 9
Ну это просто праздник какой-то сегодня прямо :)
Т.е., иными словами, если значение переменной не выше 9, то перед числом нужно вывести '0'. Так?
Ну, а Вам ведь надо как я понял уже с 1 выводить в два знакоместа (Вы писали "1 но выводить его надо в виде 01").
Так как Вы это путались сделать? Вы ж неделю бъётесь, так покажите свои попытки.
Ну, а Вам ведь надо как я понял уже с 1 выводить в два знакоместа (Вы писали "1 но выводить его надо в виде 01").
Все верно надо выводить сразу 01. попыток было много, но всё делалось в одном скетче и менялось по ходу пьесы
Понятно. Ну. а раз мы не увидим ошибок, то и исправлять нечего. Вы же здесь не первый день, и знаете. что в этом разделе помогают поправить то, что автор сам делал. Делают за автора в другом разделе.
Так мне не надо чтоб сделали за меня, мне надо чтоб подсказали как сделать чтоб отобразалось 01 и тд. Ну а если Вы принципиальны, то ошибка в том что отображается 1 а не 01
Вы умеете пользоваться printf?
Если умеете, то вот пример как её подключить. В этом примере она. кстати. печатает так, как Вам надо.
Спасибо огромное! этим printf никогда не пользовался, сейчас вроде выдаёт как надо, есть только пару уточняющих вопросов, есть ли перенос на новую строку что то типо serial.println??? или это надо прописать ещё одной строкой??? и последний вопрос, процессинг будет это воспринимать также как serial.print??
Это жесть. Выбрать самый громоздкий вариант из предложенных - нужно уметь.
Это жесть. Выбрать самый громоздкий вариант из предложенных - нужно уметь.
если подскажите покороче, то цены вам не будет))) я вот сейчас пытаюсь всё это залить на нано и понимаю что мало остаётся)))
Т.е. сообщения #5 и #6 вы не читали?
читал, но суть такова что процессинг начинает по другому воспринимать данный вид, 90% нормально выдаёт инфу, но иногда лажает и все немного криво отображается, а потом при следующем обновлении инфы возвращается в норму, это как бы не критично, и в добавок будет около 50 датчиков и под каждый прописывать данную конструкцию...)) понимаю что может быть как то можно это укоротить, но я не силён в программировании
... и в добавок будет около 50 датчиков и под каждый прописывать данную конструкцию...)) понимаю что может быть как то можно это укоротить, но я не силён в программировании
Чтобы работать с 50-ю датчиками Вам следует освоить такие инструменты как массивы и циклы. Тогда прописывать любую конструкцию нужно будет один раз в одном месте. Заодно и вероятность ошибки снизится в 50 раз.
Конечно ест.
printf("lala\nNovaya stroka");
А вообще гуглите, примеров по printf полно. Это одна из наиьолее часто используемых фунций в С