Похоже, что программное обеспечение 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

Теперь попробуйте сами.

Написать отзыв

Примечание: HTML разметка не поддерживается! Используйте обычный текст.
    Плохо           Хорошо

Теги Arduino FLOAT

Новое

Радиатор алюминиевый 40х40х20 мм

Радиатор алюминиевый 40х40х20 мм

Радиатор алюминиевый без наклейки.Используется для охлаждения греющихся элементов электронной констр..

ЦАП цифро-аналоговый преобразователь I2C

ЦАП цифро-аналоговый преобразователь I2C

Цифро-аналоговый преобразователь с I2C интерфейсомИспользуется для организации аналогового выхо..

USB амперметр вольтметр тестер

USB амперметр вольтметр тестер

Этот тестер показывает напряжение и ток потребления устройства, подключенного к USB-порту компьютера..

Аналого-цифровой преобразователь I2C четырехканальный

Аналого-цифровой преобразователь I2C четырехканальный

Модуль аналого-цифрового преобразователя для подключения аналоговых датчиков и других источников сиг..

CNC шилд для Arduino NANO

CNC шилд для Arduino NANO

Шилд для Arduino NANO для управления 3D-принтером или CNC-станком.На шилде предусмотрены три пл..

Вентилятор 5В 40мм

Вентилятор 5В 40мм

Вентилятор системы охлаждения греющихся элементов электронной конструкции.Используется для обдува ра..

Вольтметр аналоговый 0 ... 20В 0,25

Вольтметр аналоговый 0 ... 20В 0,25

Аналоговый стрелочный вольтметр с классом точности 0,25Диапазон измеряемого напряжения 0 ... 20 ВПре..

Вольтметр аналоговый 0 ... 5В 0,25

Вольтметр аналоговый 0 ... 5В 0,25

Аналоговый стрелочный вольтметр с классом точности 0,25Диапазон измеряемого напряжения 0 ... 5 ВПред..