Похоже, что программное обеспечение 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
Теперь попробуйте сами.
Муфта на шаговый двигатель 8x8x25мм
Данная муфта служит переходником между валами 8 мм и 8 мм. Тоесть имеет с обеих сторон отверстие диа..
59.15грн.
Управление машинкой через WiFi
Решил я недавно сделать апгрейд радиоуправляемого игрушечного джипа своего сына. Радиоуправлен..
Видео уроки Arduino
Курс уроков Arduino будет полезен любому исследователю окружающего мира ..
Датчик цвета TCS230
Датчик определения цвета основан на микросборке TCS230, которая представляет из себя матрицу фо..
114.20грн.
Джойстик двухосевой
Джойстик двухосевой с кнопкой. Имеет два аналоговых выхода для передачи данных о положении джойстика..
42.92грн.