Программа для термостата W1209 (STM8S3003F)
-
- Полковник
- Сообщения: 3360
- Зарегистрирован: 24 дек 2016, 16:55
- Откуда: Уфа
- Имя: Айдар
- Благодарил (а): 14 раз
- Поблагодарили: 100 раз
- Контактная информация:
Программа для термостата W1209 (STM8S3003F)
Проект для термостата из Али W1209 (для варианта с STM8S003F).
Несмотря на небольшую память МК умудрился засунуть из FLProg программу термостата с терморезистором NTC. В программе ставлю Ардуино Уно, пины совпадают. В проекте NTC 10ком, регулирует температуру от-50 до 110 градусов. Но подключив терморезистор от 3d принтера можно регулировать температуру до 300 градусов. Для этого в параметре блока нужно поставить сопротивление терморезистора (100ком) и увеличить параметр max.
Блок 7 сегментного дисплея сделан , для экономии памяти, с применением регистров, так же аналогично ПБ выходы МК на регисторах.
Термостат показывает текущую температуру, при нажатии коротко кнопку SET, выводится режим настройка (моргает) температуры, необходимой для поддерживания.
При удержании кнопки длительно, выводится режим настройка гистерезиса.
При удержании кнопок + и - начинается прокрутка чисел.
Настройки сохраняются в EEPROM, для этого сделал блоки и для него.
Так же есть новый ПБ для генератора с длительностью импульса в 1 цикл.
Прошиваю через ST LINK. [spoiler]
Снял небольшое видео https://youtu.be/phsFboDDXCE[/spoiler]
Использовать версию FLprog не старше 8.0.2, я на нем компилировал.
Ядро Sduino, плата STM8S103F
Как установить ядро и прошивать STM8s смотрите здесь viewtopic.php?f=227&t=8507&p=125197&hilit=Stm8s#p123042
Новая версия блока с настройками аналогичными штатной прошивке и дополнительными настройками, читайте описание блока. Блок работает без библиотек! Генератор таблицы терморезисторов для W1209
https://github.com/rtek1000/NTC_Lookup_ ... /tree/main
Пример со своей таблицей. Номинал резистора R2 смотрите тут:
[spoiler] [/spoiler]
Несмотря на небольшую память МК умудрился засунуть из FLProg программу термостата с терморезистором NTC. В программе ставлю Ардуино Уно, пины совпадают. В проекте NTC 10ком, регулирует температуру от-50 до 110 градусов. Но подключив терморезистор от 3d принтера можно регулировать температуру до 300 градусов. Для этого в параметре блока нужно поставить сопротивление терморезистора (100ком) и увеличить параметр max.
Блок 7 сегментного дисплея сделан , для экономии памяти, с применением регистров, так же аналогично ПБ выходы МК на регисторах.
Термостат показывает текущую температуру, при нажатии коротко кнопку SET, выводится режим настройка (моргает) температуры, необходимой для поддерживания.
При удержании кнопки длительно, выводится режим настройка гистерезиса.
При удержании кнопок + и - начинается прокрутка чисел.
Настройки сохраняются в EEPROM, для этого сделал блоки и для него.
Так же есть новый ПБ для генератора с длительностью импульса в 1 цикл.
Прошиваю через ST LINK. [spoiler]
Снял небольшое видео https://youtu.be/phsFboDDXCE[/spoiler]
Использовать версию FLprog не старше 8.0.2, я на нем компилировал.
Ядро Sduino, плата STM8S103F
Как установить ядро и прошивать STM8s смотрите здесь viewtopic.php?f=227&t=8507&p=125197&hilit=Stm8s#p123042
Новая версия блока с настройками аналогичными штатной прошивке и дополнительными настройками, читайте описание блока. Блок работает без библиотек! Генератор таблицы терморезисторов для W1209
https://github.com/rtek1000/NTC_Lookup_ ... /tree/main
Пример со своей таблицей. Номинал резистора R2 смотрите тут:
[spoiler] [/spoiler]
У вас нет необходимых прав для просмотра вложений в этом сообщении.
- Dryundel
- Полковник
- Сообщения: 2451
- Зарегистрирован: 22 май 2017, 23:15
- Откуда: Ярославль
- Имя: Андрей
- Благодарил (а): 6 раз
- Поблагодарили: 31 раз
Программа для термостата W1209 (STM8S3003F)
[ref=#ff8000]aidar_i[/ref], а как Вы это компилировали?
Что то я не нашел нигде STM8S003, а на STM8S103 ошибка.
Что то я не нашел нигде STM8S003, а на STM8S103 ошибка.
-
- Полковник
- Сообщения: 3360
- Зарегистрирован: 24 дек 2016, 16:55
- Откуда: Уфа
- Имя: Айдар
- Благодарил (а): 14 раз
- Поблагодарили: 100 раз
- Контактная информация:
Программа для термостата W1209 (STM8S3003F)
Ставлю в ардуино иде Stm8s103 ядро sduino, он отличается от 003 только обьемом еепром.Dryundel писал(а): 17 мар 2023, 18:38 [ref=#ff8000]aidar_i[/ref], а как Вы это компилировали?
Что то я не нашел нигде STM8S003, а на STM8S103 ошибка.
https://github.com/tenbaht/sduino
- Dryundel
- Полковник
- Сообщения: 2451
- Зарегистрирован: 22 май 2017, 23:15
- Откуда: Ярославль
- Имя: Андрей
- Благодарил (а): 6 раз
- Поблагодарили: 31 раз
Программа для термостата W1209 (STM8S3003F)
Именно с ней и не компилируется.aidar_i писал(а): 17 мар 2023, 21:14 Ставлю Stm8s103 ядро sduino, он отличается только обьемом еепром.
https://github.com/tenbaht/sduino
Win 10 x64, FLP 8.1.0, Версия ядра 0.5.0
Ошибка компиляции для платы STM8S103F3 Breakout Board.
-
- Полковник
- Сообщения: 3360
- Зарегистрирован: 24 дек 2016, 16:55
- Откуда: Уфа
- Имя: Айдар
- Благодарил (а): 14 раз
- Поблагодарили: 100 раз
- Контактная информация:
Программа для термостата W1209 (STM8S3003F)
Помнишь, писал, что не нравится библиотека FLprog, она и мешается, поэтому я для программы 8.1.0 выделил из библиотеки таймер отдельно. В скомпилированном скетче менял название библиотеки. А потом плюнул и откатился на 8.0.2.
Вообще то можно в библиотеке оставить только таймер, все остальное убрать. Тогда название не нужно менять в скетче.
-
- Полковник
- Сообщения: 3360
- Зарегистрирован: 24 дек 2016, 16:55
- Откуда: Уфа
- Имя: Айдар
- Благодарил (а): 14 раз
- Поблагодарили: 100 раз
- Контактная информация:
Программа для термостата W1209 (STM8S3003F)
Немного доработал проект и ПБ, добавил новые ПБ, получилось уменьшить скетч на 341 байта. Можно , при желании, что то еще добавить.
в первом сообщении заменил проект и описание.
в первом сообщении заменил проект и описание.
- Dryundel
- Полковник
- Сообщения: 2451
- Зарегистрирован: 22 май 2017, 23:15
- Откуда: Ярославль
- Имя: Андрей
- Благодарил (а): 6 раз
- Поблагодарили: 31 раз
Программа для термостата W1209 (STM8S3003F)
[ref=#ff8000]aidar_i[/ref], а как на счет ПИД туда вшить? Может получится?
-
- Полковник
- Сообщения: 3360
- Зарегистрирован: 24 дек 2016, 16:55
- Откуда: Уфа
- Имя: Айдар
- Благодарил (а): 14 раз
- Поблагодарили: 100 раз
- Контактная информация:
Программа для термостата W1209 (STM8S3003F)
Думал, но пока работал над освобождением памяти, попробую, скорее придётся делать ПБ. Ещё не разобрался со входами на регисторах. Таймеры кушают много, сделать бы их тоже с регистрами.
- Dryundel
- Полковник
- Сообщения: 2451
- Зарегистрирован: 22 май 2017, 23:15
- Откуда: Ярославль
- Имя: Андрей
- Благодарил (а): 6 раз
- Поблагодарили: 31 раз
Программа для термостата W1209 (STM8S3003F)
[ref=#ff8000]aidar_i[/ref], вопрос...
А зачем надо было вообще float использовать?
С аналога int приходит. Та почему бы им не оперировать?
Отправлено спустя 2 минуты 15 секунд:
А в дисплее точку намертво прикрутить и всё.
Отправлено спустя 3 минуты 36 секунд:
Во первых, это помогает следить за ходом разработки.
А во вторых, по скачиванию виден интерес аудитории к проекту.
А зачем надо было вообще float использовать?
С аналога int приходит. Та почему бы им не оперировать?
Отправлено спустя 2 минуты 15 секунд:
А в дисплее точку намертво прикрутить и всё.
Отправлено спустя 3 минуты 36 секунд:
А вот это очень зря. Оставляйте релизы. Добавляйте актуальные версии.
Во первых, это помогает следить за ходом разработки.
А во вторых, по скачиванию виден интерес аудитории к проекту.
- Phazz
- Полковник
- Сообщения: 3136
- Зарегистрирован: 17 окт 2016, 15:38
- Откуда: Сургут
- Имя: Анатолий
- Благодарил (а): 235 раз
- Поблагодарили: 114 раз
Программа для термостата W1209 (STM8S3003F)
Тема интересная. Но из термостата сделать опять термостат. Немного не понял смысл этого мероприятия).
- Dryundel
- Полковник
- Сообщения: 2451
- Зарегистрирован: 22 май 2017, 23:15
- Откуда: Ярославль
- Имя: Андрей
- Благодарил (а): 6 раз
- Поблагодарили: 31 раз
Программа для термостата W1209 (STM8S3003F)
Тема эта не новая и очень полезная. Эти китайские термостаты очень не удобны для использования в быту. Надо выставить две пороговые температуры для гистерезиса, не перепутать какое значение где выставить. А объяснить жене, а тем паче бабушке, что такое гистерезис, ваще непосильная задача.Phazz писал(а): 19 мар 2023, 20:53 Но из термостата сделать опять термостат. Немного не понял смысл этого мероприятия).
Данный вариант позволяет просто убавлять и прибавлять требуемую температуру двумя кнопками плюс и минус. А уж гистерезис может лежать глубоко в настройках и никого не волновать.
- Phazz
- Полковник
- Сообщения: 3136
- Зарегистрирован: 17 окт 2016, 15:38
- Откуда: Сургут
- Имя: Анатолий
- Благодарил (а): 235 раз
- Поблагодарили: 114 раз
Программа для термостата W1209 (STM8S3003F)
[ref=#ff8000]Dryundel[/ref], теперь понятно. У меня были когда-то такие термостаты. Заменил штатный на бойлере. Ну если еще сделать из него таймер и возможность делать аппроксимацию значений АЦП для подключения других датчиков на аналоговый вход. То получится дешёвая платформа для быстрого прототипирования.
-
- Полковник
- Сообщения: 3360
- Зарегистрирован: 24 дек 2016, 16:55
- Откуда: Уфа
- Имя: Айдар
- Благодарил (а): 14 раз
- Поблагодарили: 100 раз
- Контактная информация:
Программа для термостата W1209 (STM8S3003F)
Про это тоже думал в блоке датчика нтс умножить данные на 10 и изменить в дисплее на интежер.
Нет, точку нельзя, - 10, 100 без точек.
Первоначально я просто хотел сделать термостат до 300 градусов. Да и не нашел нигде код для него от ардуинщиков, странно, он ведь продавался десятками тысяч и сейчас тоже, но китайцы заменили stm8s на какой-то МК.
Можно из него сделать, что хотите, хоть таймер, хоть подключить другие датчики, w1209 в качестве отладочной платы очень неплох.
Хочу создать тему Программирование STM8S и там продолжить разработки, если кто имеет знания или опыт по этим МК, присоединяйтесь.
- Phazz
- Полковник
- Сообщения: 3136
- Зарегистрирован: 17 окт 2016, 15:38
- Откуда: Сургут
- Имя: Анатолий
- Благодарил (а): 235 раз
- Поблагодарили: 114 раз
Программа для термостата W1209 (STM8S3003F)
А можно ссылочку на термостат с правильным контроллером)
- Dryundel
- Полковник
- Сообщения: 2451
- Зарегистрирован: 22 май 2017, 23:15
- Откуда: Ярославль
- Имя: Андрей
- Благодарил (а): 6 раз
- Поблагодарили: 31 раз
Программа для термостата W1209 (STM8S3003F)
Так а не факт, что Вам придет именно с правильным чипом. Есть модули с микросхемой один в один как STM8, но без надписей и по факту это что то другое, китайское. И где то на форумах читал что ее заменяют на STM8 и все ок. А другие пишут, что не вышло. Тема эта совсем не новая и перепрошивку делали еще лет 5 назад помню. Так же перепрошивали и под DS18B20.
https://yandex.ru/search/?text=w1209+пр ... =suggest_B
- Phazz
- Полковник
- Сообщения: 3136
- Зарегистрирован: 17 окт 2016, 15:38
- Откуда: Сургут
- Имя: Анатолий
- Благодарил (а): 235 раз
- Поблагодарили: 114 раз
-
- Полковник
- Сообщения: 3360
- Зарегистрирован: 24 дек 2016, 16:55
- Откуда: Уфа
- Имя: Айдар
- Благодарил (а): 14 раз
- Поблагодарили: 100 раз
- Контактная информация:
Программа для термостата W1209 (STM8S3003F)
Правильные сейчас есть ли, не знаю, я заказывал недавно, пришёл с неизвестным мк. Это нужно с продавцом общаться.
Если есть с китайским аналогичным STM8S003, то можно поменять на него, видел видео, если не работает нужно проверить соединения, там есть варианты, где дисплей подключен немного по другим пинам , дисплеи идут тоже разные, общ катод или анод.
Отправлено спустя 3 минуты 14 секунд:
Если есть с китайским аналогичным STM8S003, то можно поменять на него, видел видео, если не работает нужно проверить соединения, там есть варианты, где дисплей подключен немного по другим пинам , дисплеи идут тоже разные, общ катод или анод.
Отправлено спустя 3 минуты 14 секунд:
ST Link, купил недавно за 221рублей с Али. Он и для STM32 идёт.
-
- Полковник
- Сообщения: 3360
- Зарегистрирован: 24 дек 2016, 16:55
- Откуда: Уфа
- Имя: Айдар
- Благодарил (а): 14 раз
- Поблагодарили: 100 раз
- Контактная информация:
Программа для термостата W1209 (STM8S3003F)
Выпустили прошивку для W1209 для Ардуино Иде . Обернул его в блок и в библиотеку. Проверил , работает, смотрите описание блока и README в библиотеке.
Есть уже новая версия в первом сообщении.
Библиотеку встроил в блок. Для того , чтобы после первой прошивки настройки по умолчанию сохранились в настройках термостата нужно выполнить:
Сброс к заводским настройкам:
- - - Установите параметр P7 в положение ВЫКЛ.
- - - Выключите питание.
- - - Нажмите и удерживайте клавиши Вверх «+» и Вниз «-».
- - - Включите питание
- - - Подождите, пока на дисплее не появится надпись "rSt".
- - - Отпустите все клавиши
- - - Подождите, пока появится текущая температура.
Есть уже новая версия в первом сообщении.
Библиотеку встроил в блок. Для того , чтобы после первой прошивки настройки по умолчанию сохранились в настройках термостата нужно выполнить:
Сброс к заводским настройкам:
- - - Установите параметр P7 в положение ВЫКЛ.
- - - Выключите питание.
- - - Нажмите и удерживайте клавиши Вверх «+» и Вниз «-».
- - - Включите питание
- - - Подождите, пока на дисплее не появится надпись "rSt".
- - - Отпустите все клавиши
- - - Подождите, пока появится текущая температура.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- Полковник
- Сообщения: 3360
- Зарегистрирован: 24 дек 2016, 16:55
- Откуда: Уфа
- Имя: Айдар
- Благодарил (а): 14 раз
- Поблагодарили: 100 раз
- Контактная информация:
Программа для термостата W1209 (STM8S3003F)
Изменил блок, параметры термостата вывел в параметры блока, чтобы не копаться в библиотеке.
Минимум и Максимум вывел в виде строки массива, а по Умолчанию каждый параметр массива отдельным пунктом.
Таблица термостата создается специальным генератором, встроенным в блок и устанавливаемым в папку библиотек программы, вставляется в параметрах.
После первой прошивки настройки по умолчанию сохраняются (помог Naladchik), при повторной прошивке нужно, как описано выше, сбросить к заводским настройкам.
Внимательно читайте описание блока и описания параметров!
Выложил в первом сообщении здесь
Минимум и Максимум вывел в виде строки массива, а по Умолчанию каждый параметр массива отдельным пунктом.
Таблица термостата создается специальным генератором, встроенным в блок и устанавливаемым в папку библиотек программы, вставляется в параметрах.
После первой прошивки настройки по умолчанию сохраняются (помог Naladchik), при повторной прошивке нужно, как описано выше, сбросить к заводским настройкам.
Внимательно читайте описание блока и описания параметров!
Выложил в первом сообщении здесь
-
- Рядовой
- Сообщения: 2
- Зарегистрирован: 21 окт 2024, 13:47
- Имя: Александр
- Благодарил (а): 1 раз
Re: Программа для термостата W1209 (STM8S3003F)
Подскажите, в проекте NTC+3x7seg dispW1209_3 где указан выход на реле? Переназначил в скетче выводы (на дисплей и кнопки) под свою разводку, а выход на реле не могу найти.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя