Проект для термостата из Али W1209 (для варианта с STM8S003F).
Несмотря на небольшую память МК умудрился засунуть из FLProg программу термостата с терморезистором NTC. В программе ставлю Ардуино Уно, пины совпадают. В проекте NTC 10ком, регулирует температуру от-50 до 110 градусов. Но подключив терморезистор от 3d принтера можно регулировать температуру до 300 градусов. Для этого в параметре блока нужно поставить сопротивление терморезистора (100ком) и увеличить параметр max.
Блок 7 сегментного дисплея сделан , для экономии памяти, с применением регистров, так же аналогично ПБ выходы МК на регисторах.
Термостат показывает текущую температуру, при нажатии коротко кнопку SET, выводится режим настройка (моргает) температуры, необходимой для поддерживания.
При удержании кнопки длительно, выводится режим настройка гистерезиса.
При удержании кнопок + и - начинается прокрутка чисел.
Настройки сохраняются в EEPROM, для этого сделал блоки и для него.
Так же есть новый ПБ для генератора с длительностью импульса в 1 цикл.
Прошиваю через ST LINK.
Помнишь, писал, что не нравится библиотека FLprog, она и мешается, поэтому я для программы 8.1.0 выделил из библиотеки таймер отдельно. В скомпилированном скетче менял название библиотеки. А потом плюнул и откатился на 8.0.2.
Вообще то можно в библиотеке оставить только таймер, все остальное убрать. Тогда название не нужно менять в скетче.
Программа для термостата W1209 (STM8S3003F)
Добавлено: 19.03.2023{, 14:35}
aidar_i
Немного доработал проект и ПБ, добавил новые ПБ, получилось уменьшить скетч на 341 байта. Можно , при желании, что то еще добавить.
в первом сообщении заменил проект и описание.
Программа для термостата W1209 (STM8S3003F)
Добавлено: 19.03.2023{, 18:00}
Dryundel
aidar_i, а как на счет ПИД туда вшить? Может получится?
Программа для термостата W1209 (STM8S3003F)
Добавлено: 19.03.2023{, 18:29}
aidar_i
Думал, но пока работал над освобождением памяти, попробую, скорее придётся делать ПБ. Ещё не разобрался со входами на регисторах. Таймеры кушают много, сделать бы их тоже с регистрами.
Программа для термостата W1209 (STM8S3003F)
Добавлено: 19.03.2023{, 18:56}
Dryundel
aidar_i, вопрос...
А зачем надо было вообще float использовать?
С аналога int приходит. Та почему бы им не оперировать?
Отправлено спустя 2 минуты 15 секунд:
А в дисплее точку намертво прикрутить и всё.
А вот это очень зря. Оставляйте релизы. Добавляйте актуальные версии.
Во первых, это помогает следить за ходом разработки.
А во вторых, по скачиванию виден интерес аудитории к проекту.
Программа для термостата W1209 (STM8S3003F)
Добавлено: 19.03.2023{, 20:53}
Phazz
Тема интересная. Но из термостата сделать опять термостат. Немного не понял смысл этого мероприятия).
Но из термостата сделать опять термостат. Немного не понял смысл этого мероприятия).
Тема эта не новая и очень полезная. Эти китайские термостаты очень не удобны для использования в быту. Надо выставить две пороговые температуры для гистерезиса, не перепутать какое значение где выставить. А объяснить жене, а тем паче бабушке, что такое гистерезис, ваще непосильная задача.
Данный вариант позволяет просто убавлять и прибавлять требуемую температуру двумя кнопками плюс и минус. А уж гистерезис может лежать глубоко в настройках и никого не волновать.
Программа для термостата W1209 (STM8S3003F)
Добавлено: 19.03.2023{, 21:05}
Phazz
Dryundel, теперь понятно. У меня были когда-то такие термостаты. Заменил штатный на бойлере. Ну если еще сделать из него таймер и возможность делать аппроксимацию значений АЦП для подключения других датчиков на аналоговый вход. То получится дешёвая платформа для быстрого прототипирования.
Про это тоже думал в блоке датчика нтс умножить данные на 10 и изменить в дисплее на интежер.
Нет, точку нельзя, - 10, 100 без точек.
Первоначально я просто хотел сделать термостат до 300 градусов. Да и не нашел нигде код для него от ардуинщиков, странно, он ведь продавался десятками тысяч и сейчас тоже, но китайцы заменили stm8s на какой-то МК.
Можно из него сделать, что хотите, хоть таймер, хоть подключить другие датчики, w1209 в качестве отладочной платы очень неплох.
Хочу создать тему Программирование STM8S и там продолжить разработки, если кто имеет знания или опыт по этим МК, присоединяйтесь.
Программа для термостата W1209 (STM8S3003F)
Добавлено: 20.03.2023{, 00:10}
Phazz
А можно ссылочку на термостат с правильным контроллером)
А можно ссылочку на термостат с правильным контроллером)
Так а не факт, что Вам придет именно с правильным чипом. Есть модули с микросхемой один в один как STM8, но без надписей и по факту это что то другое, китайское. И где то на форумах читал что ее заменяют на STM8 и все ок. А другие пишут, что не вышло. Тема эта совсем не новая и перепрошивку делали еще лет 5 назад помню. Так же перепрошивали и под DS18B20. https://yandex.ru/search/?text=w1209+пр ... =suggest_B
Программа для термостата W1209 (STM8S3003F)
Добавлено: 20.03.2023{, 00:51}
Phazz
Я так понимаю нужен еще программатор?
Программа для термостата W1209 (STM8S3003F)
Добавлено: 20.03.2023{, 00:51}
aidar_i
Правильные сейчас есть ли, не знаю, я заказывал недавно, пришёл с неизвестным мк. Это нужно с продавцом общаться.
Если есть с китайским аналогичным STM8S003, то можно поменять на него, видел видео, если не работает нужно проверить соединения, там есть варианты, где дисплей подключен немного по другим пинам , дисплеи идут тоже разные, общ катод или анод.
ST Link, купил недавно за 221рублей с Али. Он и для STM32 идёт.
Программа для термостата W1209 (STM8S3003F)
Добавлено: 21.09.2023{, 23:21}
aidar_i
Выпустили прошивку для W1209 для Ардуино Иде . Обернул его в блок и в библиотеку. Проверил , работает, смотрите описание блока и README в библиотеке.
Есть уже новая версия в первом сообщении.
Библиотеку встроил в блок.
Для того , чтобы после первой прошивки настройки по умолчанию сохранились в настройках термостата нужно выполнить:
Сброс к заводским настройкам:
- - - Установите параметр P7 в положение ВЫКЛ.
- - - Выключите питание.
- - - Нажмите и удерживайте клавиши Вверх «+» и Вниз «-».
- - - Включите питание
- - - Подождите, пока на дисплее не появится надпись "rSt".
- - - Отпустите все клавиши
- - - Подождите, пока появится текущая температура.
Программа для термостата W1209 (STM8S3003F)
Добавлено: 02.10.2023{, 10:09}
aidar_i
Изменил блок, параметры термостата вывел в параметры блока, чтобы не копаться в библиотеке.
Минимум и Максимум вывел в виде строки массива, а по Умолчанию каждый параметр массива отдельным пунктом.
Таблица термостата создается специальным генератором, встроенным в блок и устанавливаемым в папку библиотек программы, вставляется в параметрах.
После первой прошивки настройки по умолчанию сохраняются (помог Naladchik), при повторной прошивке нужно, как описано выше, сбросить к заводским настройкам.
Внимательно читайте описание блока и описания параметров!
Выложил в первом сообщении здесь