Перейти к контенту
МОРСКОЙ АКВАРИУМ - форум Аква Лого

Аква Лого / мы на связи
Аква Лого в VK
Аква Лого в Телеграмм
Аква Лого в соцсетях

Почвенные рыбы

Синичкин день

Единственный в мире малыш утконос

Рекомендуемые сообщения

Ну а в программе-интерфейсе для PC практически все тоже самое, прикрутил только логи температуры и автодолива

post-2056-1251858906_thumb.jpg

Поделиться этим сообщением


Ссылка на сообщение

Карэн ты гигант!!! :vo:

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

Поделиться этим сообщением


Ссылка на сообщение

Карен, подключи к выходам светодиоды - будут индицировать состояние канала - включено/выключено

Поделиться этим сообщением


Ссылка на сообщение

Карен, Молодец !

Интересно получилось. Особенно с триггерами :vo: .

Поделиться этим сообщением


Ссылка на сообщение

Карен, идея хорошая, но надо немного отполировать :gygy: .

Весьма нежелательно давать выходы процессора напрямую на выход. Есть много шансов спалить его. Надо на выводы I2C поставить P82B715D резисторы 1-10к и защитные диоды - это минимум. Максимум, если ты хочешь развивать систему, надо на выход ставить усилитель I2C. Чтото из чипов PCA9306 или P82B715, что сможешь найти. Если это недоступно, поищи в инете по фразе active pullup. Можно найти готовые примеры. и он легко собирается на любой смос логике. Смысл его в том что величина разистора pullup переключается в зависимости от направления сигнала. Когда состояние меняется с 0 на 1, включен pullup 1к, чтобы быстрее подтянуть сигнал вверх, когда сигнал с 1 на 0, 1к отключается и включается 20к. Величины естественно подбираются.

Поделиться этим сообщением


Ссылка на сообщение

Олег, спасибо за информацию, когда сяду перепаивать центральный блок, посмотрю чем можно усилилить I2C из того, что ты написал!

Поделиться этим сообщением


Ссылка на сообщение

Карен, подключи к выходам светодиоды - будут индицировать состояние канала - включено/выключено

Думал подключить, но потом просто стал выводить состояние каналов (и всю остальную инфу) на монитор - зеленый кружок горит, значит канал включен.

post-2056-1251883546_thumb.jpg

Поделиться этим сообщением


Ссылка на сообщение

Из интересного в схеме - сигналы от процессора к оптронам пустил не напрямую (как делают поголовно все), а через тригерры Шмидта. Входы триггеров резисторами подвязаны к +5 и земле так, что при отсуствии сигнала от процессора тригер не переключается (то есть если он включен, то и остается включеным, если был выключен, то остается выключеным). Это позволяет сколько угодно перезагружать процессор - при перезагрузке ножки процессора переходят в Z-состояние, т.е. просто обрываются, и не переключают нагрузку (свет в аквариуме не мигает, МГ не отключаются и т.п.). Можно перепрограммировать процессор на ходу при включенной нагрузке - аквариум этого не заметит.

 

Ценная идея. Надо взять на вооружение. :vo:

Поделиться этим сообщением


Ссылка на сообщение

Ценная идея. Надо взять на вооружение. :vo:

:gygy: Я, честно говоря, давно удивлялся, почему никто не использует, думал, что на практике мало реализуемо, из-за разброса параметров триггеров. Но оказалось, что все работает, гистерезис у них не большой, что-то типа 0.8 вольт, но четкий, если резисторами подать на вход поряка 1 - 1.2 вольта, то держит предыдущее состояние четко. Единственное, надо было мне номиналы резисторов побольше выбрать, а то 470ом на землю ток великоват (да и ладно, не жалко).

Поделиться этим сообщением


Ссылка на сообщение

Карен, дав совет по поводу усиления I2C, я как то упустил из виду что ты собираешься пустить это по всей квартире. Ничего хорошего из этого не выйдет. Усиление канала I2C хорошо будет работать при неразветвленной системе, на один далекий датчик. I2C - это вообще внутриплатный интерфейс и не предназначен для передачи на расстояние. Кроме того эта связь у тебя будет односторонняя, я не уверен что АТмега поддерживает режимы master\slave, двухсторонний то есть.

Грамотно такую связь надо построить немного по другому. Для этого надо использовать не I2C, a UART (Rs232) процессора и подключить его к RS485 драйверам. Примеры здесь

http://masters.donntu.edu.ua/2004/fema/kov...brary/art7.html

Это даст тебе возможность подключить тебе до 256 точек и работать с ними в half duplex режиме с длиной кабелей до нескольких сотен метров и высокой помехоустойчивостью. Причем тот софт что ты уже написал для коммуникации I2C изменится непринципиально.

Поделиться этим сообщением


Ссылка на сообщение

Грамотно такую связь надо построить немного по другому. Для этого надо использовать не I2C, a UART (Rs232) процессора и подключить его к RS485 драйверам. Примеры здесь

http://masters.donntu.edu.ua/2004/fema/kov...brary/art7.html

Это даст тебе возможность подключить тебе до 256 точек и работать с ними в half duplex режиме с длиной кабелей до нескольких сотен метров и высокой помехоустойчивостью. Причем тот софт что ты уже написал для коммуникации I2C изменится непринципиально.

 

Я бы вообще поставил CAN-контроллер.

Мне кажется что это проще с точки зрения написания программы и надежнее по протоколу.

Поделиться этим сообщением


Ссылка на сообщение

Можно и CAN. Просто поскольку Карен освоил АТмега, проще на 232, а с встроенным CAN я не знаю есть ли микроконтроллеры или это отдельный PHY.

Поделиться этим сообщением


Ссылка на сообщение
Можно и CAN. Просто поскольку Карен освоил АТмега, проще на 232, а с встроенным CAN я не знаю есть ли микроконтроллеры или это отдельный PHY.

Есть конечно и много разных. Мы пользуемся silabsовскими.

И у атмеги много разных есть

http://www.atmel.com/dyn/products/devices....ily_id=607#1609

 

Уж больно удобная вещь для сетей процессоров.

Поделиться этим сообщением


Ссылка на сообщение

Не вижу смысла городить огород из кучи микроконтроллеров, лучше обратить внимание на 1-Wire сети. Явно просится эта технология сюда, и никаких проблем с дальностью и топологией сети в пределах квартиры. Оконечные компоненты по схемотехнике просты до предела, там нечему зависать. Прокинуть по всей квартире 3 проводка и сеть готова - до 256 устройств можно цеплять.

Тут подробнее

Тут проект аквакомпа на 1-Wire под PC, в общем то что вам и нужно. Сделать аналогичное на МК не сложно. На одну шину с исполнительными устройствами, датчиками и МК основным можно посадить еще и следящие\дублирующие МК или PC. Масштабируемая сеть и простая в реализации.

В Proteus есть готовые модели некоторых компонент 1-Wire, накидать сеть и покрутить софт для контроллера там само то.

Изменено пользователем Savant (см. историю изменений)

Поделиться этим сообщением


Ссылка на сообщение

Усиление канала I2C хорошо будет работать при неразветвленной системе, на один далекий датчик.

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

 

post-2056-1251938477_thumb.jpg

post-2056-1251938489_thumb.jpg

 

Спасибо за советы по другим интерфейсам, посмотрю, может и переделаю. Хотя сейчас (пока) все устраивает и с I2C. У меня сечас к главному процессору по I2C подключены: 1) часовая микросхема на плате с процессором, 2) блок управляемых розеток через кабель метров семь, 3) блок больших семисегментных индикаторов через ответвление кабеля метра два. Все это при явно неправильных номиналах pullup резисторов. Естественно, сбои в сигналах есть, но они програмно обрабатываются. Все сигналы исполнительными устройствами исполняются только при совпадении контрольной суммы. Если устройство не получает сигналов от центрального процессора в течении определенного времени, то оно перезагружается сбрасывая TWI машину и отпуская линию. Если главный процессор не может достучаться до какого-то устройства, то он не долбится в него как сумашедший, а переключается на другие задачи и пробует позже. Ну и еще много всего.

 

Несмотря на то, что все ошибки обрабатываются и обходятся, сделал счетчик отказов I2C, чтобы видеть как влияет на стабильность шины подключение новых устройств. Показывает, что при частоте запросов около 4-х команд разным устройствам в секунду происходит 10-20-30 ошибок в час (неготовность устройства и прочие). Внешне этого не видно, пока все работает как часы.

Поделиться этим сообщением


Ссылка на сообщение

 

Тут проект аквакомпа на 1-Wire под PC, в общем то что вам и нужно.

Savant, спасибо за ссылку. Посмотрел. Первое впечатление - "лень разбираться", второе - это совсем не то, что мне нужно.

Поделиться этим сообщением


Ссылка на сообщение

Ну вот, возникли первые проблемы. Но не с шиной, а с силовой частью. Иногда отключается и тут же снова включается нагрузка. Для МГ это очень неприятно - гаснут, и разгораются снова только когда остынут. Силовая часть собрана по этой схеме, в чем могут быть проблемы? Не думаю, что это процессор выдает (из-за ошибок программы или помех) короткий импульс на выключение.

post-2056-1251970288_thumb.jpg

Поставил снаббер на триак - не помогло. Поставить снаббер еще и на оптрон?

Поделиться этим сообщением


Ссылка на сообщение

Ну вот, возникли первые проблемы. Но не с шиной, а с силовой частью.

На любом выходе такая проблема?

Поделиться этим сообщением


Ссылка на сообщение

Проверял не все выходы, но на трех из восьми проблема есть, причем с разной частотой. Целый день все нормально, а к вечеру пару раз за час мигнула (гасла) одна МГ, а подключенная к другому каналу горела без проблем, но таки один раз под конец тоже мигнула.

 

Может это к вечеру помехи по сети идут, но как они могут повлиять на ВЫКЛЮЧЕНИЕ симисторов? Обычно наоборот бывает, трудно выключить на индуктивной нагрузке, снаббер цепляют и прочее.

Поделиться этим сообщением


Ссылка на сообщение

Может это к вечеру помехи по сети идут, но как они могут повлиять на ВЫКЛЮЧЕНИЕ симисторов?

Думаю, что помехи в сети влияют не на симисторы, а на сами лампы. Возможно ЭПРА отключает лампу при коротких обрывах напряжения в сети, затем ждет, пока лампа остынет. Попробуйте вечером включить одну (контрольную) лампу напрямую в сеть.

Поделиться этим сообщением


Ссылка на сообщение

Карен, может это поможет :

http://amt.ural.ru/electronics/power-triac.php3

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

Поделиться этим сообщением


Ссылка на сообщение
Может это к вечеру помехи по сети идут, но как они могут повлиять на ВЫКЛЮЧЕНИЕ симисторов? Обычно наоборот бывает, трудно выключить на индуктивной нагрузке, снаббер цепляют и прочее.

Возможно - перегрев симисторов, их дефект, неконтакты или провалы сети.

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

Да можно, но всетаки 485 интерфейс значительно надежнее, помехоустойчивей. На I2C сложнее организовать 2х стороннюю связь.

Несмотря на то, что все ошибки обрабатываются и обходятся, сделал счетчик отказов I2C, чтобы видеть как влияет на стабильность шины подключение новых устройств. Показывает, что при частоте запросов около 4-х команд разным устройствам в секунду происходит 10-20-30 ошибок в час (неготовность устройства и прочие). Внешне этого не видно, пока все работает как часы.

Это очень много. Сделай как положенно на UART/RS485, и получишь единицы ошибок в неделю ;) . Кроме того снизь частоту опросов, до единиц секунд, не дергай зря переферию, уменьшится к-во неготовностей.

Поделиться этим сообщением


Ссылка на сообщение

Возможно - перегрев симисторов, их дефект, неконтакты или провалы сети.

стоят едва теплые под нагрузкой...

Поделиться этим сообщением


Ссылка на сообщение

стоят едва теплые под нагрузкой...

 

А может банальный "непропай" где-то ?

Поделиться этим сообщением


Ссылка на сообщение

Пожалуйста, авторизуйтесь, чтобы оставить комментарий

Вы сможете оставлять комментарии после авторизации



Войти

×
×
  • Создать...

Политика обработки персональных данных