помогите с датчиками температуры
- Войдите на сайт для отправки комментариев
Чт, 29/12/2016 - 21:52
здравствуйте.
Пришли не Dallas, а 7Q-Tek.
пробую подключать, заливаю сейч этот http://arduinolab.pw/index.php/2015/12/02/termostat-na-arduino-do-5-datchikov-ds18b20/
определяет количество датчиков, но выдает значение -127С на каждом датчике.
Пробую заливать пример Tester из библиотеки Dallas Temperature.
Пишет мне в мониторе порта: найдено ноль девайсов, температуру не определяет.
В чем может быть причина? Может что датчики не Даллас?
P.S. подключал парралельно, резистор на 4.6КОм использовал, уровень знаний "новичок"
А к питанию подтягивали? Как вообще подключали, нарисуйте, а то меня Ваше "параллельно" смутило немного.
Питание 5В к средней ноге подтягиваю через резистор 4,7ком. От средней ноги же тяну сигнальный провод на ардуино А1. Все средние ноги различных датчиков соеденяю меж собой.
К другим двум ногам 5в и земля.
Как прикрепить фото не разобрался
Пожалуйста, нарисуйте схему. Иначе разговора не будет - только время терять. Не фото на котором ни хрена не видно, а нормальную схему.
у каждого датчика подтяжка стоит? то есть если датчиков 5 то уже подтяжка меньше 1к получается
у каждого датчика подтяжка стоит? то есть если датчиков 5 то уже подтяжка меньше 1к получается
А как правильно рассчитать эту подтяжку? Хочу соеденить как по схеме выше 5 датчиков.
Я понял, это как уроках физики R=R1+R2+R3+R4+R5
Или один на 4,6к ом, либо к каждому датчику , но тогда R=4.6/n, где n-количество датчиков.
http://arduino-diy.com/arduino-tsifrovoy-datchik-temperatury-DS18B20
впитывай))
http://arduino-diy.com/arduino-tsifrovoy-datchik-temperatury-DS18B20
впитывай))
Еще раз убедился, что подключаю правильно.
Но почему значения получаю -127С?? В чем может быть еще причина?
Библиотеки одинаковые для Dallas и 7Q-Tek 18b20?
понятия не имею
пробуй этот код для одного датчика
01
#include <OneWire.h>
02
03
#define dallas 3
04
05
OneWire ds (dallas);
06
07
unsigned
long
time=0;
08
boolean flag=0;
// для измерения
09
10
11
byte
data[12];
12
float
temp;
13
int
raw;
14
15
void
start_izm(){
16
ds.reset();
17
ds.write(0xCC);
18
ds.write(0x44);
19
}
20
21
void
calc_izm(){
22
ds.reset();
23
ds.write(0xCC);
24
ds.write(0xBE);
// Read Scratchpad
25
for
(
byte
i = 0; i < 9; i++) {
// we need 9 bytes
26
data[i] = ds.read ();
27
}
28
raw = (data[1] << 8) | data[0];
//=======Пересчитываем в температуру
29
temp = (
float
)raw / 16.0;
30
}
31
32
void
izm_temp(){
33
if
(flag){
34
start_izm();
35
time=millis();
36
flag=0;
37
}
38
if
(flag && (millis()-time)>750){
39
calc_izm();
40
flag=1;
41
}
42
}
43
44
45
void
setup
() {
46
Serial
.begin (9600);
47
izm_temp();
48
}
49
50
void
loop
(){
51
izm_temp();
// измеряем температуру
52
53
if
(flag){
54
Serial
.print (
"Temp "
);
55
Serial
.print (temp);
56
Serial
.flush();
//очищаем значения порта
57
}
58
}
Ну, а скетч где? Тот, что Вы запускали, а не пример из библиотеки?
По одному нормально работают? Проверяли?
http://arduinolab.pw/index.php/2015/12/02/termostat-na-arduino-do-5-datc...
пробовал этот скетч. меняю количество датчиков-программа это замечает. начинает покаказывать количество, но на каждом по -127С.
С одним датчиком тоже самое
понятия не имею
пробуй этот код для одного датчика
01
#include <OneWire.h>
02
03
#define dallas 3
04
05
OneWire ds (dallas);
06
07
unsigned
long
time=0;
08
boolean flag=0;
// для измерения
09
10
11
byte
data[12];
12
float
temp;
13
int
raw;
14
15
void
start_izm(){
16
ds.reset();
17
ds.write(0xCC);
18
ds.write(0x44);
19
}
20
21
void
calc_izm(){
22
ds.reset();
23
ds.write(0xCC);
24
ds.write(0xBE);
// Read Scratchpad
25
for
(
byte
i = 0; i < 9; i++) {
// we need 9 bytes
26
data[i] = ds.read ();
27
}
28
raw = (data[1] << 8) | data[0];
//=======Пересчитываем в температуру
29
temp = (
float
)raw / 16.0;
30
}
31
32
void
izm_temp(){
33
if
(flag){
34
start_izm();
35
time=millis();
36
flag=0;
37
}
38
if
(flag && (millis()-time)>750){
39
calc_izm();
40
flag=1;
41
}
42
}
43
44
45
void
setup
() {
46
Serial
.begin (9600);
47
izm_temp();
48
}
49
50
void
loop
(){
51
izm_temp();
// измеряем температуру
52
53
if
(flag){
54
Serial
.print (
"Temp "
);
55
Serial
.print (temp);
56
Serial
.flush();
//очищаем значения порта
57
}
58
}
в мониторе порта (9600) пусто
http://arduinolab.pw/index.php/2015/12/02/termostat-na-arduino-do-5-datchikov-ds18b20/
пробовал этот скетч.
Русский - родной язык?. Вас просят дать тот самый скетч, который работает у Вас. Тот самый, а не что-то с сайта, где другие пины назначены и не надо мне говорить "меняю ..." - ничего не надо менять. Сделайте скетч на 1 датчик, и дайте мне именно его ничего не меняя, а также приведите точно (копипастом) что он печатает в сериал.
в коде что дал в 38 строке
1
if
(!flag && (millis()-time)>750){
Запускаете Arduino IDE. Файл-Примеры-OneWire, выбираем пример, подключаем к пинам указанным в нем, загружаем, смотрим. Если что то не работает пишем сюда.
наивный))) что еще за тебе ардуина должна делать?
А Вы думали что будет так? https://www.youtube.com/watch?v=3wZ98eAodkY
Что-то подобное я и подозревал, когда требовал от Вас "тот самый скетч" и схему. Даже про пины Вам писал, помните
... где другие пины назначены ...
То, что Вы ссылались на сайт - не вариант. Ну не может в голове уложиться. что челолвек взял скетч с сайта и пины там не поменял - не может. Потому я и просил "скетч из IDE", скопипастили бы его сюда из IDE - Вам бы сразу про пины сказали. И чего Вы упирались? Показали бы скетч сразу, давно бы проблемы не было.
Надеюсь, впредь Вас не придётся упрашивать, а то впечатление, что это мне надо, а не Вам.
С Праздником!
Подключаете к A1 - так и пишите A1.
И не юзайте всякие 15, потом где-нибудь да и попадётесь на этом.....
(На Меге какой-нибудь.....)
Всех с праздником.
Никому не обижаться только. Я очень хочу чтобы вы мне помогли...
Просто праздники и хлопоты, к компьютеру попадаю на пару минут. После праздников все выложу и скечи и сериалы.
Спасибо, за внимание
P.S. Про пины я немножко пошутил. Просто иногда забываю их менять....
С прошедшими и наступающими, друзья.
Вот неспеша поковырялся поосновательней и все получилось.
Термостат заработал. Нужно было адреса датчиков прописывать вручную (в комментариях автора скетча указано).
Нужно допиливать скетч и приступать к монтажу.
А вот здесь нужна помощь профессионалов. Какое сечение провода должно быть и максимальная длина провода до датчика.
Думаю использовать для этих целей витую пару ( 8пар по-моему). Длина провода до датчика 20-25м.
Можно так?
т.е я хочу собрать все в монтажной коробке, а от коробки тянуть витую пару до датчиков DS18b20
датчиков будет 5-6шт.
Витую пару хочу использовать, потому что этот провод проложен уже у меня почти в каждую комнату для интернета. Под интернет, насколько я понял, задействовано лишь 4 проводка, а 4не используются. Вот на них то я глаз и положил.
Тяните спокойно, для кошерности можете в самом конце электролит на питание подвесить, хотя и не обязательно.