Float в char

Здравствуйте. Как полученное значение температуры передать в переменную типа char&

#include <OneWire.h>
#include <DallasTemperature.h>
 #define ONE_WIRE_BUS 5
 OneWire oneWire(ONE_WIRE_BUS);
 DallasTemperature sensor(&oneWire);
 
void setup(){
  Serial.begin(9600);
  sensor.begin();
  sensor.setResolution(12);
}
 
void loop(){
  float temperature;
  sensor.requestTemperatures();
  temperature = sensor.getTempCByIndex(0);

читай за dtostrf()
тока она в char * переводит.

Спасибо.
Максимальная длина получается 6 символов, знаков после запятой 2
Диапазон измеряемых температур: −55…+125 °C

      sensor.requestTemperatures();
      temp_float = sensor.getTempCByIndex(0);
      static char temp_buf[8];
      dtostrf(temp_float, 6, 2, temp_buf);
      Serial.println(temp_buf);

Тогда почему в char??? Не проще ли привести к типу int и работай с ним как хочешь ))

Мне нужно сделать пять измерений с интервалом. (для последующей отправки в смс всех 5 значений)
Так то да, проще в int, забить в массив, только теряю знаки после запятой.

Если отправлять не в градусах (25), а в десятых (250) или сотых (2500) градуса, то ничего не потеряется

5 лайков

У вас там температура су-вида контролируется с точностью до десятой доли градуса?

1 лайк

Ну да :innocent:

  float temp = -25.36;
  int temp_int_100 = temp * 100;
  float val_100 = temp_int_100 / 100.0;
  Serial.println(val_100);//-25.36

У вас там температура су-вида контролируется с точностью до десятой доли градуса?

Нет. Не нужен мне char :grinning:

1 лайк

Молодец!

Пофиг в чем хранить, а чтоб отправить, придётся в char полюбому переводить :slight_smile:

Не, в char*

Ну…это тонкости, к сути не относится, я как то на ходу в смс каждую циферку именно в char переводил)

int8_t temper[5];

SIM800L.print(F("T1="));
SIM800L.print(temper[1]);
...
...
SIM800L.print("\r\n");
SIM800L.print((char)26);

нее?)

В принципе да]

Хз, непонятно по куску кода.
Вам надо абстрагироваться от всяких print, float и прочего.
Есть ascii строка char символов, вот в неё необходимо преобразовать данные, а каким методом - дело десятое.
ЗЫ. Не в тему, вас в институте не учили на микросхемах растр символьный выводить на дисплей? Очень помогает в понимании как все работает.

Мне такого не преподавали! (Да, я знаю что не ко мне о ращение). А где за такое почитать?

Ну как же)))
ПЗУ микросхема, в ней растр шрифта, идёт массив символов, построчно по коду символа берётся строка из ПЗУ и так весь текст.

Здорово.
Вот только никогда бы не подумал, что это: “вас в институте не учили на микросхемах растр символьный выводить на дисплей”.
Нет, серьезно: ПЗУ со знакогенератором - это понятно, а “на микросхемах растр символьный выводить” - нет.

Просто бьюсь в конфуциях. :slight_smile: От смеха.

1 лайк

А ПЗУ это типа не микросхема)))?
Не будем о терминах)
А имел в виду что без всяких микроконтроллеров.