Page 103 of 109

Re: Термостат ∆T=0,1°C

Posted: 29 Dec 2017 21:09
by astron
А вот эту ?
Опять же, существенных отличий нет. Напряжение 5 вольт:
Image
И напряжение 3 вольта:
Image
Разве что теперь появилось отчётливо заметное глазу мерцание, а в остальном те же яйца.
Откопал у себя в закромах одноразрядный семисегментный жк-индикатор неизвестного происхождения. Распиновка у него стандартная для статического вывода информации: выводы 1 и 10 общие, остальные идут по отдельности на каждый сегмент. Воткнул его в колодку любопытства ради, посмотреть, как та же прошивка будет работать с другим индикатором. Как раз 10й вывод попал на СОМ1, а остальные как попало на сегменты, да это и не важно, лишь бы хоть что-то показывало. И вот результат:
Пардон за качество, данный индикатор не работает на просвет, поэтому пришлось ловить угол, при котором изображение нормально фотографируется.
Напряжение 5 вольт:
Image
И напряжение 3 вольта:
Image
Мусор! И тут всё равно мусор. Залил прошивку со счетчиком первой версии, посмотрел картину в динамике, так сказать. Да, действительно, этот индикатор ведет себя ровно также, как и четырехразрядный, т. е. задействованные сегменты либо "полупогашены", либо засвечены. Такие дела.

Может есть какие-нибудь мысли по использованию одноразрядного индикатора в качестве тестового стенда? На нем всяко проще отрабатывать алгоритм: взял два провода, один на общий, второй на любой сегмент, и пробуй форму сигнала, пока что-нибудь подходящее не получится.
Да, при проверке распиновки, я точно также проверял его с помощью генератора, и точно также разряды зажигались и гасли чисто, без мусора и остаточного свечения.

Re: Термостат ∆T=0,1°C

Posted: 30 Dec 2017 19:31
by IYra
Вот еще вариант. На экране - 212

Re: Термостат ∆T=0,1°C

Posted: 30 Dec 2017 22:58
by astron
IYra wrote:Вот еще вариант
Увы, этот вариант еще хуже. Помимо мерцания, засветка стала еще более выраженной, и ее не удалось устранить даже при снижении напряжения на МК до минимально возможных 2,5В

Добавлено спустя 42 минуты 46 секунд:
Понимая, что очень тяжело "лечить простуду по телефону", решил снять некоторые данные с осциллографа. Прошивка последняя, т. е. test_new3.hex, напряжение питания 3.3 вольта. Желтый канал отображает сигнал с СОМ, красный - с линии сегмента. То и другое выбрано от фонаря, просто где удобнее было прицепиться щупом. Зеленый график это математика А+В. Синхронизация по желтому каналу. Сразу бросился в глаза некий джиттер, ширина цикла СОМ плавает на 1/8 этого самого цикла. В динамике очень хорошо заметно, на фото я постарался тоже запечатлеть. Сравните эти два:
Image Image
Специально отключил математику, чтобы было видно получше.
Да и итоговый сигнал получается грязноватым:
Image
Image
Видны иголки и ступеньки там, где их по идее быть не должно. Может быть, тут причина засветки? Прерывание какое конфликтует, или еще что?
Такое впечатление, что из-за джиттера, сигнал групп и сигнал сегментов периодически неправильно накладываются друг на друга, что и приводит к искажениям. Скажем, на предпоследнем фото в правой части экрана сигнал зажигания сегмента просто "смяло" до иголок.

Re: Термостат ∆T=0,1°C

Posted: 01 Jan 2018 10:08
by IYra
astron wrote:
IYra wrote:Вот еще вариант
Увы, этот вариант еще хуже. Помимо мерцания, засветка стала еще более выраженной, и ее не удалось устранить даже при снижении напряжения на МК до минимально возможных 2,5В
Вернулся к старой частоте. Период увеличился в 2 раза. И еще кое-что подправил.
Выкладываю два хекса с разными типами переключения COM1-COM4.

Re: Термостат ∆T=0,1°C

Posted: 01 Jan 2018 22:44
by astron
Очередная порция изображений от меня :)
Прошивка 111.hex, алгоритм вывода изображения упрощенный. В плане индикации всё тот же мусор, хоть на 5 вольтах, хоть на 3.3, даже фотографировать не стал. В плане сигналов на ножках, тут уже интереснее.
Image

На сигнале СОМ явно видны иголки. Крупнее:
Image

И еще крупнее:
Image
Image

Явно заметно, что из-за невысокого быстродействия, сигнал успевает дойти до своего максимума (или минимума), прежде чем вывод будет отключён. Сигналы снимались при напряжении 3.3 вольта. Скорее всего, мусор из-за них.

Прошивка 222.hex, тут уже всё получше, как в плане индикации так и в плане "красоты" сигналов на экране осцика)
Сделал фотографии индикатора при питании 5 вольт и 3.3 вольта, хотя уже и так понятно, что при 5 вольтах он всегда будет выдавать полную засветку, не рассчитан он на такое напряжение по паспорту.
Image
Image

ИМХО, результат отличный. Удалось добиться более чем приемлемого уровня читаемости. Что же до остатков засветки, они сейчас заметны примерно также, как на старых электронных часах, т. е. почти не мешают глазу.
И фотографии с осциллографа:
Image
Image
Image
Сигнал чистый и ровный. Иголок на линии СОМ практически нет, только едва заметные "пупырки". Развернул одну такую и запечатлел. Амплитуда сигнала где-то порядка 0,25-0,3 вольта, почти на уровне шумов по питанию. Смею предположить, что именно эти иголки-пупырки и портили нам жизнь всё это время. Видимо, когда программный счетчик переполняется, вывод автоматически встаёт в высокое (или низкое) положение, и за тот короткий момент, пока идет сравнение по условию, убирающее его обратно в состояние Hi-Z, он успевает создать помеху. Если и оптимизировать код дальше, то только либо как-то программным способом убрать этот пик, либо увеличить быстродействие, поставив кварц. И то и другое в рамках отладки вполне приемлемо. Хотя я считаю, мы уже добились хорошего результата, всё остальное будет уже доводкой.

Re: Термостат ∆T=0,1°C

Posted: 02 Jan 2018 01:08
by ak74xxx
Всех с НОВЫМ ГОДОМ!!!, а можно ли к этому термостату прицепить дисплей на контроллере SSD1306 диагональю 0,96?

Re: Термостат ∆T=0,1°C

Posted: 02 Jan 2018 21:02
by IYra
astron wrote: Сигнал чистый и ровный. Иголок на линии СОМ практически нет, только едва заметные "пупырки". Развернул одну такую и запечатлел. Амплитуда сигнала где-то порядка 0,25-0,3 вольта, почти на уровне шумов по питанию. Смею предположить, что именно эти иголки-пупырки и портили нам жизнь всё это время. Видимо, когда программный счетчик переполняется, вывод автоматически встаёт в высокое (или низкое) положение, и за тот короткий момент, пока идет сравнение по условию, убирающее его обратно в состояние Hi-Z, он успевает создать помеху. Если и оптимизировать код дальше, то только либо как-то программным способом убрать этот пик, либо увеличить быстродействие, поставив кварц. И то и другое в рамках отладки вполне приемлемо. Хотя я считаю, мы уже добились хорошего результата, всё остальное будет уже доводкой.
Попробовал убрать "пупырки". Останавливаемся на варианте "222". Мне кажется пупырки не должны оказывать сильного влияния на засветку. Где-то читал что сигнал должен быть более сложный - не 3(0,1/2,1) а 5 уровней напряжения (0,1/4,1/2,3/4,1). А что если переключать сегменты так же как COM1-COM4 (3 состояния) но для этого правда нужно 20 резисторов дополнительно.

Добавлено спустя 24 минуты 29 секунд:
ak74xxx wrote: а можно ли к этому термостату прицепить дисплей на контроллере SSD1306 диагональю 0,96?
В принципе идея интересная. Вот здесь http://mega-avr.com.ua/biblioteka-dlya- ... visionavr/ есть библиотека.

Re: Термостат ∆T=0,1°C

Posted: 03 Jan 2018 01:17
by astron
IYra wrote:Попробовал убрать "пупырки". Останавливаемся на варианте "222"
Прошил эту версию, разницы с предыдущей (222.hex) не заметил, как в плане качества изображения, так и в плане наличия "пупырок" - они остались на прежнем месте)
IYra wrote: А что если переключать сегменты так же как COM1-COM4 (3 состояния) но для этого правда нужно 20 резисторов дополнительно.
Можно попробовать. Железо не проблема) Тогда сделаю еще один делитель на 10 сегментов.

Re: Термостат ∆T=0,1°C

Posted: 03 Jan 2018 11:22
by ak74xxx
Вот здесь http://mega-avr.com.ua/biblioteka-dlya- ... visionavr/ есть библиотека.[/quote]

Да вот только как бы эту библиотеку прикрутить сюда

Re: Термостат ∆T=0,1°C

Posted: 03 Jan 2018 20:51
by hardlock
ak74xxx wrote:Всех с НОВЫМ ГОДОМ!!!, а можно ли к этому термостату прицепить дисплей на контроллере SSD1306 диагональю 0,96?
боюсь что это задача не для тиньки. Тут нужно хотя бы мегу8. На OLED дисплее нужно рисовать, а это свой шрифт, а это дополнительные расходы памяти...

Re: Термостат ∆T=0,1°C

Posted: 03 Jan 2018 23:57
by ak74xxx
Уважаемый автор, а вы не пробовали на меге8 вариант с таким дисплеем?

Re: Термостат ∆T=0,1°C

Posted: 04 Jan 2018 18:38
by IYra
astron wrote:
IYra wrote: А что если переключать сегменты так же как COM1-COM4 (3 состояния) но для этого правда нужно 20 резисторов дополнительно.
Можно попробовать. Железо не проблема) Тогда сделаю еще один делитель на 10 сегментов.
Сделал. Но в Протеусе видны выбросы при переходе из Z-состояния. Пока ничего не придумать.
Попробуй этот вариант.

Re: Термостат ∆T=0,1°C

Posted: 08 Jan 2018 09:50
by IYra
IYra wrote: Сделал. Но в Протеусе видны выбросы при переходе из Z-состояния. Пока ничего не придумать.
Вроде убрал выбросы до минимума. Во всяком случае в Протеусе. И еще в сети пишут, что питание индикатора - 3 в, а частота обновления - 63 Гц (2 + 2 мс на COM )
В этом хексе - 2 мс на каждый импульс. И счетчик начинает с -9.0

Re: Термостат ∆T=0,1°C

Posted: 08 Jan 2018 23:08
by astron
Пока готовил матчасть к проверке новой прошивки, оказывается еще одна версия появилась)
Итак, залил прошивку 2222Z, результат изюмительный:
Image
Image
Практически нет мусора ни при фронтальном расположении источника, ни при "бэклайте". Сейчас и 333Z прошью и отпишусь

Залил, проверил. Эта прошивка хуже. Во-первых, мусор опять стал более явно выраженным, а во-вторых, визуально заметна разница в насыщенности засвеченных сегментов ЖКИ. Надеюсь, на фото видно:
Image
Image
Более блёклый "минус", верхние сегменты у двойки и девятки. Думаю, лучше остановиться на вырианте 2222Z

Re: Термостат ∆T=0,1°C

Posted: 09 Jan 2018 17:58
by IYra
astron wrote: Думаю, лучше остановиться на вырианте 2222Z
Ну тогда еще два варианта. Разные типы формирования COM. Частота - 4мс. На ней и остановимся.
Счетчик с -9.0

И вопрос по функционалу. Обычный термостат ?

Re: Термостат ∆T=0,1°C

Posted: 09 Jan 2018 18:36
by Aleksey6886
Всем доброго времени суток! Я в программировании новичок, поэтому прошу сильно не пинать. Разбираюсь в проекте "Термометр на 4 датчика", как я понял на основе Термостата. Возник вопрос: почему при симуляции в протеусе с датчиками DS1812 (без "В") и выставленной температуре -0.5 градусов, на индикаторе сразу -1 и т.д, тоесть показывает температуру на 0.5 градуса ниже? Или все же это изъян протеуса?

Re: Термостат ∆T=0,1°C

Posted: 10 Jan 2018 00:05
by astron
111Z_4ms - на секунду загорается -9.0 на дисплее, после чего всё гаснет. Наверное ошибка в коде. Однако за эту секунду все-таки заметен мусор. 111Z_4ms - работает нормально, мусора нет, однако имеется тот же самый досадный эффект разной контрастности засвеченных сегментов, как моим постом выше. Полагаю, стоит остановиться на варианте индикации из 2222Z без доработок.
IYra wrote:И вопрос по функционалу. Обычный термостат ?
Я бы даже сказал, обычный термометр) Лично мне сейчас в данном устройстве кроме функции индикации температуры ничего иного и не нужно.
Сейчас у нас есть 6 свободных выводов МК, которые можно использовать (7, если задействовать reset). Из них три вывода мы "забираем" для подключения 4го разряда индикатора (на нем останутся незадействованными только три ноги: 1, 5, 13) и остаются еще три. Теоретически, этого хватит, чтобы подцепить пару кнопок и выход на исполнительное устройство. Однако, мне хватит простого термометра. Есть парочка пожеланий, но о них ниже.
Итак, задействуем все 4 разряда и десятичную точку посередине. Индикация температуры с десятыми долями получится от -9.9х до 99.9х, остальные значения температуры округленные. Пока писал, задумался о целесообразности использования четвертого разряда как такового, но и пустое место будет выглядеть некрасиво. Думаю, стОит туда просто намертво вшить знак градуса - верхний квадрат. А если будут другие версии прошивок, с тем же термостатом или с использованием двух термодатчиков, можно будет на нем сделать индикацию переключения, порогов и пр. При обрыве связи с датчиком, на индикаторе выводить Err. Вот в общем-то и всё
Из необязательных хотелок, можно было бы выводить через UART раз в n секунд (скажем, при каждом опросе термодатчика), текущее значение температуры со знаком. Может пригодиться при логгировании. Ну и с энергопотреблением поиграться, если будет такая возможность. Все же скорость обновления дисплея у нас невысокая, можно попробовать усыплять МК до следующего цикла обновления. Понимаю, что полноценно перевести схему на батарейное питание скорее всего не получится, для этого ее нужно слишком долго отлаживать, причем на столе и в железе, а не за пару тысяч километров) Но желание поставить буферный аккумулятор на случай отключения сети, с запасом хода на сутки-двое, у меня есть)

Добавлено спустя 5 минут 40 секунд:
Aleksey6886 wrote:почему при симуляции в протеусе с датчиками DS1812 (без "В") и выставленной температуре -0.5 градусов, на индикаторе сразу -1 и т.д
Емнип, у DS1820/DS18S20 и DS18B20 разная адресация, поэтому они напрямую не взаимозаменяемы. Если в коде программы не предусмотрен универсальный алгоритм с распознаванием типа датчика, то вместо верной температуры будет выдаваться чушь. Протеус тут не виноват, в железе будет ровно то же самое. Либо используйте конкретно указанный тип датчика, либо заливайте в девайс версию прошивки под другой датчик, если таковая имеется конечно.

Re: Термостат ∆T=0,1°C

Posted: 10 Jan 2018 20:01
by IYra
astron wrote:111Z_4ms - на секунду загорается -9.0 на дисплее, после чего всё гаснет. Наверное ошибка в коде. Однако за эту секунду все-таки заметен мусор. 111Z_4ms - работает нормально, мусора нет, однако имеется тот же самый досадный эффект разной контрастности засвеченных сегментов, как моим постом выше. Полагаю, стоит остановиться на варианте индикации из 2222Z без доработок.
Вернулся опять к варианту из апноута.(то есть сегменты работают на выход и делители не нужны) Только еще подправил прерывание и счетчик. В Протеусе все красиво. Импульсы стоят мертво. Выбросов нет. Попробуй.

Re: Термостат ∆T=0,1°C

Posted: 10 Jan 2018 22:12
by alex06541
здравствуйте!!!! около года назад я себе сделал данный термостат для инкубатора,был очень доволен данным девайсом из-за простоты и точности его,недавно решил испытать данный термостат на машине для включения електровентилятора системы охлаждения двигателя и отображения температуры охлаждающей жидкости,залита прошивка на пргогрев. перемычка стоит на PD3. после установки термостата вылезло одно большое неудобство,при включении мк. приблизительно на 2 секунды включается электровентилятор ,нельзя ли програмно (путем изменения прошивки) выключить данную функцию,а если есть уже такая версия прошивки то скиньте ссылку где можна ее скачать,потому как очень неудобно когда включаешь просто зажигание или с пепрвого раза не завелся двигатель включается вентилятор системы охлаждения , и еще начали слетать установки температуры и гистерезиса ,самовольно то поднимаясь то опускаясь,

Re: Термостат ∆T=0,1°C

Posted: 10 Jan 2018 23:00
by astron
Вариант 555.hex - всё опять стало похуже, хоть читаемость и приемлемая
Image
Image
Опять виден небольшой мусор, засвеченные сегменты все стали немного бледноватыми, и вновь вернулось явно заметное взгляду мерцание, причем мерцает как мусор, так и полезные сегменты

Re: Термостат ∆T=0,1°C

Posted: 11 Jan 2018 13:32
by propell_ant
alex06541 wrote:здравствуйте!!!! около года назад я себе сделал данный термостат для инкубатора,был очень доволен данным девайсом из-за простоты и точности его,недавно решил испытать данный термостат на машине для включения електровентилятора системы охлаждения двигателя и отображения температуры охлаждающей жидкости,залита прошивка на пргогрев. перемычка стоит на PD3. после установки термостата вылезло одно большое неудобство,при включении мк. приблизительно на 2 секунды включается электровентилятор ,нельзя ли програмно (путем изменения прошивки) выключить данную функцию,а если есть уже такая версия прошивки то скиньте ссылку где можна ее скачать,потому как очень неудобно когда включаешь просто зажигание или с пепрвого раза не завелся двигатель включается вентилятор системы охлаждения , и еще начали слетать установки температуры и гистерезиса ,самовольно то поднимаясь то опускаясь,
включение нагрузки при старте исправлено, смотрите ветку Термостат ∆T=0,1°C - работа над ошибками
чтобы настройки не слетали нужно ставить супервизор питания, придется доработать печатную плату, смотрите тут: Супервизор питания

Re: Термостат ∆T=0,1°C

Posted: 11 Jan 2018 22:43
by alex06541
propell_ant спасибо буду переделывать плату с супервизором,прошивки скачал,буду пробовать. и еще вопрос - эти прошивки на прогрев или на охлаждение? фьюзы остаются те же что и были?

Re: Термостат ∆T=0,1°C

Posted: 12 Jan 2018 10:59
by propell_ant
alex06541, там в архиве лежат все версии прошивок, и охлаждение и нагрев, и ОА и ОК. Фьюзы прежние.

Re: Термостат ∆T=0,1°C

Posted: 12 Jan 2018 18:59
by IYra
astron wrote: Опять виден небольшой мусор, засвеченные сегменты все стали немного бледноватыми, и вновь вернулось явно заметное взгляду мерцание, причем мерцает как мусор, так и полезные сегменты
Мерцание из-за низкой частоты (30Гц) а надо 60. Прикрепил два варианта на 60Гц.
111 - формирование COM как в апноуте
222 - по другому
И надо наверно уменьшать напряжение на индикаторе. Что если в делителе использовать 3 резистора.
+3V - R1=2кОм - МК(0,Z,3V) - R2=400 Ом - COM(индикатор 0, 1.2V , 2.4V) - R3=1.6кОм - земля

Re: Термостат ∆T=0,1°C

Posted: 13 Jan 2018 09:33
by astron
111
Image
Image
222
Image
Image
Оба варианта дают хорошее качество изображения, но первый, имхо, получше. У второго мусор чуть более явно выражен и как бы пятнами что ли... Часть сегментов ярче, часть бледнее.
IYra wrote:И надо наверно уменьшать напряжение на индикаторе
Я пробовал на ранних версиях прошивки ставить переменник и со средней точки подавать напряжение на индикатор, тогда это особого результата не дало. Можно попробовать еще раз в принципе