Похоже, что программное обеспечение Arduino не особо поддерживает отображение значений переменных с плавающей точкой. Конечно, здесь функция sprintf () не работает. Однако есть полезная функция с названием dtostrf (), которая преобразует данные с плавающей точкой в массив символов, поэтому они могут быть легко напечатаны.

Формат функции следующий
dtostrf(floatvar, StringLengthIncDecimalPoint, numVarsAfterDecimal, charbuf);
где:
floatvar - преобразуемая переменная типа float;
StringLengthIncDecimalPoint - длина получаемого символьного значения;
numVarsAfterDecimal - количество символов после запятой;
charbuf - символьный массив для сохранения результата преобразования
Следующий пример программы поможет понять что к чему
static float f_val = 123.6794;
static char outstr[15];
void setup() {
dtostrf(f_val,7, 3, outstr);
Serial.begin(9600);
Serial.println(outstr);
}
void loop(){
}
В результате работы скетча получим
123.679
Имеем 7 символов вдлину, с тремя цифрами после запятой.
При этом, если бы входное значение было например 1.6794, что бы мы получили? Длина строчки символов осталась бы равной 7-ми, с тремя цифрами после запятой, и это значит что функция вставит 2 пробела сначала строки.
1.679
Теперь попробуйте сами.
Arduino SIM800 GPRS HTTP GET запрос
Привет, друзья! Мы с каждым разом разбираем все более интересные применения GSM-модуля SIM800. В это..
Монтажный шилд для NodeMcu ESP8266
Монтажный модуль расширения для WiFi контроллера NodeMcu ESP8266Позволяет выполнять монтаж прое..
90.58грн.
Модуль реле одноканальный 5В 10А
Одноканальный модуль реле для подключения напрямую к дискретному выходу контроллера. Светодиодная ин..
43.11грн.
Модуль питания повышающий 2...24В/5...28В 2А
Модуль повышающий напряжение постоянного тока с 2 ... 24 В до 5 ... 28 ВНапряжение на выходе ре..
36.78грн.
Датчик вращения енкодер KY-040
Енкодер вращения KY-040 - это поворотный датчик, который индицирует степень поворота оси и в каком н..
37.93грн.




