Обявления

Для полноценной работы рекомендуется пройти регистрацию.

Рекламные сообщения будут удаляться вместе с пользователем. Что есть реклама - буду решать я.

Программатор для DS1821 плюс термостат без индикатора

Здесь только проекты на ATmega

Программатор для DS1821 плюс термостат без индикатора

Сообщение propell_ant » 18 дек 2016 18:28

Требования к устройству - работа через USB, уровень сложности сборки и настройки - для начинающих.
За основу взят программатор USBASP (я покупал тут)

с прошивкой от проекта usbtemp
Этот программатор сделан так, что его легко перепрошить - замыкается J2, а в колодку втыкается стандартный 10-ти контактный шлейф AVR ISP

Правда для этого нужен другой программатор, но, надеюсь, он у вас в хозяйстве найдется.

Итак, для работы вам понадобится:
1. Купить или спаять USBASP
2. Прошить его прошивкой usbtemp_firmware_v_2_0.hex, фьюзы как на кактинке
fuses-usbasp-factory.PNG
фьюзы
fuses-usbasp-factory.PNG (2.91 КБ) Просмотров: 406

3. Подтянуть ногу 7 (SCK) к питанию резистором 4.7к
4. Подключить датчик DS1821 (см. распиновку разъема AVR ISP)-
GND- 10(GND)
DQ - 7 (SCK)
VDD- 9 (MISO)
5. Воткнуть всё в сборе в компьютер
6. Он попросит драйвер - дать ему драйвер из папки USBavr-driver
7. После установки драйвера можо запускать утилиту usbtemp_v2_0.exe, например
8. usbtemp_v2_0.exe write821_temps 32 30
9. usbtemp_v2_0.exe read1821_th
напишет th = 32
10.usbtemp_v2_0.exe read1821_tl
напишет tl = 30

Утилита понимает такие команды:
usbtemp_v2_0.exe read1821_th - читает из датчика верхний порог температуры
usbtemp_v2_0.exe read1821_tl - читает из датчика нижний порог температуры
usbtemp_v2_0.exe read1821_status - читает из датчика регистр настроек
usbtemp_v2_0.exe write1821_temps <dec_th> <dec_tl> - пишет в датчик пороги температуры
usbtemp_v2_0.exe write1821_status <hex_status> - пишет в датчик регистр настроек
usbtemp_v2_0.exe toggle1821 - дает команду датчику на смену режима работы (термостат - 1-wire датчик и обратно)

Режим термостата
Устройство умеет работать и с датчиками DS18B(S)20, собственно для этих датчиков проект Usbtemp изначально и предназначался. Несколько датчиков (максимум 6) опрашиваются каждые 10 секунд. Утилита, кстати, умеет запрашивать температуру у каждого из датчиков (usbtemp_v2_0.exe temp <sensorID>, список датчиков можно получить командой usbtemp_v2_0.exe sensors).
Так вот, я добавил в само устройство пороги срабатывания, которые устанавливаются отдельной командой usbtemp_v2_0.exe write_thermostat <dec_th> <dec_tl>, а на контакт 1 (MOSI) выведен сигнал на включение нагревателя. После очередного опроса показаний датчиков (раз в 10 секунд) устройство проверяет, не вышли ли показания из заданных границ, если какая-либо температура выше верхнего предела - подается сигнал на выключение нагревателя, если какая-либо температура ниже нижнего предела - подается сигнал на включение нагревателя (как в термостате у Хардлока). Тут, естественно, может возникнуть ситуация, когда значения температуры с разных датчиков оказались "по разные стороны" от настроенных порогов, в таком случае нагреватель отключается.
Настроеные пороги срабатывания сохраняются в EEPROM и применяются при запуске устройства.
Интересно, что после сохранения настроек, устройство может работать термостатом и без подключения к компьютеру - достаточно воткнуть его в USB зарядку, или подав питание 5V через колодку ISP программирования на контакты 4-GND и 2-VCC (джампер J1 должен быть накинут в положение 5V).
Вложения
usbtemp_v2_0.rar
исходники и бинарники
(1.5 МБ) Скачиваний: 67
propell_ant
Живу тут
 
Сообщения: 289
Зарегистрирован: 03 июн 2014 09:22

Re: Программатор для DS1821 плюс термостат без индикатора

Сообщение propell_ant » 19 дек 2016 23:10

Зарезервировано
propell_ant
Живу тут
 
Сообщения: 289
Зарегистрирован: 03 июн 2014 09:22


Вернуться в ATmega



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7