Форум программистов, компьютерный форум, киберфорум
Arduino
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 08.10.2023
Сообщений: 30

Задержка при определении температуры

02.03.2024, 14:39. Показов 1179. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Нашел в сети код для измерения температуры с помощью ардуино и ds18b20. Изначально, он был на один датчик. Я добавил еще три (допускаю, что сделал неправильно):

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#include <OneWire.h>
#include <DallasTemperature.h>
 
#define ONE_WIRE_BUS_1 2  // Пин первого датчика
#define ONE_WIRE_BUS_2 4  // Пин второго датчика
#define ONE_WIRE_BUS_3 6  // Пин третьего датчика
#define ONE_WIRE_BUS_4 8  // Пин четвертого датчика
#define term_power 12
 
OneWire oneWire1(ONE_WIRE_BUS_1);
OneWire oneWire2(ONE_WIRE_BUS_2);
OneWire oneWire3(ONE_WIRE_BUS_3);
OneWire oneWire4(ONE_WIRE_BUS_4);
DallasTemperature sensors1(&oneWire1);
DallasTemperature sensors2(&oneWire2);
DallasTemperature sensors3(&oneWire3);
DallasTemperature sensors4(&oneWire4);
 
float LDR1;
float LDR2;
float LDR3;
float LDR4;
 
void setup(void) {
  Serial.begin(9600);
  sensors1.begin();
  sensors2.begin();
  sensors3.begin();
  sensors4.begin();
  pinMode(term_power, OUTPUT);
}
 
float temperature(DallasTemperature &sensors) {
  digitalWrite(term_power, HIGH);
  delay(100);
  sensors.requestTemperatures();
  delay(500); 
  float t = float(sensors.getTempCByIndex(0));
  digitalWrite(term_power, LOW);
  delay(9400); 
  return t;
}
 
void loop(void) {
  float LDR1 = temperature(sensors1);
  float LDR2 = temperature(sensors2);
  float LDR3 = temperature(sensors3);
  float LDR4 = temperature(sensors4);
 
  Serial.print("L1"); Serial.println(LDR1, 1);
  Serial.print("L2"); Serial.println(LDR2, 1);
  Serial.print("L3"); Serial.println(LDR3, 1);
  Serial.print("L4"); Serial.println(LDR4, 1);
 
}
Питание на датчики подается через пин 12. Это сделано, чтобы они не перегревались от постоянных 5В. Датчик подключен каждый к своему пину, чтобы можно было их заменять в случае выхода из строя. Сейчас, задержка при определении температуры составляет около 40 секунд. А должна быть 10 секунд. Подскажите, как это исправить?
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
02.03.2024, 14:39
Ответы с готовыми решениями:

Почему при использовании компонента PhpExel При определении количества колонок я получаю буквенное обозначение?
Мой код require_once $_SERVER.&quot;/Classes/PHPExcel/IOFactory.php&quot;; $objPHPExcel = PHPExcel_IOFactory::load($_SERVER.&quot;/&quot;.$loadfile); ...

Error при определении функции
Задание такое: Cоставьте таблицу значений Tabl_1 функции y=2*{x}^{3}+4*sin(0.5*|x|) на интервале с шагом 0,1. , ввожу в матлабе...

Ошибка при определении макроса
Здорова! Есть код: #include &lt;iostream&gt; using std::cout; using std::endl; #include &lt;string&gt; using std::string; #include...

20
59 / 59 / 4
Регистрация: 10.06.2023
Сообщений: 949
07.03.2024, 11:35
Студворк — интернет-сервис помощи студентам
Нужно также помнить о питающем источнике и стабильности системы. Мне ни разу не удалось получить отсутствия изменения во втором знаке после зпт, даже при питании схемы от аккумулятора, в свою очередь подключенного к зарядке. Возможно причина в использовании бюджетных плат arduino. Возможно оригинальные работают стабильнее.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.03.2024, 11:35
Помогаю со студенческими работами здесь

Ошибка при определении массива
#pragma hdrstop #pragma argsused #ifdef _WIN32 #include &lt;tchar.h&gt; #else typedef char _TCHAR; #define _tmain main ...

Ошибка при определении instanceof
Добрый день. Есть следующий код: public Bag(int size, final Class cluzz){ if(cluzz instanceof Interface){ ...

Ошибка при определении структуры в C
Добрый вечер! В проекте на C есть файл *.h. Подскажите, пожалуйста, почему в последней строке возникает ошибка: ECC_KEY_STRUCT (в...

Ошибка синтаксиса при определении поля
В ComboBox1 хранятся типы данных поля В Edit1 - название поля В Form1-&gt;ComboBox1 - название таблицы string a; switch...

Ошибка при определении внешнего класса
что за ошибка java.lang.ClassCircularityError: A1. у меня два класса один загрузчик классов, второй исполнитель. app1 компилирует...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
21
Ответ Создать тему
Новые блоги и статьи
[golang] Breadth-First Search
alhaos 19.05.2026
BFS (Breadth-First Search) — это базовый алгоритм обхода графа в ширину, который поуровнево исследует все связанные вершины. Он начинает с выбранной точки и проверяет всех соседей, прежде чем. . .
[golang] Алгоритм «Хак Госпера»
alhaos 17.05.2026
Алгоритм «Хак Госпера» Хак Госпера (Gosper's Hack) — алгоритм нахождения следующего по величине числа с тем же количеством установленных бит. Придуман Биллом Госпером в 1970-х, опубликован в. . .
Рисование бинарного древа до 6-го колена на js, svg.
russiannick 17.05.2026
<svg width="335" height="240" viewBox="0 0 335 240" fill="#e5e1bb"> <style> <!]> </ style> <g id="bush"> </ g> </ svg> function fn(){ let rost;/ / высота древа let xx=165,yy=210,w=256;
FSharp: interface of module
DevAlt 16.05.2026
Интерфейс модуля F# позволяет управлять доступностью членов, содержащихся в реализации модуля. По-умолчанию все члены модуля доступны: module Foo let x = 10 let boo () = printfn "boo" . . .
Хитросплетение родственных связей пантеона греческих богов.
russiannick 14.05.2026
Однооконник, позволяющий узреть и изучить отдельных героев древней Греции. <!DOCTYPE html> <html lang="ru"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible". . .
[golang] Угол между стрелками часов
alhaos 12.05.2026
По заданным значениям часа и минуты необходимо определить значение меньшего угла между стрелками аналогового циферблата часов. import "math" func angleClock(hour int, minutes int) float64 { . . .
Debian 13: Установка Lazarus QT5
ВитГо 09.05.2026
Эта инструкция моя компиляция инструкций volvo https:/ / www. cyberforum. ru/ blogs/ 203668/ 10753. html и его же старой инструкции по установке Lazarus с gtk2. . .
Нейросеть на алгоритме "эстафета хвоста" как перспектива.
Hrethgir 06.05.2026
На десерт, когда запущу сервер. Статья тут https:/ / habr. com/ ru/ articles/ 1030914/ . Автор я сам, нейросеть только помогает в вопросах которые мне не известны - не знаю людей которые знали-бы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru