Страница 1 из 14

Термостат на AVR (arduino)

Добавлено: Пт окт 26, 2018 10:19:35
Attenyuator
Здравствуйте. Помогите пожалуйста. В холодильнике накрылся термостат. решил сделать его на arduino. С ардуино знаком мало. С помощью интернета накидал скетч для датчика температуры DS18B20 и экрана LCD1602 - выводит на него температуру.
Вот скетч:
Спойлер#include <Wire.h> // Подключаем библиотеку Wire
#include <LiquidCrystal.h>
#include <DallasTemperature.h> // Подключаем библиотеку DallasTempature
#define DS18B20 9 // Указываем, к какому выводу подключена DQ

byte simvol[8] = {B11100,B10100,B11100,B00000,B00000,B00000,B00000,B00000,}; // Символ градуса

LiquidCrystal lcd(7, 6, 5, 4, 3, 2);
OneWire oneWire(DS18B20);
DallasTemperature sensors(&oneWire);



void setup()
{
sensors.begin(); // Запуск библиотеки, по умолчанию 9 бит
lcd.begin(16, 2);
lcd.setCursor(2,0); // Устанавливаем курсор на 1 строку, ячейка 2
lcd.print("TEMP"); // Выводим текст
}
void loop()
{
lcd.createChar(1, simvol); // Создаем символ под номером 1
sensors.requestTemperatures(); // Считываем показания температуры
lcd.setCursor(7,0); // Устанавливаем курсор на 1 строку, ячейка 7
lcd.print(sensors.getTempCByIndex(0)); // Выводим показания температуры
lcd.setCursor(12,0); // Устанавливаем курсор на 1 строку, ячейка 12
lcd.print("\1"); // Выводим символ градуса
lcd.setCursor(13,0); // Устанавливаем курсор на 1 строку, ячейка 13
lcd.print("C"); // Выводим текст
}
Помогите пожалуйста дописать скетч, что бы при достижении -3 градусов включался транзистор подключенный к какому ни будь пину, и при достижении -5 градусов выключался.

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

Re: Термостат на AVR (arduino)

Добавлено: Пт окт 26, 2018 11:45:41
АСУ
Что за ардуина? Схему нарисуешь своего девайса? Индикатор имеет кириллицу (фамилия его какая)?

Re: Термостат на AVR (arduino)

Добавлено: Пт окт 26, 2018 12:54:31
Attenyuator
Дисплей от winstar с кириллицей. Arduino nano с atmega 328. Опишу схему, так как не могу ее нарисовать.
К цифровым портам d7, d6, d5, d4, d3, d2 подключен дисплей, к цифровому порту d9 подключен датчик DS18B20. Нужно, например к цифровому порту d1 подключить транзистор, что бы работал как ключ - вкл. или выкл. При достижении температуры -3 градуса включался транзистор, а при температуре -5 выключался. На транзистор я подключу реле, а реле будет давать команду включаться или отключатся компрессору холодильника. Сейчас холодильник уже несколько дней работает без перерыва и отдыха. Я не могу понять как задать это условие в Ардуино, не могу сообразить ни как.

Re: Термостат на AVR (arduino)

Добавлено: Пт окт 26, 2018 13:42:29
BOB51
Хотя-бы фотки того дисплея (снизу и сверху) чтоб почитать надписи.
А заодно и релюшки.
За адуринку понятно, единственно надеюсь, что 5-вольтовая версия - вроде 3 вольтовых нанок пока не встречал.
И предположить "от обратного" - подключение дисплея согласно правил для библиотеки LiquidCrystal (схему по конструктору класса отрисовать) сделано верно.
8)

Re: Термостат на AVR (arduino)

Добавлено: Пт окт 26, 2018 14:02:24
АСУ
[uquote="Attenyuator",url="/forum/viewtopic.php?p=3491843#p3491843"][/uquote]
Я твою программу не смотрел (она мне без надобности), так как пишу проги на другом языке… зачем тебе вообще дисплей? Раз уставки по температуре будут не измены…ладно, хорошо дело твоё… ноги МК к дисплею подключать по своему усмотрению, или есть какие-то пожелания?

Добавлено after 10 minutes 21 second:
[uquote="BOB51",url="/forum/viewtopic.php?p=3491876#p3491876"]Хотя-бы фотки того дисплея (снизу и сверху) чтоб почитать надписи.[/uquote]
Такой наверное... https://ekits.ru/catalog/indication/lcd ... a_yyh_ctk/

Re: Термостат на AVR (arduino)

Добавлено: Пт окт 26, 2018 16:44:49
Attenyuator
Дисплей вот такой: https://www.chipdip.ru/product/mt-16s2h-2ylg.

Re: Термостат на AVR (arduino)

Добавлено: Пт окт 26, 2018 17:13:37
АСУ
Моё сообщение прочитал про ноги дисплея? Да ещё кстати d1 это какая нога? У ардуины такого обозначения нет. Что касается дисплея, так это МЕЛТ а не WINSTAR :wink:

Re: Термостат на AVR (arduino)

Добавлено: Пт окт 26, 2018 17:30:35
Attenyuator
На счёт дисплея извиняюсь, думал они все одинаковые. И действительно d1 не существует. Можно использовать d8.

Re: Термостат на AVR (arduino)

Добавлено: Пт окт 26, 2018 17:49:07
АСУ
Задам ещё раз...
ноги МК к дисплею подключать по своему усмотрению, или есть какие-то пожелания?

Re: Термостат на AVR (arduino)

Добавлено: Пт окт 26, 2018 17:53:09
Attenyuator
На ваше усмотрение

Re: Термостат на AVR (arduino)

Добавлено: Пт окт 26, 2018 18:15:37
АСУ
d2 – RS; d3 – E; GND - R/W; d4 – DB4; d5 – DB5; d6 – DB6; d7 – DB7. Порт датчика d9 должен быть подтянут резистором 4,7 кОм к плюсу питания.
Неисправности выводимые на дисплей:
Error 1: Нет высокого уровня на входе порта датчика.
Error 2: Нет импульса присутствия датчика – нет датчика.
Error 3: Не восстановлен высокий уровня на входе порта датчика.
Error 4: Ошибка чтения датчика.
В архиве прошивка.
Attenyuator.zip
(2.48 КБ) 525 скачиваний

Re: Термостат на AVR (arduino)

Добавлено: Пт окт 26, 2018 19:56:29
Attenyuator
Спасибо вам, буду тестировать

Re: Термостат на AVR (arduino)

Добавлено: Пт окт 26, 2018 20:17:08
АСУ
Ты написал d8 (РВ0), его и задействовал.

Re: Термостат на AVR (arduino)

Добавлено: Сб окт 27, 2018 09:49:58
Attenyuator
Не могли бы вы мне скомпилировать прошивку под другие температуры? А то мой холодильник до -5 очень долго работает. Или поделитесь оригиналом. Температуры нужны от -2 включалось и при -4 отключалось. И сделайте ещё что бы при -1 включалось и при -3 отключалось. Две прошивки. До этого измерял температуру dht22. Так у них разница в 2 градуса. Спасибо за помощь.

Re: Термостат на AVR (arduino)

Добавлено: Сб окт 27, 2018 10:48:25
BOB51
DHT22 хорош как датчик влажности (по сравнению с DHT11).
Температура для термостатов/холодильников - это наиболее приемлемо у DS18B20.
Для "принудустановки" ...
Надо или режим смены значений с автономной клавиатуры самого проекта делать или загрузку значений через терминалку ПК в режиме диалога...
:roll:

Re: Термостат на AVR (arduino)

Добавлено: Сб окт 27, 2018 12:05:43
Attenyuator
С холодильником просто проблема, он старый и я думаю фреон где-то сочится. Раньше нормально было а сейчас нет. Мне на месяц два надо. Потом продукты сьедим, денег подкопим и новый будем покупать. Пока так как нибудь. Сам ещё не освоил программирование.

Re: Термостат на AVR (arduino)

Добавлено: Сб окт 27, 2018 12:50:23
BOB51
В принципе большой минус - то больше в морозилке.
Ежли датчик не в испарителе, а в камере там где-то возле нуля.
Погляжу вражьи библиотеки - ежли на подопытной конструкции заработает - скину готовенькое с разъяснениями.
:roll:

Re: Термостат на AVR (arduino)

Добавлено: Сб окт 27, 2018 13:52:27
АСУ
[uquote="Attenyuator",url="/forum/viewtopic.php?p=3492462#p3492462"]Не могли бы вы мне скомпилировать прошивку под другие температуры?.[/uquote]
Я был уверен, что ты обратишься вновь для доработки устройства. Так как такое ТЗ говорит о непонимании работы холодильника. Мой исходник тебе не поможет, так как я пишу на очень редком языке Algorithm Builder.
В архиве прошивка с возможностью изменения уставок включения и отключения. Диапазон изменения уставки включения: от минус 1 до минус 9. Диапазон изменения уставки отключения: от минус 2 до минус 10.
При первом старте, уставка включения имеет значение минус 1. А уставка отключения минус 2.
Установленные уставки теперь видны на основном экране дисплея. ON – Включение; OFF – Отключение.

Вход в режим изменения уставок осуществляется нажатием кнопки «Set». Изменение уставок осуществляется нажатием кнопки «Select». Уставка при этом увеличивается на 1 градус. При достижении максимального значения, следующим нажатием сбрасывается на минимум… Запоминание уставки и переход к дальнейшему действию осуществляется нажатием кнопки «Set».
Значение уставки включения должно быть меньше по цифровому значению уставки отключения. После выхода из режима уставок, производится проверка установленных значений уставок, и если описанное выше условие не соблюдено, то уставка отключения примет автоматически значение большее на один градус от уставки включения.

Кнопка «Set» подключена к выводу d10.
Кнопка «Select» подключена к выводу d11.

Кнопки коммутируют общую шину (GND) на выводы МК.
Attenyuator_1a.zip
(3.41 КБ) 481 скачивание

Re: Термостат на AVR (arduino)

Добавлено: Сб окт 27, 2018 15:32:35
Attenyuator
Спасибо. А насчёт того как работает холодильник, думал что понимаю, теперь понимаю что понимаю не правильно.

Re: Термостат на AVR (arduino)

Добавлено: Сб окт 27, 2018 15:38:57
BOB51
Боюсь, что придется таки ждать разборов с библиотеками...
Ежли топикстартер имеет в наличии лишь arduino IDE и покупную ардуину нану то залить прикладную программу он сможет толко через ту IDE при обработке скотча (с помощью встроенного бутлоадера)...
Именно тем адуринка и убыстряет процесс работы. С одной стороны вроде и меньше трахотни, а с друой - "нормальным любителям" несколько некомфортно.
На завтра чего понацарапаю.
8)