Термометр для ванночки и не только... ds18b20+arduino Nano+LED4(LCD1602)

Mr.Privet
Mr.Privet аватар
Offline
Зарегистрирован: 17.11.2015

Термометр для детской ванночки

 

Итак, так как я недавно стал папой, решил собрать из того чего есть термометр для ванночки, благо есть датчики ds18b20, ардуинка нано, лсд экранчик и RGB лампочка. Питается все от кроны. Принцип работы такой: датчик помещается в ванночку, хорошо что он водонепроницаемый. На экране показывается температура, лампочка горит либо синим, когда вода холодная, либо красным, когда вода горячая, либо зеленым когда вода нормальной температуры, либо «переходным» цветом на пограничных температурах. В скетчике настраиваются эти режимы, у меня так:

 

СИНИЙ< 34<ПЕРЕХОДНОЙ(МАРИН)<36<ЗЕЛЕНЫЙ<38<ПЕРЕХОДНОЙ(ЖЕЛТЫЙ)<40<КРАСНЫЙ

 

Сначала я написал код под ЛСД 1602, но потом мне пришел 4-х 7-ми сегментный ЛЕД.

Собрал в коробочке от бака к электронной сигарете, получилось готичненько.

 

Вот ссылка на проект в циркусе (сырой код, для отладки)

https://circuits.io/circuits/2450800-termo-station/

итоговые варианты кода для ЛСД (оставил, потому что там красивый градусник) и ЛЕД будут здесь вечером

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Mr.Privet пишет:

я недавно стал папой

От души поздравляю!

Mr.Privet пишет:

кода для ЛСД

ЛСД - это серьёзно! Не травка там какая-нибудь!

Mr.Privet
Mr.Privet аватар
Offline
Зарегистрирован: 17.11.2015

Код для ЛЕД

#include <DallasTemperature.h>
#include <Wire.h>
#include <OneWire.h>
#include "TM1637.h"
#define ONE_WIRE_BUS 2
#define pin_r 11
#define pin_g 10
#define pin_b 9
#define CLK 3
#define DIO 4
#define led_bright 50
TM1637 disp(CLK,DIO);
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
float temp, p_temp;
float t_min = 34;
float t_mid1 = 36;
float t_mid2 = 38;
float t_max = 40;
unsigned long time = millis(), termo_update = millis();
void get_temp()
{
  termo_update=millis();
  sensors.requestTemperatures();
  p_temp = temp;
  temp = sensors.getTempCByIndex(0);
  }
void led()
{
  if (temp < t_min)
  {
    digitalWrite(pin_g, LOW);
    digitalWrite(pin_r, LOW);
    analogWrite(pin_b, led_bright);
  }
  if (temp >= t_min && temp < t_mid1)
  {
    digitalWrite(pin_r, LOW);
    analogWrite(pin_g, led_bright - led_bright * (t_mid1 - temp) / (t_mid1 - t_min));
    analogWrite(pin_b, led_bright * (t_mid1 - temp) / (t_mid1 - t_min));
  }
  if (temp >= t_mid1 && temp < t_mid2)
  {
    digitalWrite(pin_r, LOW);
    digitalWrite(pin_b, LOW);
    analogWrite(pin_g, led_bright);
  }
  if (temp >= t_mid2 && temp < t_max)
  {
    analogWrite(pin_r, led_bright - led_bright * (t_max - temp) / (t_max - t_mid2));
    analogWrite(pin_b, 0);
    analogWrite(pin_g, led_bright * (t_max - temp) / (t_max - t_mid2));
  }
  if (temp >= t_max)
  {
    digitalWrite(pin_g, LOW);
    digitalWrite(pin_b, LOW);
    analogWrite(pin_r, led_bright);
  }
}
void setup()
{
  sensors.begin();
  sensors.setResolution(12);
  pinMode(pin_r, OUTPUT);
  pinMode(pin_g, OUTPUT);
  pinMode(pin_b, OUTPUT);
  disp.set(BRIGHT_DARKEST);
  disp.init(D4056A);
}
void loop()
{
  if (millis() - termo_update > 250)get_temp();
  led();
  disp.display(temp);
}

 

Atomic
Offline
Зарегистрирован: 16.08.2017

Точно в схеме используется ds18b20? В коде указаны часы , короче вообще не понятно. Я хочу термометр и свечение трехкратного светодиода.подскажите как это реализовать индикатор буду использовать led.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Atomic пишет:
свечение трехкратного светодиода
А что это такое?

Atomic
Offline
Зарегистрирован: 16.08.2017

Трехцветного светодиода . ПОМОГИТЕ ПОЖАЛУЙСТА. Я хочу что бы на дисплеи отображать температуру а светодиод дублировал свои цветом температуру .Дайте скетч . А то вообще ничего не понятно. И схему подключения к Ардуино.

Atomic
Offline
Зарегистрирован: 16.08.2017

Просто в описание все как мне надо. Есть ардуино есть 18b20 lcd 1602.но нет ни схемы ни скетча. В свете вообще смотрю часы реального времени стоят.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Atomic пишет:
Дайте скетч. И схему подключения к Ардуино.

А что, ссылку из первого поста ТС нажать религия не позволяет? Там есть и скетч и схема.

Atomic
Offline
Зарегистрирован: 16.08.2017

ха если бы это был скотч. Что это там вообще такое. Как мне такое в ардуну залить там вообще не ардуиновский скетч. И к тому же код для лсд1602. Если не трудно дайте скетч под led индикатор Что бы я мог залить его в ардуину.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Atomic пишет:
ха если бы это был скотч.

Скотча там действительно нет

Atomic пишет:

Что это там вообще такое.

Скетч для Ардуино

Atomic пишет:

Как мне такое в ардуну залить

Кнопкой "Загрузить"

Atomic пишет:

там вообще не ардуиновский скетч.

А что же это? Текст на C++, setup с loop'ом на месте, файл называется "Termostation.ino" - что это?

Atomic пишет:

дайте скетч под led индикатор 

Второй раз слышу "дайте", но пока ни разу не слышал "пожалуйста". Вам здесь кто-то должен?

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

Atomic пишет:

Что бы я мог залить его в ардуину.

Боюсь, Вы не сможете его загрузить, раз Вы даже не знаете как выглядит скетч, и не можете скачать готовый с сайта.

 

Ворота
Ворота аватар
Offline
Зарегистрирован: 10.01.2016

Даже боюсь спросить, а LED индикатор с общим чем?

Mr.Privet
Mr.Privet аватар
Offline
Зарегистрирован: 17.11.2015

Atomic пишет:
ха если бы это был скотч. Что это там вообще такое. Как мне такое в ардуну залить там вообще не ардуиновский скетч. И к тому же код для лсд1602. Если не трудно дайте скетч под led индикатор Что бы я мог залить его в ардуину.

пожалуйста! http://arduino.ru/forum/proekty/termometr-dlya-vannochki-i-ne-tolko-ds18b20arduino-nanoled4lcd1602#comment-216877

иногда спойлеры можно и нужно открывать...

Схема очень простая, подключаем все как написано в define ну или меняем define на свой вкус, ну и еще питание там куда нужно. Если не знаете что как подключать смотрите примеры идущие к библеотеке.

И да, не знаю где вы там часы нашли, их там нет...

сиркуитс это такой онлайн эмулятор ардуино, там много чего нет но для отладки кода годится, скетч по моей ссылке в первом посту тоже есть.

Atomic
Offline
Зарегистрирован: 16.08.2017

Спасибо вам большое . Тм1637 это лед модуль . Понял .скажите а можно как нибудь подключить простой четырех разрядный семисегментный индикатор.Плохо что я начинающий и по беженцам так и не понял на какие подключается 18b20

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Atomic пишет:
а можно как нибудь подключить простой четырех разрядный семисегментный индикатор
Так ответьте же на вопрос из поста #10

Atomic
Offline
Зарегистрирован: 16.08.2017

что нужно ответить ? я вот вроде разобрался и собираюсь собрать правда на лсд1602 так как у меня нету  такого тм1637 а к простому я не знаю как подключиться. Правда в ссылке к коду для лсд только подключена библиотека для дисплея а вот для датчика температру ds18b20 так ничегот и нет . если не трудно помогите как добавить туда ds18b20

 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Atomic пишет:

что нужно ответить ? 

Блин. Вы уже раза три спрашивали как подключить 7-мисегментный индикатор. Вас человек спросил какой у Вас индикатор:

Ворота пишет:

LED индикатор с общим чем?

т.е. с общим анодом или общим катодом - они по-разному подключается.

Вы не понимаете вопроса? Не знаете ответа? Или играете в секретность?

Даже если кто-то захочет нарисовать Вам его подключение, без ответа на этот вопрос не сможет.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Atomic пишет:

а вот для датчика температру ds18b20 так ничегот и нет . если не трудно помогите как добавить туда ds18b20

Вы издеваетесь? В коде поста #2 этой темы первая строчка 

#include <DallasTemperature.h>

Это что по-Вашему? Не ds18b20? Почему Вы сами-то ничего не хотите посмотреть?

Mr.Privet
Mr.Privet аватар
Offline
Зарегистрирован: 17.11.2015

Atomic пишет:

что нужно ответить ? я вот вроде разобрался и собираюсь собрать правда на лсд1602 так как у меня нету  такого тм1637 а к простому я не знаю как подключиться. Правда в ссылке к коду для лсд только подключена библиотека для дисплея а вот для датчика температру ds18b20 так ничегот и нет . если не трудно помогите как добавить туда ds18b20

 


Есть замечательная вещь, называется Гугл. Я тоже не знаю как подключить обычный 4 разрядный 7 сегментный дисплей, я убивают в Гугл прям Так, по русски, узнаю что это 3641BS, потом уже гуглю что то типо 3641bs arduino sketch, нахожу чудесную статью http://codius.ru/articles/Arduino_UNO_4разрядный_7сегментный_идикатор_12_pin_3641BS_red про то как подключить этот индикатор и добавляю нужные строки в свой скетч. Чтобы понять какие строки нужные нужно иметь понимание что какая строка делает... как то так

Atomic
Offline
Зарегистрирован: 16.08.2017

Я так и делаю но еще не разобрался куда именно добавлять строку. Прошу ну подскажите пожалуйста как добавить ds18b20 .знаю что нужно добавить библиотеку она в начале скетча а потом же нужно добавить сам алгоритм работы. Если не сложно ПОМОГИТЕ добавьте в скетч с 1602 датчик 18b20

Atomic
Offline
Зарегистрирован: 16.08.2017

Тут надо соединить два кода а я еще не силен .ПОМОГИТЕ (((

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Ну, так вся работа с далласом в посте №2 полностью прописана! Какая Вам ещё помощь нужна? Вам нужно, чтобы кто-то просто написал за Вас скетч? Ну, тогда я уже давно сказал Вам что делать:

ЕвгенийП пишет:

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

 

Mr.Privet
Mr.Privet аватар
Offline
Зарегистрирован: 17.11.2015

Кстати если использовать термометр именно для ванночки ребенка можно поставить крайние диапазоны 35 и 38 градусов, то есть меньше 35 уже синий а больше 38 уже красный, то можно вполне легко ориентироваться без экрана. У меня даже была мысль прихерачить все и залить термоклеем, можно будет просто кидать в ванночку

Atomic
Offline
Зарегистрирован: 16.08.2017

Евгений П, скажите а вот вы постоянно меня отправляете что бы я за деньги решил свой вопрос .Почему так ? Неужели если вы разбираетесь сложно помочь ? Я же не прошу код написать для меня а всего лишь соединить два когда вместе а именно lcd1602 И ds18b20 и трехцветный светодиод

Atomic
Offline
Зарегистрирован: 16.08.2017

Блин у меня опять вопрос .пытаюсь залить скетч  там где скетч с лед так после проверки ошибка в чем проблема

 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Atomic пишет:
Я же не прошу код написать для меня
Вы просите именно это.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Atomic пишет:

Блин у меня опять вопрос .пытаюсь залить скетч  там где скетч с лед так после проверки ошибка в чем проблема

Сколько Вам лет?

Вы и впрямь думаете, что все знают какой именно у Вас код и какую именно компилятор Вам выдаёт ошибку?

Боюсь Вас огорчить, но пока Вы этого нам не скажете, никто этого не знает.

Mr.Privet
Mr.Privet аватар
Offline
Зарегистрирован: 17.11.2015

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

Atomic
Offline
Зарегистрирован: 16.08.2017

А что разве в начале скетча не подключены библиотеки . Может просто у меня не все библиотеки имеется в мой программе, но я кажется все скачал и добавил . Если не сложно напишите какие нужны.

Atomic
Offline
Зарегистрирован: 16.08.2017

Мне 29 честно я самоучка и пытаюсь разобраться во все это . Хочу для дочки сделать такой паказометр . Я уже решил пусть остается код для лед но его я не буду подключать соберу без него пусть светодиод отображает температуру так вот проблема я даже не могу залить.готовый код . Я не знаю какие у меня есть А каких нету библиотек . И еще я не знаю в готовом коде там где лед подключены библиотеки или нет судя по срокам в начале скeтча include стоят значит подключены. Но может их у меня нет . Я добавляю в свое ide библиотеки но не знаю таки они как надо или нет.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Atomic пишет:
так вот проблема я даже не могу залить.готовый код . Я не знаю какие у меня есть А каких нету библиотек . И еще я не знаю в готовом коде там где лед подключены библиотеки или нет судя по срокам в начале скeтча include стоят значит подключены. Но может их у меня нет . Я добавляю в свое ide библиотеки но не знаю таки они как надо или нет.

Так вот именно поэтому, именно в силу этих причин, я Вам и говорю, закажите работу в "Ищу исполнителя".

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

Ещё один рассадник изобретателей велосипедов. Термометров на Али -вагон и маленькая тележка.  Вот с жк дисплеем, 290руб

Или простой без батареек -100 руб.

 

Mr.Privet
Mr.Privet аватар
Offline
Зарегистрирован: 17.11.2015

Atomic пишет:
Мне 29 честно я самоучка и пытаюсь разобраться во все это . Хочу для дочки сделать такой паказометр . Я уже решил пусть остается код для лед но его я не буду подключать соберу без него пусть светодиод отображает температуру так вот проблема я даже не могу залить.готовый код . Я не знаю какие у меня есть А каких нету библиотек . И еще я не знаю в готовом коде там где лед подключены библиотеки или нет судя по срокам в начале скeтча include стоят значит подключены. Но может их у меня нет . Я добавляю в свое ide библиотеки но не знаю таки они как надо или нет.

Библиотеки могут быть разные. Как правило команды на разные функции на пример считывание температуры одинаковые, но могут отличаться. Мы не узнаем где у вас ошибка пока не выложите сообщение ошибки. Также можно понять где косяк по самому сообщению об ошибке -там есть номер строки. Запустите пример из библиотеки, посмотрите какие вызовы функции там используются. Если они совпадают с теми что в моем скетче проблем быть не должно.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Mr.Privet пишет:
Мы не узнаем где у вас ошибка пока не выложите сообщение ошибки
Я писал об этом ещё позавчера! Поскольку ТС до сих пор ничего не выложил, я прекратил всякие попытки - только "Ищу исполнителя". Доктор сказал "в морг".

Atomic
Offline
Зарегистрирован: 16.08.2017

Arduino: 1.6.5 (Windows XP), Плата"Arduino Nano, ATmega328"

Используем библиотеку DallasTemperature в папке: C:\Documents and Settings\User\Мои документы\Arduino\libraries\DallasTemperature (legacy)

Используем библиотеку Wire в папке: C:\Program Files\Arduino\hardware\arduino\avr\libraries\Wire

Используем библиотеку OneWire в папке: C:\Documents and Settings\User\Мои документы\Arduino\libraries\OneWire (legacy)

Используем библиотеку TM1637 в папке: C:\Documents and Settings\User\Мои документы\Arduino\libraries\TM1637 (legacy)

C:\Program Files\Arduino\hardware\tools\avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10605 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR -IC:\Program Files\Arduino\hardware\arduino\avr\cores\arduino -IC:\Program Files\Arduino\hardware\arduino\avr\variants\eightanaloginputs -IC:\Documents and Settings\User\Мои документы\Arduino\libraries\DallasTemperature -IC:\Program Files\Arduino\hardware\arduino\avr\libraries\Wire -IC:\Documents and Settings\User\Мои документы\Arduino\libraries\OneWire -IC:\Documents and Settings\User\Мои документы\Arduino\libraries\TM1637 C:\WINDOWS\Temp\build8814557866098067552.tmp\sketch_aug25a.cpp -o C:\WINDOWS\Temp\build8814557866098067552.tmp\sketch_aug25a.cpp.o

sketch_aug25a.ino:14:35: error: no matching function for call to 'DallasTemperature::DallasTemperature(OneWire*)'
sketch_aug25a.ino:14:35: note: candidates are:
In file included from sketch_aug25a.ino:1:0:
C:\Documents and Settings\User\Мои документы\Arduino\libraries\DallasTemperature/DallasTemperature.h:63:5: note: DallasTemperature::DallasTemperature(StratBase*)
     DallasTemperature(StratBase* = 0); // Strategy
     ^
C:\Documents and Settings\User\Мои документы\Arduino\libraries\DallasTemperature/DallasTemperature.h:63:5: note:   no known conversion for argument 1 from 'OneWire*' to 'StratBase*'
C:\Documents and Settings\User\Мои документы\Arduino\libraries\DallasTemperature/DallasTemperature.h:37:7: note: DallasTemperature::DallasTemperature(const DallasTemperature&)
 class DallasTemperature
       ^
C:\Documents and Settings\User\Мои документы\Arduino\libraries\DallasTemperature/DallasTemperature.h:37:7: note:   no known conversion for argument 1 from 'OneWire*' to 'const DallasTemperature&'
sketch_aug25a.ino: In function 'void get_temp()':
sketch_aug25a.ino:24:11: error: 'class DallasTemperature' has no member named 'requestTemperatures'
sketch_aug25a.ino:26:18: error: 'class DallasTemperature' has no member named 'getTempCByIndex'
sketch_aug25a.ino: In function 'void setup()':
sketch_aug25a.ino:63:17: error: no matching function for call to 'DallasTemperature::begin()'
sketch_aug25a.ino:63:17: note: candidates are:
In file included from sketch_aug25a.ino:1:0:
C:\Documents and Settings\User\Мои документы\Arduino\libraries\DallasTemperature/DallasTemperature.h:69:7: note: void DallasTemperature::begin(uint8_t)
  void begin(uint8_t);
       ^
C:\Documents and Settings\User\Мои документы\Arduino\libraries\DallasTemperature/DallasTemperature.h:69:7: note:   candidate expects 1 argument, 0 provided
C:\Documents and Settings\User\Мои документы\Arduino\libraries\DallasTemperature/DallasTemperature.h:78:7: note: void DallasTemperature::begin(NewOneWire&)
  void begin(NewOneWire&);
       ^
C:\Documents and Settings\User\Мои документы\Arduino\libraries\DallasTemperature/DallasTemperature.h:78:7: note:   candidate expects 1 argument, 0 provided
sketch_aug25a.ino:64:11: error: 'class DallasTemperature' has no member named 'setResolution'
Multiple libraries were found for "DallasTemperature.h"

 Used: C:\Documents and Settings\User\Мои документы\Arduino\libraries\DallasTemperature

 Not used: C:\Program Files\Arduino\libraries\DallasTemperature

Multiple libraries were found for "OneWire.h"

 Used: C:\Documents and Settings\User\Мои документы\Arduino\libraries\OneWire

 Not used: C:\Documents and Settings\User\Мои документы\Arduino\libraries\DallasTemperature

no matching function for call to 'DallasTemperature::DallasTemperature(OneWire*)'

Atomic
Offline
Зарегистрирован: 16.08.2017

Arduino: 1.6.5 (Windows XP), Плата"Arduino Nano, ATmega328"

Используем библиотеку DallasTemperature в папке: C:\Documents and Settings\User\Мои документы\Arduino\libraries\DallasTemperature (legacy)

Используем библиотеку Wire в папке: C:\Program Files\Arduino\hardware\arduino\avr\libraries\Wire

Используем библиотеку OneWire в папке: C:\Documents and Settings\User\Мои документы\Arduino\libraries\OneWire (legacy)

Используем библиотеку TM1637 в папке: C:\Documents and Settings\User\Мои документы\Arduino\libraries\TM1637 (legacy)

C:\Program Files\Arduino\hardware\tools\avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10605 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR -IC:\Program Files\Arduino\hardware\arduino\avr\cores\arduino -IC:\Program Files\Arduino\hardware\arduino\avr\variants\eightanaloginputs -IC:\Documents and Settings\User\Мои документы\Arduino\libraries\DallasTemperature -IC:\Program Files\Arduino\hardware\arduino\avr\libraries\Wire -IC:\Documents and Settings\User\Мои документы\Arduino\libraries\OneWire -IC:\Documents and Settings\User\Мои документы\Arduino\libraries\TM1637 C:\WINDOWS\Temp\build7247789158698200872.tmp\sketch_aug25c.cpp -o C:\WINDOWS\Temp\build7247789158698200872.tmp\sketch_aug25c.cpp.o

sketch_aug25c.ino: In function 'void get_temp()':
sketch_aug25c.ino:24:11: error: request for member 'requestTemperatures' in 'sensors', which is of non-class type 'DallasTemperature(OneWire)'
sketch_aug25c.ino:26:18: error: request for member 'getTempCByIndex' in 'sensors', which is of non-class type 'DallasTemperature(OneWire)'
sketch_aug25c.ino: In function 'void setup()':
sketch_aug25c.ino:63:11: error: request for member 'begin' in 'sensors', which is of non-class type 'DallasTemperature(OneWire)'
sketch_aug25c.ino:64:11: error: request for member 'setResolution' in 'sensors', which is of non-class type 'DallasTemperature(OneWire)'
Multiple libraries were found for "DallasTemperature.h"

 Used: C:\Documents and Settings\User\Мои документы\Arduino\libraries\DallasTemperature

 Not used: C:\Program Files\Arduino\libraries\DallasTemperature

Multiple libraries were found for "OneWire.h"

 Used: C:\Documents and Settings\User\Мои документы\Arduino\libraries\OneWire

 Not used: C:\Documents and Settings\User\Мои документы\Arduino\libraries\DallasTemperature

request for member 'requestTemperatures' in 'sensors', which is of non-class type 'DallasTemperature(OneWire)'

а вот теперь такая ошибка после изменения орфографической ошибки в скетче

 

 

 

Mr.Privet
Mr.Privet аватар
Offline
Зарегистрирован: 17.11.2015

Atomic пишет:

Arduino: 1.6.5 (Windows XP), Плата"Arduino Nano, ATmega328"

Используем библиотеку DallasTemperature в папке: C:\Documents and Settings\User\Мои документы\Arduino\libraries\DallasTemperature (legacy)

Используем библиотеку Wire в папке: C:\Program Files\Arduino\hardware\arduino\avr\libraries\Wire

Используем библиотеку OneWire в папке: C:\Documents and Settings\User\Мои документы\Arduino\libraries\OneWire (legacy)

Используем библиотеку TM1637 в папке: C:\Documents and Settings\User\Мои документы\Arduino\libraries\TM1637 (legacy)

C:\Program Files\Arduino\hardware\tools\avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10605 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR -IC:\Program Files\Arduino\hardware\arduino\avr\cores\arduino -IC:\Program Files\Arduino\hardware\arduino\avr\variants\eightanaloginputs -IC:\Documents and Settings\User\Мои документы\Arduino\libraries\DallasTemperature -IC:\Program Files\Arduino\hardware\arduino\avr\libraries\Wire -IC:\Documents and Settings\User\Мои документы\Arduino\libraries\OneWire -IC:\Documents and Settings\User\Мои документы\Arduino\libraries\TM1637 C:\WINDOWS\Temp\build7247789158698200872.tmp\sketch_aug25c.cpp -o C:\WINDOWS\Temp\build7247789158698200872.tmp\sketch_aug25c.cpp.o

sketch_aug25c.ino: In function 'void get_temp()':
sketch_aug25c.ino:24:11: error: request for member 'requestTemperatures' in 'sensors', which is of non-class type 'DallasTemperature(OneWire)'
sketch_aug25c.ino:26:18: error: request for member 'getTempCByIndex' in 'sensors', which is of non-class type 'DallasTemperature(OneWire)'
sketch_aug25c.ino: In function 'void setup()':
sketch_aug25c.ino:63:11: error: request for member 'begin' in 'sensors', which is of non-class type 'DallasTemperature(OneWire)'
sketch_aug25c.ino:64:11: error: request for member 'setResolution' in 'sensors', which is of non-class type 'DallasTemperature(OneWire)'
Multiple libraries were found for "DallasTemperature.h"

 Used: C:\Documents and Settings\User\Мои документы\Arduino\libraries\DallasTemperature

 Not used: C:\Program Files\Arduino\libraries\DallasTemperature

Multiple libraries were found for "OneWire.h"

 Used: C:\Documents and Settings\User\Мои документы\Arduino\libraries\OneWire

 Not used: C:\Documents and Settings\User\Мои документы\Arduino\libraries\DallasTemperature

request for member 'requestTemperatures' in 'sensors', which is of non-class type 'DallasTemperature(OneWire)'

а вот теперь такая ошибка после изменения орфографической ошибки в скетче

 

 

 

никаких орфографицеских ошибок в моем скетче не было. Я вот сейчас сел, загрузил скетч из 2-го поста, библеотек у меня тоже не было, добавил DallasTemperature версии 3.7.6 (первая в поиске), OneWire версии 2.3.3 (третья в поиске), и у меня все скомпилировалось. Правда у меня еще версия IDE 1.8.3

судя по логу у Вас что то кажется как раз с библеотекой OneWire, попробуйте другую. Если повезет то ЕвгенийП подскажет где ошибка.

в общем вот выкинул из скетча экран, осталась только лампочка, подправил диапазон. удачных купаний... 

#include <DallasTemperature.h>
#include <Wire.h>
#include <OneWire.h>
#define ONE_WIRE_BUS 2
#define pin_r 11
#define pin_g 10
#define pin_b 9
#define led_bright 50
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
float temp, p_temp;
float t_min = 35;
float t_mid1 = 36;
float t_mid2 = 37;
float t_max = 38;
unsigned long time = millis(), termo_update = millis();
void get_temp()
{
  termo_update=millis();
  sensors.requestTemperatures();
  p_temp = temp;
  temp = sensors.getTempCByIndex(0);
  }
void led()
{
  if (temp < t_min)
  {
    digitalWrite(pin_g, LOW);
    digitalWrite(pin_r, LOW);
    analogWrite(pin_b, led_bright);
  }
  if (temp >= t_min && temp < t_mid1)
  {
    digitalWrite(pin_r, LOW);
    analogWrite(pin_g, led_bright - led_bright * (t_mid1 - temp) / (t_mid1 - t_min));
    analogWrite(pin_b, led_bright * (t_mid1 - temp) / (t_mid1 - t_min));
  }
  if (temp >= t_mid1 && temp < t_mid2)
  {
    digitalWrite(pin_r, LOW);
    digitalWrite(pin_b, LOW);
    analogWrite(pin_g, led_bright);
  }
  if (temp >= t_mid2 && temp < t_max)
  {
    analogWrite(pin_r, led_bright - led_bright * (t_max - temp) / (t_max - t_mid2));
    analogWrite(pin_b, 0);
    analogWrite(pin_g, led_bright * (t_max - temp) / (t_max - t_mid2));
  }
  if (temp >= t_max)
  {
    digitalWrite(pin_g, LOW);
    digitalWrite(pin_b, LOW);
    analogWrite(pin_r, led_bright);
  }
}
void setup()
{
  sensors.begin();
  sensors.setResolution(12);
  pinMode(pin_r, OUTPUT);
  pinMode(pin_g, OUTPUT);
  pinMode(pin_b, OUTPUT);
}
void loop()
{
  if (millis() - termo_update > 250)get_temp();
  led();
}

 

 

Atomic
Offline
Зарегистрирован: 16.08.2017

Завтра все сделаю как вы написали . Спасибо вам .Если получиться залить отпишусь. Я так понимаю в коде потом можно легко изменить температуру ...?

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Atomic пишет:
Я так понимаю в коде потом можно легко изменить температуру ...?

Конечно, легко! С Вашими знаниями, даже не сомневайтесь! :)

Atomic
Offline
Зарегистрирован: 16.08.2017

Хорош подкалывать

bwn
Offline
Зарегистрирован: 25.08.2014

Если вы сумели задать такой вопрос :"Я так понимаю в коде потом можно легко изменить температуру ...?"
Какого ответа ожидаете? Судя, что интересует только один конкретный проект, не мучьте себя и купите готовый за 200-400рублей. С этим ведь начнуться проблемы с уборкой в корпус, влагозащищенностью, питанием и т.д. Оно вам надо?

Atomic
Offline
Зарегистрирован: 16.08.2017

Посмотрим я еще не пробовал залить код

Atomic
Offline
Зарегистрирован: 16.08.2017

скетч залил, проблема была в  библиотеке Dallastemperature . Но теперь вопрос на какой пин в этом скетчке подключается ds18b20 к ардуино ? Подскажите пожалуйста . Светодиоды к 9 10 11 .

Mr.Privet
Mr.Privet аватар
Offline
Зарегистрирован: 17.11.2015

На 2

Atomic
Offline
Зарегистрирован: 16.08.2017

Спасибо вам большое за терпение . Я уже разобрался сам понял что на второй ПИН. Зашел написать что уехал все сделал и смотрю мне уже подсказали .Спасибо огромное .И еще я даже разобрался как менять температуру под свои нужды. Скажите а теперь лсд 1602 как подключить ,хоть он не сильно и нужен но просто хочется для саморазвития.

Mr.Privet
Mr.Privet аватар
Offline
Зарегистрирован: 17.11.2015

Если хотите саморазвития гуглите дисплей, скетчи для него, смотрите как они там активируется, какие библиотеки используются итд. Как пример скетч из проекта в циркусе из начала топика

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Mr.Privet пишет:
Если хотите саморазвития гуглите дисплей ....

Похоже, Вы уже начинаете понимать марктвеновского сострадательного доктора :) (если не поняли о чём я говорю, прочитайте вот здесь главу "БЛАГОДАРНЫЙ ПУДЕЛЬ" с продолжением  - не пожалеете, да и короткая она :)

Там в конце есть хороший совет, данный умирающим врачом:

"Когда несчастный просит у вас помощи и вы сомневаетесь, к какому результату приведет ваша благотворительность, дайте волю вашим сомнениям и убейте просителя" :--)))))

Prohindeec
Offline
Зарегистрирован: 27.10.2017

Собрал все, жду диод, напечатал корпус. Как оставить один знак после запятой?