Перейти к содержанию

El-Shang

Members
  • Постов

    209
  • Зарегистрирован

  • Посещение

Весь контент El-Shang

  1. Запомнить - нет. Но если расщепить сигнал на два части и одну из них направить в линию задержки, то можно будет получить хоть фазу "вперед", хоть фазу "назад", смотря относительно какого выхода наблюдать. Самая примитивная линия задержки - банальный кусок "провода", посложнее - всякие там линии на ПАВ (Поверхностных Акустичеких Волнах) или на чем-то еще более изощренном. Все зависит от только от требований данного конкретного приложения.
  2. А чему там гореть? Если его показания в этом режиме похожи на правду, то единственная опасность, которая ему угрожает — это перегрев шунта. А этот самый перегрев либо: приведет к "уплыванию" показаний вследствие изменения сопротивления шунта, температурный коэффициент-то таки ненулевой; в очень крайнем случае, если прямо уж совсем превратится в печку, то может, конечно, даже самопроизвольно выпаяться; Так что включите его на секунд тридцать - минуту, проверьте температуру и все сразу поймете. UPD Не, с минутой погорячился. И даже с тридцатью секундами. Секунд на 10-20.
  3. Вариант. Только придется заморочиться с поисками подходящего материала, а потом с калибровкой. Но если есть второй такой же амперметр, то можно просто включить его паралльно, а показания сложить.
  4. Встречал нечто похожее как-то. Правда, в формате вольтметр+амперметр в одном корпусе. Вольтметр был заявлен до 50-ти вольт, амперметр - до 10-ти ампер. На практике последний показывал, если я не ошибаюсь, вплоть до 12-ти. Выше не проверял, ибо источник не давал. Так что определенный запас по диапазону там наверняка имеет место быть, и стоит проверть, может он и так вытянет 20-ку. Чем черт не шутит. А вот вариант с внешним шунтом может и не сработать как надо. Не факт, что встроенный выдает стандартные 75мв на 10-ти амерах и тогда показания на дисплее придется умножать на какой-то дикий коэффициент, а не просто на два.
  5. Ну так это совсем не сложно. :-) От какого источника питания Вы намереваетесь питать изделие? И какое количество светодиодов на Ваш взгляд необходимо? Ну или каков объем искомого "черепа"?
  6. Да, ляпнул неподумавши. :-) Засчитано. Мне неведомо, профессиональный ли Вы электронщик, любитель или просто волею случая вынуждены заниматься решением несвойственных Вам задач. Эти аппроксимации в том или ином виде преподаются в электротехнических ВУЗах (хотя, зачастую, в шибко уж академичной форме), также частенько встречаются в статьях в Сети, в частности, посвященных диаграммам Боде (устойчивости систем с обратной связью). Оттуда-то я их и слизал. Довольно полезная штука оказалась, даже если отбросить ее изначальное назначение.
  7. @si4karuk, там вроде там нет никакой черной магии или тригонометрии (сам не шибко силен в оных). Хотя мне не известен уровень Вашей подготовки, так что прошу прощения, если ввел в заблуждение. ШИМ там вполне катит, только нужно учитывать его природу и огрничения, как и в любом другом случае. Но если все предложенные варианты Вам кажутся сложными, то можно дать копоти. ];-> Взять модельный сервопривод и насадить на его вал переменный резистор. Программа управления простейшая, гальваноизоляция абсолютная, проще вот прямо совсем некуда. :-D
  8. @Yurkin2015, сугубо дело вкуса. :-) Мне, как какому-никаком софтовику, не с руки иметь компоненты в системе, на которые я не могу повлиять.
  9. Очень негибкий способ, однако. Время заряда не регулируемо, время разряда тоже. Только сменой компонентов. Не есьм торт. А по поводу ШИМа и фильтра могу предложить следующий способ расчета/оценки его характеристик. В первом приближении АЧХ одноплюсного RC фильтра аппроксимируется двумя прямыми — параллельной оси частот до частоты среза (коэффициент передачи 1) и линейно спадающим с крутизной 20дБ на декаду после. Более наглядно можете посмотреть здесь. Используя эту зависимость Вы можете грубо оценить, какой должны быть частота среза фильтра, чтобы удовлетворить вашим требованиям. Они, по моему скромному мнению, определяются уровнем допустимых пульсаций на выходе вашего источника питания. А они в свою очередь напрямую зависят от уровня пульсаций на конденсаторе C2 в схеме, которую Вам предложили, а именно будут умножены в K = 100К / 750 = 133,333 раз. Положим, уровень пульсаций не должен превышать Voutrip=1 Вольт. В таком случае уровень пульсаций на конденсаторе C2 должен быть Vc2rip= 1 / K = 7.52 мВ (пик-пик). Довольно круто, но осуществимо. Пульсации на конденсаторе C2 обусловлены ШИМ сигналом поступающим на фильтр 3К - С2 и их гармонический состав зависит как от несущей частоты ШИМ'а, так и от его скважности, но для упрощения мы можем ориентироваться на первую гармонику, которая имеет максимальное значение при скважности ШИМ равной 50%. Значит именно ее амплитуду мы должны подавить до 7.52 мВ, рассчитанных ранее. Оценим ее. Тут память мне может изменять, а детально в ней ковыряться и/или выуживать в книгах и статьях формулы у меня нет времени, так что воспользуемся всемогущим гуглом и взглянем вот сюда. Там утверждается, что амплитуда первой гармоники прямоугольного сигнала рассчитывается по формуле A1 = (2 / pi) * A, где А — амплитуда, собственно самого прямоугольника (в нашем случае пик-пик). Положим, что ваш ШИМ генерируется микроконтроллером с напряжением питания 3.3 Вольта, тогда и ШИМ будет изменяться в диапазоне 0 - 3.3В, что и соответствует искомому A. Тогда амплитуда первой для такого ШИМ сигнала скважностью 50% равна A1 = (2 / pi) * 3.3 = 2.1 Вольта. Подсчитаем теперь во сколько раз нам нужно его ослабить фильтром 3К - С2, чтобы на конденсаторе C2 пульсации не превышали Vc2rip = 7.52 мВ. Кs= A1 / Vc2rip = 279.37 раз (48.9 дБ). Из этого можем определить, какой должна быть частота среза фильтра. В первом параграфе я написал, что крутизна спада АЧХ RC фильтра равна 20 дБ на декаду (иными словами уменьшается в 10 раз). Подсчитаем, сколько таких "десятков" необходимо для нашего Кs (пусть будет условно N). N = Ks /20 = 2.44. На пальцах это означает, что частота среза нашего фильтра должна быть в 2.44 * 10 раз ниже, чем несущая частота ШИМ. Частоту ШИМ задаете собственно Вы, из этого и считаете RC. Ну или зная RC считаете частоту ШИМ. Как удобнее. Время реакции такого преобразователя ШИМ - аналоговая величина будет составлять порядка 10-20 постоянных времени рассчитанного Вами фильтра. Из этого сможете сделать выводы о его, так сказать, "производительности". Вот как-то так. Но я мог ошибиться, писал по памяти и без доступа к симулятору, так что имейте ввиду.
  10. Если у Вас отсутствует четкое представление о принципах работы импульсных источниках питания, то я бы не советовал там ковыряться. У порогового элемента должна быть точка срабатывания, а значит для его испытания достаточно плясать вокруг нее в некотором диапазоне, определяемым гистерезисом искомого, не так ли? Допустим, он должен переключить свое состояние при напряжении 100В его гистерезис равен 5В. Тогда ваш источник питания должен 10 раз в секунду перестроится в диапазоне 90 - 110. Или есть какие-то иные входные данные?
  11. Как часто Вы намереваетесь перестраивать выходное напряжение? Раз в секунду? Десять раз в секунду? Раз в минуту?
  12. Ну, надо знать хотя-бы навскидку, как часто и в каком диапазоне Вы хотите име управлять. Худший случай — перестройка от минимального значения до максимального (если не ошибаюсь, то обычно это от 10% до 90% от рабочего диапазона). Поможет также если Вы укажете вид нагрузки.
  13. Принципиально работать будет. Однако автор не указал каким быстродействием (временем отклика) должен обладать его источник питания. Классическая имплементация преобразователя ШИМ - аналоговая величина с однополюсным НЧ фильтром дает на выходе либо относительно большой уровень пульсаций при приемлемом времени отклика и наоборот. Преодолеть этот недостаток можно или использование многополюсных НЧ фильтров, или применением специализированных микросхем, или комбинированием R2R ЦАП с низкой разрядностью и ШИМ. Так что если диапазон регулирования не очень широк, то несколько реле могут оказаться более предпочтительным решением.
  14. А это как посмотреть. Мой бывший коллега реализовал на его основе систему управления SRM - двигателем (это разновидность бесколлекторных электромоторов) в составе молочного сепаратора. Управляемый разгон, защита, стабилизация скорости - полный фарш. Программа заняла, если не ошибаюсь 95-98% свободного места. Правда, написана была на ассемблере, едва-ли на Сях получилось бы туда все вписать (ну, у меня не вышло ). Снимаю перед его мастерством шляпу. Тоже своего рода религия. Чуть что — так нафиг восьмитки, давайте нам 32-х разрядные армы. И неважно, что у них чудовищная производительность, которая просто не нужна в любительских проектах (да и не во всех профессиональных тоже, но там еще другие факторы оказывают влияние). Неважно что их невероятная гибкость достигается усложнением конфигурирования (сравните, что нужно сделать для того, чтобы запустить кварцевый генератор в AVR и STM32). Неважно, что для четкого понимания их внутренностей надо перелопатить десятки и сотни страниц документации. Главное, что это круто. И точка. Я Вас уверяю, если Вы поймете, как работает самый простой восьмибитный контроллер, то с легкостью перенесете и дополните эти знания на его старших собратьях. Да и современные AVR-ы ушли далеко вперед в сравнении с классикой. У них давно на борту есть и цифроаналоговые преобразователи, и процессорно-независимая переферия и конфигурируемая логика и многое другое. Что правда, так это их меньшая распространненость и доступность, но у нас, на Украине, вполне можно заказать AtTiny214/414/814, в которых все это есть. В общем, учитесь, разбирайтесь и никого не слушайте. Выучите алфавит - научитесь читать что угодно. Дорогу осилит идущий. Успехов!
  15. Отнюдь. Я всего лишь имел ввиду, что автор до конца не выяснил первопричину своей проблемы и предпочел просто обойти ее. Это в ряде случаев вполне приемлимо, в тех-же одноразовых задачах. В конце-концов если оно работает и выполняет свою функцию, то что еще надо? Лишняя полировка также вредна как и безбожная халтура обмотанная синей изолентой. Кстати, заметка автору. Если Вы пишете на языке скетчей (не знаю, как он точно называется), то старайтесь по максимуму использовать уже готовые средства и не допускать мешанины из функций и регисторовых операций. Оберните последние в выделенную функцию с вменяемым именем. Оно и выглядеть и читаться будет гораздо приятней. Оффтоп. Что касается ардуины. Все эти бесконечные метания фекалий в ее сторону по моему мнению происходят либо от недопонимания ее целевого назначения либо из профессионального шовинизма, дескать, вон я какой крутой, пишу сразу в машинных кодах, а ардуинщики в своих скетчиках путаюся. Ха-ха-ха! Балбесы! Но. Давайте не будем забывать, что этот комплекс (а понимать ее надо именно как комбинацию языка, базы ("материнской платы") и переферийных модулей (шилдов) ) изначально разрабатывался как платформа для обучения студентов программированию "железа" и взаимодействию с "реальным" миром, и лишь опосля к ней подтянулись самодельщики и аматоры всех мастей. Получился эдакий "Basic" в мире низкоуровнего программирования, изрядно здавшего свои позиции в конце восьмидесятых - начале девяностых, когда начали уходит со сцены классические 8-ми и 16-ти битные компьютеры и начавшимся повальным переходом 32-х битных на операционную систему Windows, в коей прямой доступ к переферии в отличие от того-же DOS затруднен или вообще невозможен. И это уже не говоря о постепенном исчезновение класических портов, вроде LPT, Game Port, да и того-же RS-232, посредством которых можно было напрямую щелкать реле, зажигать лампочки, что-то читать и прочее. И вот эту нишу и заняла ардуино. Стандартные модули, простой в освоении язык (вспоминаем basic, ага), широченный набор модулей - бери и пользуйся. И не надо нырять в дебри регистровых модели, системы команд, организации памяти и прочее. В нише "быстренько что-то сбацать" ей равных нет. Что-же в этом плохого? Да и в профессиональной сфере она тоже бывает полезна. Практический пример. Вы - механик-конструктор. Вы разработали прототип какого-то устройства и вам надо провести первоначальные ресурсные испытания, скажем, покрутить двигатель 10 секунд в одну сторону, остановиться, потом покрутить 10 секунд в другую, паралельно запоминая количество циклов. Вы можете пойти в соседний отдел электроники (если он у вас есть) и поставить задачу тамошним парням. А они ее сделают, как только найдут время (если найдут). Или вы можете заказать в первом попавшемся магазине ардуину, шилд с LCD и кнопками и парочку модулей с реле. Потратить полдня, чтоб прикрутить это все к доске, соединить проводами, набросать скетч, который всем этим управляет и запустить. И какой-же вариант предпочтительней? В общем, ардуина всего-лишь инструмент, не более того. И этим инструментом можно пользоваться правильно, а можно нет. И считать глупцами тех, кто этот инструмент освоил (или осваивает) и использует по назначению - это как минимум некрасиво, а как максимум показывает Вашу собственную ограниченность.
  16. Эм, а Вы в каком даташите такую таблицу видите? В последней версии доступной на сайте микрочипа таблицы из раздела 9 заканчиваются на индексе 9-2... Да и сам раздел 9 про прерывания, а не про тактирование. Да пожалуйста. Все с чего-то начинают. Хвала в небесам в школах и в институтах еще не посылают сразу в учебники, как только у учащихся вопросы возникают. А то совсем худо было бы. Это странно, ибо говорит о том, что прерывание таймера выводит контроллер изо сна, а значит, что режим энергосбережения не "Power Down", а "IDLE" - это режим в котором останавливается только тактирование процессора и флеш-памяти, все остальное продолжает работат в штатном режиме. Как-то это не согласуется с тем что у Вас в коде написано. Надо смотреть в отладчике, что же на самом деле туда записывается, а то это догадки на кофейной гуще получаются. А вот Ваше решение есьм "костыль", коих нужно избегать всем приличным технарям (любителям тоже). Лучше разобраться в природе явления и в будущем подоходить к решению подобных проблем осознанно.
  17. Конечно. Но иногда хочется позанудствовать. Право, не знаю, где именно Вы это увидели. Таблица 6-5 в разделе 6.2.2 Calibrated Internal 4.8/9.6 MHz Oscillator говорит о "Start-up Time from Power-down" равном 6CK, т.е. 6-ти тактам. Но лично мне столь быстрый выход из глубокого сна кажется подозрительным. Но, повторюсь, я никогда не использовал столь экзотические режимы работы микроконтроллеров. Едва ли. Быстрая пробежка глазами по исходникам модуля, содержащего эту функцию, говорит о том, что в ее основе лежит таймер 0, по переполнению которого банально инкрементируется 8-ми байтная переменная. Никаких сторожевиков там нет да и быть не может. Как бы не плевалось профессиональное сообщество на ардуину, но ее создатели были далеко не глупцами и оставить такой "подводный камень" было бы просто непростительно с их стороны. Но что-то автор сей ветки куда-то запропастился. Может быть даже навсегда и мы никогда не узнаем, что же у него там приключилось на самом деле.
  18. Ну, я AVR'ы оставил в уже достаточно далеком прошлом, могу в чем-то и ошибаться, тем более в режимах энергопотребления (не доводилось мне работать с батарейными приложениями). Однако утверждение: как-бы не совсем верно. В штуках-то да, но при входе в режим "Power Down" производится остановка тактового генератора, соответственно при выходе из него он перезапускается. Время запуска задается во фьюзах и с виду опасений не внушает, так как составляет всего 6 тактов. Плюс еще 4 такта, заявленные для срабатывания прерывания. Вроде как и слезы, но я не уверен, что оно ведет себя именно так. Равно как я не доверяю измерениям автора, где он заявляет об 1 микроампере потребления. Надо больше вводных. Но вариант с неверным конфигурированием внешнего прерывания мне кажется наиболее вероятным. Для опровержения чей гипотезы авторо надо всего-ничего — сказать, при каких именно условиях он наблюдает указанное поведение. Или немного поэксперементировать, в конце-концов. Да, и еще одно надо учесть, что в режиме "Power Down" INT0 дететирует только низкий уровень.
  19. Не обращай внимания. :-) Я за этим форумом лет десять наблюдаю и едва только появляется элементарный вопрос от новичка или просто человека, который "не в теме", но ему надо решить одноразовую задачу, как его сразу перемешают с экскрементами, пошлют в книжку или порекомендуют Мастера (да-да, именно с большой буквы для пущей важности и самозначимости). Но это все лирика. Конкретно по твоей проблеме могу предположить следующее. Режим "сна" ты включаешь правильно. И в нем контроллер действительно будет находится до того момента, пока не возникнет внешние прерывание на линии INT0. Как ты и задумал. Но дело в том, что внешнее прерывание само по себе может быть сгенерировано несколькими событиями (а вот про них таки надо читать в соответствующем разделе даташита, раздел 9.2 External Interrupts), а именно: низкий уровень на линии; изменение уровня на линии; по нарастающему фронту; по спадающему фронту; Установка конкретного осуществляется в регистре MCUCR (биты ISC01 и ISC00), который у тебя в коде не упоминается. Думаю, что в нем содержится значение по-умолчанию, а именно нули. Это соответствует событию 1. Из кода и описания непонятно, какое именно значение у тебя по умолчанию на INT0. Мне кажеться, что как раз нуль. В таком случае контроллер у тебя после инструкции sleep_cpu() практически сразу же проснется и пойдет исполнять оставшуюся часть кода, затем вернется в начало loop опять погрузится в сон и вновь из него вывалится. И так до бесконечности. А разница в энергопотреблении с и без ControlDoor появляется за счет того, что: если последний отсутствует, то после пробуждения исполнение практически сразу же возвращается в начало loop, где вновь пытается уснуть; а если присутствует, то (точно не могу понять), исполнение или совсем зависает в ControlDoor или все-таки пробегает его до конца и вновь возвращается в начало loop; Я думаю, очевидно, что в последнем случае длительность "активной" фазы заведомо больше. За счет нее и возникает повышенное потребление. Понял, в чем оплошность и как ее исправить? :-)
  20. Ну так в приведенной Вами статье как раз и упоминается о проблеме джиттера. Причем автор приводит результаты измерений на очень коротком интервале времени, порядка единиц-десятков микросекунд, а это снижает достоверность, поскольку типичная частота переключений задач составляет порядка 1 КГц (1000 мс), а значит и измерения нужно проводить на интервале хотя-бы на порядок, а лучше на 2-3 больше. Так что прежде всего Вам нужно оценить, на сколько предсказуемо считываются пины, какова максимальная задержка/джиттер. Это даст Вам представление о максимальной частоте входного сигнала, который Вы сможете достоверно считать и обработать.
  21. Да хотя бы в том, чтобы убедиться, что на кольце энкодера все метки в порядке. В частности, в приведенной автором ссылке обращалось внимание на важность правильного соединения энкодера с валом, поскольку при биениях появляется риск затирания кольца об оптопары, что приводит к повреждению меток. Зная заявленную разрядность энкодера, и воспользовавшись выходом N (в терминологии материала по ссылке) можно подсчитать фактическое количество испульсов на оборот, а значит и оценить состояние кольца/исправность энкодера в целом. Это то, что сраз пришло в голову. Возможно, есть и другие сценарии. Другой вопрос, что для выполнения этой задачи хватит любого контроллера. Достаточно лишь завести выходы энкодера на счетный входы таймеров/счетчиков либо, если таковой есть в наличии, на вход готового аппаратного модуля инкрементального энкодера. Таковым располагают многие ARM'ы, в частности всеми любимые STM32. Как и зачем прикручивать сюда малину я, откровенно говоря, тоже не до конца понимаю. Разве что исходя из того, что автор знаком с этой платформой лучше, чем с чем либо еще. Но тогда ему надо понимать, что программный опрос или поллинг пинов на "гребенке" это, скажем так, несколько ненадежный подход, поскольку происходить он будет, в общем случае, с определенным джиттером вызванным работой ОСи. Но до определенной границы, конечно, работать будет.
  22. Massive Overkill. Это все равно что забивать гвозди не просто, а электронным микросокопом. Самый простой импульсный стабилизатор собирается на компараторе, одном полевике и индуктивности. Причем последняя вполне покупается в магазине и даже мотать ничего не надо.
  23. Ну, здесь присутствуют два варианта развития событий, так сказать: Вскрываем блок питания и ищем в нем токоограничетельную цепь, после чего меняем ее параметры таким образом, чтобы выполнялись Ваши требования. Самый простой вариант, но во-первых, требует определенных знаний в схемотехнике, во-вторых может получится так, что токоограничение будет встроено прямо внутрь контроллера блока, тогда изменить его уровень будет как минимум сложнее, если не невозможно вообще, ну и в-третьих черт его знает как этот китайский продукт себя поведет в таком режиме, все-же это источник напряжения, а не тока. Установить на выход Вашего блока питания отдельный стабилизатор тока. А вот какой именно - зависит от Ваших навыков и доступных материалов. И в конце, а аккумулятор-то сам точно 48-ми вольтовый? Просто если Вы так или иначе ограничите ток на выходе стабилизатора, то подключив к нему 12-ти вольтовый аккумулятор вы его не просто зарядите, а вскипятите (или как там это называется?). Напряжение-то выше 12-ти вольт не поднимется, и ток до самой смерти аккумулятора будет 5 или 3 ампера. :-)
  24. А каково целевое назначение сего "стабилизатора"? Свет? Зарядка аккумуляторов? Гальваника? Ответ на этот вопрос даст пищу, для рассуждение о возможных вариантах.
×
×
  • Создать...