Irinka
23.Декабрь.2022 15:21:46
1
Здравствуйте. Как полученное значение температуры передать в переменную типа 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 * переводит.
Irinka
23.Декабрь.2022 15:53:57
3
Спасибо.
Максимальная длина получается 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);
BOOM
23.Декабрь.2022 16:47:26
4
Тогда почему в char??? Не проще ли привести к типу int и работай с ним как хочешь ))
Irinka
23.Декабрь.2022 17:00:18
5
Мне нужно сделать пять измерений с интервалом. (для последующей отправки в смс всех 5 значений)
Так то да, проще в int, забить в массив, только теряю знаки после запятой.
v258
23.Декабрь.2022 17:04:29
6
Если отправлять не в градусах (25), а в десятых (250) или сотых (2500) градуса, то ничего не потеряется
5 лайков
У вас там температура су-вида контролируется с точностью до десятой доли градуса?
1 лайк
Irinka
23.Декабрь.2022 17:14:12
8
Ну да
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
1 лайк
andycat
23.Декабрь.2022 17:39:59
10
Пофиг в чем хранить, а чтоб отправить, придётся в char полюбому переводить
andycat
23.Декабрь.2022 17:43:14
12
BOOM:
Не, в char*
Ну…это тонкости, к сути не относится, я как то на ходу в смс каждую циферку именно в char переводил)
Irinka
23.Декабрь.2022 17:45:31
13
int8_t temper[5];
SIM800L.print(F("T1="));
SIM800L.print(temper[1]);
...
...
SIM800L.print("\r\n");
SIM800L.print((char)26);
нее?)
andycat
23.Декабрь.2022 17:50:26
15
Irinka:
нее?)
Хз, непонятно по куску кода.
Вам надо абстрагироваться от всяких print, float и прочего.
Есть ascii строка char символов, вот в неё необходимо преобразовать данные, а каким методом - дело десятое.
ЗЫ. Не в тему, вас в институте не учили на микросхемах растр символьный выводить на дисплей? Очень помогает в понимании как все работает.
BOOM
23.Декабрь.2022 17:52:03
16
Мне такого не преподавали! (Да, я знаю что не ко мне о ращение). А где за такое почитать?
andycat
23.Декабрь.2022 17:54:51
17
BOOM:
А где за такое почитать?
Ну как же)))
ПЗУ микросхема, в ней растр шрифта, идёт массив символов, построчно по коду символа берётся строка из ПЗУ и так весь текст.
andycat:
ПЗУ микросхема, в ней растр шрифта, идёт массив символов, построчно по коду символа берётся строка из ПЗУ и так весь текст.
Здорово.
Вот только никогда бы не подумал, что это: “вас в институте не учили на микросхемах растр символьный выводить на дисплей”.
Нет, серьезно: ПЗУ со знакогенератором - это понятно, а “на микросхемах растр символьный выводить” - нет.
Просто бьюсь в конфуциях. От смеха.
1 лайк
andycat
23.Декабрь.2022 18:20:20
20
А ПЗУ это типа не микросхема)))?
Не будем о терминах)
А имел в виду что без всяких микроконтроллеров.