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

Новое

Джойстик шилд для Arduino UNO MEGA

Джойстик шилд для Arduino UNO MEGA

Шилд джойстика для контроллеров Arduino UNO и MEGAМожно использовать для самодельных игр, а так же д..

Светодиодная матрица 8х8 с управляющим контроллером MAX7219

Светодиодная матрица 8х8 с управляющим контроллером MAX7219

Готовый блок светодиодной матрицы 8х8 с поддержкой каскадного включения нескольких идентичных модуле..

Динамик 30х40 мм 3 Вт 4 Ом

Динамик 30х40 мм 3 Вт 4 Ом

Миниатюрный легкий широкополосный динамик для компактных электронных устройствМаксимальная мощность ..

Гироскоп GY-50

Гироскоп GY-50

Цифровой инерциальный трёхосевой гироскоп GY-50 на MEMS микросхеме L3G4200D.Используе..

Вентилятор 12В 60мм

Вентилятор 12В 60мм

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

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

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

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

Шилд CNC для Arduino UNO

Шилд CNC для Arduino UNO

Шилд для платы контроллера Arduino UNO  для управления CNC-станком или 3D-принтером.4 разъема п..

Гайка Т8 с креплением

Гайка Т8 с креплением

Гайка с трапецеидальной трёхзаходной резьбой и отверстиями под крепление.Применяется в 3D-принтерах ..