woddy, в который раз повторюсь, что ширина импульса как таковая это пустышка, она не имеет абсолютно никакого значения, поскольку элементарно компенсируется программно. Что действительно важно, так это стабильность этой ширины, а точнее стабильность опережения/запаздывания фронтов от действительного нуля под воздействием внешних факторов.
Погоняй ЛАТРом напряжение туда-сюда, погрей элементы, поменяй с десяток 814-х, а потом делай выводы, что ерунда, что нет.
Регулятор напряжения и тока на Arduino Pro Mini
sevpro
Доктор наук
Worldwide
769 281
Отв.400 17 Июля 17, 21:48
woddy
Доцент
Новосиб
1.3K 489
Отв.401 17 Июля 17, 22:05, через 18 мин
К сожалению ЛАТРа нет чтоб погонять нормально. Проблема в том, что как раз запаздывание плавает +-200мс относительно середины импульса в зависимости от номиналов. И мне это не нравится.
Еще не нравится что резистор ограничивающий оптрон 200ом. При напряжении 24 вольт мы в оптрон вгоняем 100 миллиампер(!!!) при допустимых по даташиту 50ма. При том, что для открытия оптрона и 10ма достаточно. Совершенно не понятно зачем насиловать его так.
В остальном я согласен, но мой внутренний префектционист неудовлетворен.
Еще недочет нашел в проекте serba. Напряжение с moc3023 снимается по детекту нуля. А надо не менее чем за 200мкс до конца периода. Значит если детектор нуля будет "слишком точный", проект работать не будет.
Правильно же снимать напряжение с moc3023 через 10мкс после её открытия. Она сама будет оставаться "защелкнутой" до конца периода.
(в даташите на 3052 это явно прописано, но у 3023 те же эффекты есть)
Возможно у msg31 такой же недочет, но я не могу разобраться в коде.
Еще не нравится что резистор ограничивающий оптрон 200ом. При напряжении 24 вольт мы в оптрон вгоняем 100 миллиампер(!!!) при допустимых по даташиту 50ма. При том, что для открытия оптрона и 10ма достаточно. Совершенно не понятно зачем насиловать его так.
В остальном я согласен, но мой внутренний префектционист неудовлетворен.
Еще недочет нашел в проекте serba. Напряжение с moc3023 снимается по детекту нуля. А надо не менее чем за 200мкс до конца периода. Значит если детектор нуля будет "слишком точный", проект работать не будет.
Правильно же снимать напряжение с moc3023 через 10мкс после её открытия. Она сама будет оставаться "защелкнутой" до конца периода.
(в даташите на 3052 это явно прописано, но у 3023 те же эффекты есть)
Возможно у msg31 такой же недочет, но я не могу разобраться в коде.
sevpro
Доктор наук
Worldwide
769 281
Отв.402 17 Июля 17, 22:15, через 11 мин
woddy, ну давай начнем с того, что этот ток светодиода импульсный Да и кондер не зарядится для обеспечения такого тока
По-поводу гашения. Не помню как сделано у ТС, у меня ocr1a запускает, а ocr1b гасит оптрон с некоторой задержкой и все, плевать я хотел через сколько там ноль придет
Добавлено через 2мин.:
По-поводу гашения. Не помню как сделано у ТС, у меня ocr1a запускает, а ocr1b гасит оптрон с некоторой задержкой и все, плевать я хотел через сколько там ноль придет
Добавлено через 2мин.:
запаздывание плавает +-200мс относительно середины импульса в зависимости от номиналовwoddy, 17 Июля 17, 22:05не может такого быть
woddy
Доцент
Новосиб
1.3K 489
Отв.403 17 Июля 17, 22:22, через 7 мин
woddy, ну давай начнем с того, что этот ток светодиода импульсныйsevpro, 17 Июля 17, 22:15согласен. В даташите допустимо до 1а 100мкс. Тут же получается 0.1а 700мкс. Формально не нормирован, но "поди будет работать".
А по номиналам там вообще дичь. Тот же С1 сильно влияет на сдвиг нуля относительно центра импульса. Я специально проверил. Как плавает емкость дешевой керамики от температуры рассказывать не надо? После этого схему без доработок считаю нельзя использовать если нужна точность. Или менять с1 на пленку (тантал? электролит?) или завышать номинал раз в десять, чтоб его "уход" не влиял на результат.
Добавлено через 2мин.:
не может такого бытьsevpro, 17 Июля 17, 22:15я штук десять разных комбинаций перебрал. дальше фотать было лень. щас еще одну фотку покажу
вот около 150мкс в сравнении с прошлым постом
Добавлено через 10ч. 5мин.:
а вот со стабилитроном на 5 вольт уже гораздо приятнее. импульс менее 150мкс. (масштаб осцилографа другой)
m16
Модератор
Тамбов
1.9K 1K
Отв.404 18 Июля 17, 10:50
woddy, проверенная рабочая схема. осцилограммы при 220, 190 и 160в сетевого
woddy
Доцент
Новосиб
1.3K 489
Отв.405 18 Июля 17, 10:51, через 2 мин
да, про резистор в 36ком я помню но это не то, что хотелось бы
qwest_ans
Бакалавр
Самара
63 4
Отв.406 21 Июля 17, 15:48
А у меня опять глупый вопрос,
(11, 10, 12, 13, 14, 6)
- вот это номера контактов на плате ардуино
-таки на моей про мини нет 14-го контакта?!
(11, 10, 12, 13, 14, 6)
- вот это номера контактов на плате ардуино
-таки на моей про мини нет 14-го контакта?!
mak
Модератор
Екатеринбург
6.3K 1.8K
Отв.407 21 Июля 17, 15:50, через 3 мин
a0
сообщение удалено
sebra
Куратор
Республика Коми
147 85
Отв.408 22 Июля 17, 21:56
Наблюдаю глюк - DS в колонне регулярно (раз в несколько минут) выдает температуру -127 градусов, это значит библиотека датчика не увидела.
Глюк это библиотеки, самого датчика или особенность работы именно с регулятором пока не определил.Tomat7, 10 Июля 17, 17:15
Хотел еще раз предостеречь от использования библиотеки OneWire для датчиков DS18b20 в этом проекте, да и вообще.
Оптимизируя код в своей автоматике залез в эту библиотеку а там сплошные noInterrupts и delayMicroseconds.
Я конечно не профи програмер но на мой взгляд это просто колхоз. Для себя решил сделать отдельный температурный сервачек, как уважаемый OldBean в своем проекте. Писать свою либу мне лениво
Всех благ
woddy
Доцент
Новосиб
1.3K 489
Отв.409 22 Июля 17, 22:04, через 9 мин
Или использовать драйвер подключенный по и2ц
сообщение удалено
ys1797
Доцент
Санкт-Петербург
1K 339
Отв.410 22 Июля 17, 23:33
но ссылку на матчасть?shinkar, 22 Июля 17, 23:30ds2482
Tomat7
Магистр
Черноморская губинния
236 138
Отв.411 01 Авг. 17, 11:21
ds2482ys1797, 22 Июля 17, 23:33Есть у меня с десяток DS2482-100, и даже пара DS2482-800, одна правда уже на малинке трудится.
Проведу еще перегон с "программным" OneWire на Ардуино и если будут косяки то пойду ковырять в эту стороную.
Хотя, если уж быть честным, даже с учетом "аппаратного" I2C у Ардуино, не обойтись без сторонних библиотек в которых так же может быть noInterrupts и delayMicroseconds. Температурный сервачёк, да и вообще разделение задач по модулям, многие вопросы снимет, но надо же информацию между модулями передавать и I2C для этих целей мне совсем не нравится.
Sevpro, Sebra, расскажите хоть кратко как наткуться на подводные камни и как увидеть что нормально не работает?
Я пока вижу один вариант - сидеть и пялится на вольтметр/ваттметр и пытаться увидеть на нём залёты.
sebra
Куратор
Республика Коми
147 85
Отв.412 01 Авг. 17, 13:13
как наткуться на подводные камни и как увидеть что нормально не работает?Tomat7, 01 Авг. 17, 11:21
Смотри на показания датчиков температуры. Могут вполне выскочить некорректные данные, в самый ответственный момент колонна перейдет на другой режим работы.
Еще совет насчет DS, не знаю может скажу прописную истину но опрашивать их чаще чем раз в секунду нет смысла. Советую сначала рассчитывать значения температур, а спустя полторы-две секунды их снимать и снова команда на расчет значений. Избежишь половины глюков, правда будет запоздание на две секунды но это не критично.
Насчет регулятора смотреть осциллом что на выходе, нет ли пропусков полупериодов.
Понимаешь в библиотеке прерывания запрещают, а тут ноль приходит, и вроде бы должно быть прерывание на запуск таймера, как думаешь что будет?
В итоге это все костыли.
PS неужели кроме I2C нет других средств для связи устройств?
woddy
Доцент
Новосиб
1.3K 489
Отв.413 01 Авг. 17, 13:25, через 12 мин
PS неужели кроме I2C нет других средств для связи устройств?sebra, 01 Авг. 17, 13:13а что можете предложить? чтоб несколько устройств на шину вешать?
мне кажется i2c самое простое и удобное
makh
Профессор
Sаmara
2.1K 1K
Отв.414 01 Авг. 17, 13:47, через 23 мин
I2C у Ардуино, не обойтись без сторонних библиотек в которых так же может быть noInterruptsTomat7, 01 Авг. 17, 10:21Если надо точно ловить ноль и дергать триаком, и при этом где-то там в I2C библиотеке запрещают прерывания, то надо работать с шиной с учетом этого факта. Шина быстрая, на ардуине по умолчанию 100 КГц, можно подковырнуть на 400 КГц. Между нулями 10 мс, интервал достаточный для неспешного осуществления трансакций.
Tomat7
Магистр
Черноморская губинния
236 138
Отв.415 01 Авг. 17, 13:58, через 11 мин
мне кажется i2c самое простое и удобноеwoddy, 01 Авг. 17, 13:25Согласен, в пределах одного прибора наверное лучше и не придумаешь. К тому же на Ардуино реализовано "условно-аппаратно".
Как только захочется вынести модули за пределы коробки, так... интернет пестрит разнообразием - у кого-то и на 20 метров заработало, а кто-то заявляет что 40 см максимум. ???
Кто-нибудь сам экспериментировал с длинной I2C? А то может я лишнего в интернете начитался и он потянет без танцев метров 5?
Насчет регулятора смотреть осциллом что на выходе, нет ли пропусков полупериодов.sebra, 01 Авг. 17, 13:13Смотрел минут 5 с перерывами и под нагрузкой - ничего подозрительного не увидел. По крайней мере пропусков/пролётов полупериодов не заметил.
Смотри на показания датчиков температуры. Могут вполне выскочить некорректные данные, в самый ответственный момент колонна перейдет на другой режим работы.sebra, 01 Авг. 17, 13:13Угу, я уже допилил слив данных в mySQL чтобы потом разбирать.
Еще есть идея по онлайн мониторингу. ::)
makh
Профессор
Sаmara
2.1K 1K
Отв.416 01 Авг. 17, 14:07, через 10 мин
Tomat7, градусники (ADT7410) и манометр (самопал) подключаю двухметровыми концами витухи. По началу старался делать чем короче концы, потом расслабился. Но насчет пяти метров хз, эт пробовать надо.
sebra
Куратор
Республика Коми
147 85
Отв.417 01 Авг. 17, 14:51, через 45 мин
а что можете предложить? чтоб несколько устройств на шину вешать?woddy, 01 Авг. 17, 13:25
Честно говоря даже не скажу, пока нет необходимости вешать гирлянду, автоматика и блок регулятора в паре нормально отрабатывают. Если сделаю температурную ардуино то посажу на второй serial порт у меги. Ну так, навскидку.
woddy
Доцент
Новосиб
1.3K 489
Отв.418 01 Авг. 17, 15:33, через 43 мин
Как только захочется вынести модули за пределы коробки, так...Tomat7, 01 Авг. 17, 13:58разумеется. это в даташите на i2c написано. за пределами коробки - can или modbus или usb.
AlexDol
Кандидат наук
Екатеринбург
325 433
Отв.419 01 Авг. 17, 16:00, через 27 мин
Кто-нибудь сам экспериментировал с длинной I2C?
Да, по незнанию и не читая даташит подключил I2C дисплей кабелем UTP5.
Остатки от бухты, около 4 метров. Когда мне указали на то что с "квадратной"
шиной такой длинны дисплей работать не будет, я оставил "доступную автоматику"
на тестовый прогон пока не натикало 70 часов. Несколько перегонок браги и дистилляций
с этим кабелем прошли без сбоев.
Поскольку эта длинна для меня была избыточна и кабель UTP5 очень жесткий, то
заменил его на качественный мягкий трёхметровый кабель с двойным экраном от USB.
Тест в течении 44 часов прошел успешно. Позже пришел к выводу что мне важно
установить дисплей под нужным углом и на кабеле около 50 см. С тех пор и использую.
Да, по незнанию и не читая даташит подключил I2C дисплей кабелем UTP5.
Остатки от бухты, около 4 метров. Когда мне указали на то что с "квадратной"
шиной такой длинны дисплей работать не будет, я оставил "доступную автоматику"
на тестовый прогон пока не натикало 70 часов. Несколько перегонок браги и дистилляций
с этим кабелем прошли без сбоев.
Поскольку эта длинна для меня была избыточна и кабель UTP5 очень жесткий, то
заменил его на качественный мягкий трёхметровый кабель с двойным экраном от USB.
Тест в течении 44 часов прошел успешно. Позже пришел к выводу что мне важно
установить дисплей под нужным углом и на кабеле около 50 см. С тех пор и использую.