Страница 103 из 105

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

СообщениеДобавлено: 29 дек 2017 22:09
astron
А вот эту ?

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

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

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

СообщениеДобавлено: 30 дек 2017 20:31
IYra
Вот еще вариант. На экране - 212

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

СообщениеДобавлено: 30 дек 2017 23:15
astron
IYra писал(а):Вот еще вариант

Увы, этот вариант еще хуже. Помимо мерцания, засветка стала еще более выраженной, и ее не удалось устранить даже при снижении напряжения на МК до минимально возможных 2,5В

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

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

СообщениеДобавлено: 01 янв 2018 11:08
IYra
astron писал(а):
IYra писал(а):Вот еще вариант

Увы, этот вариант еще хуже. Помимо мерцания, засветка стала еще более выраженной, и ее не удалось устранить даже при снижении напряжения на МК до минимально возможных 2,5В

Вернулся к старой частоте. Период увеличился в 2 раза. И еще кое-что подправил.
Выкладываю два хекса с разными типами переключения COM1-COM4.

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

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

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

И еще крупнее:
Изображение
Изображение

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

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

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

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

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

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

СообщениеДобавлено: 02 янв 2018 21:38
IYra
astron писал(а):Сигнал чистый и ровный. Иголок на линии СОМ практически нет, только едва заметные "пупырки". Развернул одну такую и запечатлел. Амплитуда сигнала где-то порядка 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 писал(а): а можно ли к этому термостату прицепить дисплей на контроллере SSD1306 диагональю 0,96?

В принципе идея интересная. Вот здесь http://mega-avr.com.ua/biblioteka-dlya-raboty-s-oled-displeem-ssd1306-dlya-codevisionavr/ есть библиотека.

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

СообщениеДобавлено: 03 янв 2018 02:17
astron
IYra писал(а):Попробовал убрать "пупырки". Останавливаемся на варианте "222"

Прошил эту версию, разницы с предыдущей (222.hex) не заметил, как в плане качества изображения, так и в плане наличия "пупырок" - они остались на прежнем месте)
IYra писал(а): А что если переключать сегменты так же как COM1-COM4 (3 состояния) но для этого правда нужно 20 резисторов дополнительно.

Можно попробовать. Железо не проблема) Тогда сделаю еще один делитель на 10 сегментов.

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

СообщениеДобавлено: 03 янв 2018 12:22
ak74xxx
Вот здесь http://mega-avr.com.ua/biblioteka-dlya-raboty-s-oled-displeem-ssd1306-dlya-codevisionavr/ есть библиотека.[/quote]

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

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

СообщениеДобавлено: 03 янв 2018 21:51
hardlock
ak74xxx писал(а):Всех с НОВЫМ ГОДОМ!!!, а можно ли к этому термостату прицепить дисплей на контроллере SSD1306 диагональю 0,96?

боюсь что это задача не для тиньки. Тут нужно хотя бы мегу8. На OLED дисплее нужно рисовать, а это свой шрифт, а это дополнительные расходы памяти...

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

СообщениеДобавлено: 04 янв 2018 00:57
ak74xxx
Уважаемый автор, а вы не пробовали на меге8 вариант с таким дисплеем?

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

СообщениеДобавлено: 04 янв 2018 19:38
IYra
astron писал(а):
IYra писал(а): А что если переключать сегменты так же как COM1-COM4 (3 состояния) но для этого правда нужно 20 резисторов дополнительно.

Можно попробовать. Железо не проблема) Тогда сделаю еще один делитель на 10 сегментов.

Сделал. Но в Протеусе видны выбросы при переходе из Z-состояния. Пока ничего не придумать.
Попробуй этот вариант.

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

СообщениеДобавлено: 08 янв 2018 10:50
IYra
IYra писал(а):Сделал. Но в Протеусе видны выбросы при переходе из Z-состояния. Пока ничего не придумать.

Вроде убрал выбросы до минимума. Во всяком случае в Протеусе. И еще в сети пишут, что питание индикатора - 3 в, а частота обновления - 63 Гц (2 + 2 мс на COM )
В этом хексе - 2 мс на каждый импульс. И счетчик начинает с -9.0

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

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

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

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

СообщениеДобавлено: 09 янв 2018 18:58
IYra
astron писал(а): Думаю, лучше остановиться на вырианте 2222Z

Ну тогда еще два варианта. Разные типы формирования COM. Частота - 4мс. На ней и остановимся.
Счетчик с -9.0

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

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

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

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

СообщениеДобавлено: 10 янв 2018 00:59
astron
111Z_4ms - на секунду загорается -9.0 на дисплее, после чего всё гаснет. Наверное ошибка в коде. Однако за эту секунду все-таки заметен мусор. 111Z_4ms - работает нормально, мусора нет, однако имеется тот же самый досадный эффект разной контрастности засвеченных сегментов, как моим постом выше. Полагаю, стоит остановиться на варианте индикации из 2222Z без доработок.
IYra писал(а):И вопрос по функционалу. Обычный термостат ?

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

Добавлено спустя 5 минут 40 секунд:
Aleksey6886 писал(а):почему при симуляции в протеусе с датчиками DS1812 (без "В") и выставленной температуре -0.5 градусов, на индикаторе сразу -1 и т.д

Емнип, у DS1820/DS18S20 и DS18B20 разная адресация, поэтому они напрямую не взаимозаменяемы. Если в коде программы не предусмотрен универсальный алгоритм с распознаванием типа датчика, то вместо верной температуры будет выдаваться чушь. Протеус тут не виноват, в железе будет ровно то же самое. Либо используйте конкретно указанный тип датчика, либо заливайте в девайс версию прошивки под другой датчик, если таковая имеется конечно.

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

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

Вернулся опять к варианту из апноута.(то есть сегменты работают на выход и делители не нужны) Только еще подправил прерывание и счетчик. В Протеусе все красиво. Импульсы стоят мертво. Выбросов нет. Попробуй.

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

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

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

СообщениеДобавлено: 11 янв 2018 00:00
astron
Вариант 555.hex - всё опять стало похуже, хоть читаемость и приемлемая
Изображение
Изображение
Опять виден небольшой мусор, засвеченные сегменты все стали немного бледноватыми, и вновь вернулось явно заметное взгляду мерцание, причем мерцает как мусор, так и полезные сегменты

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

СообщениеДобавлено: 11 янв 2018 14:32
propell_ant
alex06541 писал(а):здравствуйте!!!! около года назад я себе сделал данный термостат для инкубатора,был очень доволен данным девайсом из-за простоты и точности его,недавно решил испытать данный термостат на машине для включения електровентилятора системы охлаждения двигателя и отображения температуры охлаждающей жидкости,залита прошивка на пргогрев. перемычка стоит на PD3. после установки термостата вылезло одно большое неудобство,при включении мк. приблизительно на 2 секунды включается электровентилятор ,нельзя ли програмно (путем изменения прошивки) выключить данную функцию,а если есть уже такая версия прошивки то скиньте ссылку где можна ее скачать,потому как очень неудобно когда включаешь просто зажигание или с пепрвого раза не завелся двигатель включается вентилятор системы охлаждения , и еще начали слетать установки температуры и гистерезиса ,самовольно то поднимаясь то опускаясь,

включение нагрузки при старте исправлено, смотрите ветку Термостат ∆T=0,1°C - работа над ошибками
чтобы настройки не слетали нужно ставить супервизор питания, придется доработать печатную плату, смотрите тут: Супервизор питания

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

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

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

СообщениеДобавлено: 12 янв 2018 11:59
propell_ant
alex06541, там в архиве лежат все версии прошивок, и охлаждение и нагрев, и ОА и ОК. Фьюзы прежние.

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

СообщениеДобавлено: 12 янв 2018 19:59
IYra
astron писал(а):Опять виден небольшой мусор, засвеченные сегменты все стали немного бледноватыми, и вновь вернулось явно заметное взгляду мерцание, причем мерцает как мусор, так и полезные сегменты

Мерцание из-за низкой частоты (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

СообщениеДобавлено: 13 янв 2018 10:33
astron
111
Изображение
Изображение
222
Изображение
Изображение
Оба варианта дают хорошее качество изображения, но первый, имхо, получше. У второго мусор чуть более явно выражен и как бы пятнами что ли... Часть сегментов ярче, часть бледнее.
IYra писал(а):И надо наверно уменьшать напряжение на индикаторе

Я пробовал на ранних версиях прошивки ставить переменник и со средней точки подавать напряжение на индикатор, тогда это особого результата не дало. Можно попробовать еще раз в принципе