Окт 082017
 

Балансные линейные передатчик и приемник аудиосигнала

Балансные драйвер и приемник линии — I

Род Эллиотт (ESP)
(Проект № 51)

Введение

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

С помощью данного простого проекта вы тоже сможете получить балансные линии, просто преобразуя несимметричные входы и выходы вашего Hi-Fi устройства в балансные, а затем обратно в небалансные на другом конце. Вы даже сможете схитрить и подключить к сигнальным кабелям удаленный источник питания. Профессионально это называется «Фантомным питанием» и используется для питания микрофонов и другого низковольтного оборудования. Показанная в данной статье версия на самом деле обеспечивает дифференциальное питание. Хотя она и не столь же хороша, как настоящая схема фантомного питания +48 В, но она работает и представляет собой интересный эксперимент (если не что-то иное).

Обратите внимание, что балансные межблочные соединения не звучат «лучше» традиционных небалансных соединений, если только шум не является проблемой, решаемой с помощью балансных линий. Балансные соединения полезны между отдельными блоками (например, предусилителем и усилителем мощности), если слышен гул. Однако, если гула нет, то пользы от них не будет. Нет необходимости использовать балансные соединения от источников плавающего сигнала, таких как микрофоны, однако, это обычная практика, потому что эти источники традиционно балансны, независимо от того, нужно это вам или нет.

Описание

Прежде чем мы начнем, кратко опишем стандартную (небалансную) и балансную линии. Небалансная линия — это та, которую вы применяете на Hi-Fi, используя обычно RCA-разъем и подавая сигнал через коаксиальный кабель. Внутренняя жила передает сигнал, а внешняя оплетка является экраном, предотвращающим попадание радиочастотных помех и общего сетевого фона на сигнальный провод.

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

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

В некоторых случаях можно отключить заземление на одном конце кабеля, а некоторые отключают также и заземление (безопасность!). Оба приема обеспечивают одинаковый результат, но отключение сетевого заземления чрезвычайно опасно. К сожалению, результат не всегда получается тот, на который можно было бы надеяться. ВЧ-помехи могут стать намного сильнее, а кроме них начинают проявляться и другие шумы, ранее отсутствовавшие.

Напротив, балансное соединение использует для сигнала два провода (подобно телефонной схеме), передающих сигналы, равные в каждом проводе по амплитуде, но противоположные по фазе. Удаленный балансный приемник воспринимает только сигнал с противоположными фазами, а любой сигнал, совпадающий по фазе (синфазный), подавляется. ВЧ-помехи и другие шумы будут одинаково восприняты обоими проводами кабеля и поэтому будут в совпадающей фазе (синфазны). Поэтому они будут подавлены приемником. Таким образом, можно иметь длинные межблочные соединения, причем экран заземлен только с одного конца. Это сокращает контур заземления, а балансное соединение гарантирует, что к усилителю (-ам) передается только необходимый сигнал.

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

Идея этого проекта состоит в том, чтобы предложить несколько вариантов и помочь в создании окончательного решения. Его нельзя рассматривать, как полное и окончательное решение само по себе. Есть много переменных факторов — слишком много, чтобы можно было с полной уверенностью сказать, что это СМОЖЕТ предотвратить гул и все другие помехи. Возможно, но вполне вероятно, что для получения желаемых результатов потребуются некоторые эксперименты.

Обратите внимание, что для передатчика и приемника важно использовать резисторы с точностью 1% (или даже лучше). Если для подстройки точного коэффициента усиления вы используете подстроечный резистор, то можно использовать резисторы даже с 5% точностью и тогда вы сможете отрегулировать схему для получения максимального подавления синфазной составляющей, однако, я всё-таки рекомендую использовать 1% металлопленочные резисторы. За небольшую дополнительную плату вы получаете гораздо более высокую стабильность и низкий уровень шума.

Балансный линейный передатчик
Рис. 1-1 Балансный линейный передатчик

Передатчик использует сдвоенный операционный усилитель, один из которых служит для буферизации сигнала, а другой — для буферизации и инвертирования. За счет этого создается балансный выходной сигнал, т.е. когда на одном выходе сигнал отклоняется в положительную сторону, то на другом он отклоняется на точно такую же величину в отрицательную сторону. Резисторы на 220 Ом на выходе обеспечивают стабильность с любой нагрузкой, а также используются для небольшого ослабления сигнала. Размах выходного сигнала от передатчика (по обоим проводам) составляет удвоенное напряжение входного сигнала.

Балансный линейный приемник
Рис. 1-2 Балансный линейный приемник

Приемник содержит дополнительный резистор (R0) на 3,3 кОм между входами, чтобы помочь сбалансировать входной сигнал вследствие незначительной неодинаковости сопротивлений между отдельными жилами кабеля. Конденсатор на 220 пФ предназначен для высокочастотной фильтрации и ослабления любых высокочастотных наводок на проводники кабеля. Любой синфазный сигнал, поступающий с обоих проводов на приемник, представляет собой сигнал одинаковой полярности; при этом шум обычно подавляется и остается только полезный сигнал.

Остальная часть схемы представляет собой традиционный балансный входной каскад. Эта конкретная конфигурация известна, в частности, тем, что относительно земли имеет неравные входные импедансы. Резистор на 3,3 кОм устраняет этот разбаланс (во всяком случае, уменьшает), а конденсатор на 220 пФ помогает на более высоких частотах. Можно было бы использовать и более сложную схему (известную как измерительный усилитель), но для этого потребовалось бы три операционных усилителя и для данной задачи она обеспечила бы несколько реальных преимуществ. Однако, что интересно и, возможно, неожиданно, но неравные импедансы не создают проблем в 99% случаев.

При выбранном значении конденсатора затухание сигнала составляет около 0,2 дБ на частоте 20 кГц. Если вам не нравится эта идея — уменьшите его номинал до 100 пФ. Так как 0,2 дБ обычно на слух незаметны, это кажется незначительной потерей, особенно, если схема используется, например, для сабвуфера с самостоятельным питанием. В этом случае даже есть положительный момент: если увеличить номинал до 10 нФ, это снизит полосу частот передаваемого сигнала до 1,9 кГц по уровню минус 3 дБ.

При показанных на схеме номиналах есть очень небольшой общий коэффициент усиления (передатчик + приемник), составляющий чуть менее 1,3 дБ. Это вряд ли будет проблемой. Схема предназначена для подачи максимального уровня сигнала на балансный кабель, а любое его ослабление должно осуществляться в приемнике. Такой прием снизит любой шум в полезной полосе частот. Если вам нужно изменить коэффициент усиления, необходимо одновременно изменить номиналы обоих резисторов R10 и R11 — они должны быть строго одинаковыми. Например, увеличение обоих до 15 кОм обеспечит общий коэффициент усиления 4,8 дБ, а уменьшение до 4,7 кОм даст общее усиление около минус 5,3 дБ.

Можно также обеспечить максимально возможное подавление синфазной составляющей за счет замены R10 подстроечным резистором. Я предлагаю использовать постоянный резистор на 8,2 кОм с последовательно включенным многооборотным подстроечным резистором на 5 кОм. Чтобы сбалансировать схему, вы просто применяете генератор и милливольтметр (или всего лишь батарейку АА и мультиметр, потому что приведенная схема работает по постоянному току). Когда она будет идеально сбалансирована, то напряжение на её выходе будет равно нулю (как по постоянному току, так и по переменному). Возможно, вы захотите еще больше ограничить диапазон изменения сопротивления подстроечного резистора, поскольку он очень чувствителен. С резисторами на 10 кОм, как показано, легко измеримо изменение сопротивления всего на 10 Ом. Подавление синфазной составляющей будет составлять около минус 68 дБ при неравенстве сопротивлений резисторов всего 10 Ом. Резисторы с точностью 1% могут иметь несовпадение номиналов до 100 Ом, поэтому очевидно, что сопротивление резистора является критичным фактором.

Если параллельно резистору R10 поставить резистор на 390 кОм, то тогда их общее сопротивление будет составлять 9,75 кОм и последовательно можно будет использовать многооборотный подстроечный резистор на 500 Ом. Суммарное изменение сопротивления теперь уменьшено до ± 250 Ом (± 2,5%), поэтому вы должны использовать 1% резисторы и предпочтительно согласовать их сопротивление с помощью мультиметра. Схема по-прежнему будет чувствительна и немного сложновата в настройке, но вы легко сможете получить коэффициент подавления синфазной составляющей до 80 дБ.

Соедините оба сигнальных входа вместе и подключите между ними и землей аккумулятор или аудиосигнал. Вращением оси подстроечного резистора добейтесь 0 В на выходе — сигнал синфазной составляющей теперь полностью подавлен. Как правило, без подстройки, как описано выше, эта схема обеспечит подавление синфазной составляющей около 40 дБ, но подстройка позволит вам значительно улучшить это значение. Теоретически подавление синфазной составляющей может быть бесконечным, но если сопротивления сбалансированы в пределах ± 1 Ом, можно ожидать 80 дБ или даже более. Я тестировал и проверял это с помощью операционного усилителя NE5532, и получал коэффициент подавления синфазной составляющей лучше 80 дБ, хотя и очень критично в настройке.

Хотя эта пара передатчиков и приемников, вероятно, позволит использовать неэкранированные межблочные соединения, я этого делать не рекомендую. Используйте высококачественный экранированный двойной микрофонный кабель. Обычно заземление экрана должно выполняться на конце приемника, но в некоторых случаях вы можете обнаружить, что подавление шума лучше, если заземлен конец передатчика. Необходимо экспериментирование и нередко будут заземлены оба конца. Есть один, нередко хорошо работающий, трюк — это подключить «плавающий» конец экрана к земле с помощью многослойного керамического конденсатора на 100 пФ.

Дифференциальное питание (для экспериментатора)

Этот блок можно использовать с сигнальными проводниками, по которым также передается и питание для приемника. Мы можем использовать обычное фантомное питание (с использованием источника 48 В), но легче применить дифференциальное питание с напряжениями на сигнальных проводах + Ve и – Ve. Основная схема показана на Рис. 1-3. Она может пригодиться для снижения подавления синфазной составляющей и очень важно, чтобы источник питания было полностью бесшумным, иначе оно станет частью сигнала! При апробации этого метода используйте опцию подстройки, чтобы можно было обслуживать резисторы, через которые на сигнальные проводники поступает питание. Балансировка с помощью батареи будет невозможной и потребуется использовать генератор сигналов — с разделительными конденсаторами по каждой сигнальной линии.

В этой конфигурации резистор R0 должен быть удален. Я настоятельно рекомендую, чтобы выходной соединительный конденсатор использовался с выхода Out приемника, так как вполне вероятно, что из-за токов утечки конденсатора произойдет некоторое смещение потенциала постоянного тока.

Дифференциальное питание
Рис. 1-3 Дифференциальное питание

Эта технология уменьшает напряжение на операционном усилителе приемника, а также уменьшает максимальный уровень сигнала. Определить точные потери мощности и максимальный уровень сигнала вы сможете, только экспериментируя. Те тесты, которые я провел, показывают, что не следует ожидать больше, чем около 1 В RMS, но вы можете получить и больше, в зависимости от типа операционного усилителя, используемого в приемнике. Резисторы питания также нагружают передатчик и несколько уменьшают его выходную мощность. Для управления схемой из-за низкоимпедансной нагрузки вам придется использовать операционные усилители NE5532 или OPA2134. Каждый операционный усилитель передатчика имеет эффективную нагрузку менее 750 Ом.

Возможно, вы захотите также поэкспериментировать с маломощным операционным усилителем в качестве приемника, поскольку это позволит обеспечить более высокое напряжение питания и большую амплитуду сигнала до уровня возникновения искажений. Как показано на схеме, выходное напряжение предполагает нагрузку 3 мА. Я настоятельно рекомендую не использовать TL072 для приемника, поскольку они не любят низкого напряжения и источник может легко перегрузить входы. Все операционные усилители серии TL0xx имеют инверсию выходной полярности, если превышен предел синфазного напряжения.

Обратите внимание, что значение номиналов резисторов 1,5 кОм столь же критично, как и в обвязке операционных усилителей. Они должны иметь точность 0,1% или даже лучше, иначе подавление синфазной составляющей будет скомпрометировано.

В этой конфигурации экран должен быть подключен с каждого конца, но один его конец может быть заземлен с использованием резистора 10 Ом, который следует шунтировать конденсатором 100 нФ. Опять же, необходимо провести эксперименты, чтобы определить, какой конец должен иметь «твердую» землю. Убедитесь, что разъемы поляризованы так, чтобы питание невозможно было подключить неправильно. При необходимости, для обеспечения защиты от обратной полярности, могут быть добавлены диоды. Они должны стоять параллельно конденсаторам фильтров приемника (C + Ve и C – Ve), поскольку последовательное соединение еще больше уменьшит напряжение (и так не очень большое с самого начала, поэтому его дальнейшее снижение было бы нецелесообразным).

Общая АЧХ дифференциального питания и обеих схем
Рис. 1-4 Общая АЧХ дифференциального питания и обеих схем

На графике АЧХ показан измеренный частотный отклик дифференциальной линии с балансным линейным драйвером (Рис. 1-1) и приемником (Рис. 1-2). Отклонение сигнала составляет минус 1 дБ на частотах 10 Гц и 30 кГц, что весьма неплохо, учитывая общую простоту схем.

Я бы предполагал, что наиболее вероятным применением этой схемы будет использование её для удаленного сабвуфера, в котором может быть очень неудобно располагать дополнительный источник питания. Я не могу сказать, что полностью доволен её конструкцией, но она действительно работает. Фантомное питание на +48 В было бы лучше, но вряд ли слишком многие конструкторы захотят этим заморачиваться.

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

Балансные передатчик и приемник — II

Род Эллиотт (ESP) / Уве Бейс

Обновлено 01 апреля 2002 г.

(Проект № 87)

Введение

Данная статья является, в сущности, обновлением статьи, приведенной выше, по этому вопросу и включает в себя некоторые идеи с целью стимулирования дальнейших мыслей в данном направлении. Это особенно касается последнего подраздела («Hey! That’s Cheating») — все жаждут, чтобы балансные выходы были бесплатными и вы можете сделать это (ну, в любом случае, достаточно близко приблизиться к низкой стоимости).

Балансный передатчик и приемник, описанные в Проекте 51, работают очень хорошо, но в сложных условиях они оба недостаточно оптимальны. Уве написал статью (опубликованную на Audio Pages), в которой описывается активный балансный передатчик, имеющий параметры, почти равные трансформатору. Существуют интегральные микросхемы, которые делают (почти) то же самое, по принципу обратной связи для выравнивания уровней от каждого операционного усилителя передатчика.

Несмотря на то, что Уве пошел на существенные усложнения, чтобы его схема максимально соответствовала трансформатору, она недостаточно проста, чтобы хорошо работать и, кроме того, требует резисторов 0,1% точности и широкополосных операционных усилителей.

Загляните на сайт ESP в «методику упрощения», которую я стараюсь использовать везде, где могу. В результате получается передатчик (в частности), который очень хорош и вполне приемлемо соответствует параметрам трансформатора. Он не идеален, но стабилен и не требует никаких корректировок или точного подбора компонентов (резисторы с точностью 1% обеспечат погрешность отклонений и баланса в стандартном режиме максимум 1/100 или 40 дБ).

Использование резисторов с более точным допуском сопротивления и хороших или даже высокоточных операционных усилителей даст схему с отличными параметрами, которая будет очень близка к схеме симметричного трансформатора, но без его соответствующей цены. АЧХ выходного сигнала плоская, по крайней мере, до 50 кГц, распространяющаяся в диапазоне низких частот до постоянного тока (как показано). Если необходимо, для ограничения низкочастотного диапазона могут быть использованы конденсаторы.

P87A — приемник Mk II

Схема приемника приведена на Рис. 2-1 и, как показано, не имеет никакой защиты от радиочастотных помех. Эта конфигурация несколько лучше, чем показанная в оригинальной статье (выше) и обеспечивает точно равное полное сопротивление каждой из балансных линий в кабеле. Это относится также и к оригинальной версии, но лишь в том случае, если источник сигнала также балансный.

Активный балансный приемник
Рис. 2-1 Активный балансный приемник

Резистор с маркировкой «*» (R7) может быть исключен, тогда схема будет иметь коэффициент усиления, равный 2. Установка этого резистора увеличит коэффициент усиления, но не повлияет на входные импедансы или характеристики баланса. Минимальный коэффициент усиления для этой схемы равен 1,5 (если R6 и R7 исключены) и увеличивается до 2 при установке R6. Если R6 убрать, то резистор R7 настройки усиления по-прежнему работает, причем, с номиналом 10 кОм обеспечивает коэффициент усиления 3,5, а с номиналом 1 кОм — 21 (26 дБ).

ЦоколевкаПоказана стандартная цоколевка сдвоенного операционного усилителя (вид сверху). Всегда следует использовать шунтирующий конденсатор (обычно керамический или полиэфирный на 100 нФ), установленный между выводами 4 и 8, как можно ближе к каждой корпусу операционных усилителей. Рекомендуется всегда ставить шунтирующий конденсатор для предотвращения возможного высокочастотного самовозбуждения даже при использовании «медленных» операционных усилителей. На всех приведенных схемах показаны сдвоенные операционные усилители. На вывод 4 подается напряжение питания отрицательной полярности, на вывод 8 — положительной. Напряжение питания должно быть между ±9 В и ±15 В, хотя некоторые операционные усилители могут удовлетворительно работать при напряжении питания до ±5 В.

Точно такую же схему, как показанную в исходном проекте, можно использовать и для входов данной версии. Одно из возможных соединений показано на Рис. 2-2. Оно практически идентично конфигурации, приведенной в Проекте 51, и обеспечит очень высокий уровень шумоподавления.

Цепь дополнительного входного фильтра для приемника
Рис. 2-2 Цепь дополнительного входного фильтра для приемника

Все еще остаются необходимыми резисторы на 10 кОм (R1 и R2) на землю; эта цепь уменьшит коэффициент усиления чуть более, чем на 7 дБ. Для меньшего затухания используйте резисторы меньшего значения, но помните, что по мере уменьшения ослабления, уменьшается также и помехоустойчивость. Самым низким номиналом резисторов, которое я бы рекомендовал, будет 1 кОм, они вызовут минимальное ослабление (около 1,6 дБ). C1 может быть увеличен, если это необходимо, но если его номинал будет слишком высоким, это может вызвать снижение полосы частот источника сигнала.

Обратите внимание, что эта цепь не входит в состав печатной платы, потому что, если она будет использоваться, то ее следует установить непосредственно на разъем XLR. В идеале, если ожидается очень шумная среда, разъем XLR и фильтры будут в защищенном корпусе.

Передатчик Mk II (Идеальная версия)

Этот передатчик намного сложнее, чем версия Проекта 51, но это цена, которую вы платите за более высокие параметры. Вход небалансный и имеет входное сопротивление, равное 11 кОм. Он должен быть подключен к источнику с низким импедансом (например, выходу операционного усилителя), или же параметры ухудшатся.

При показанных на схеме номиналах компонентов коэффициент усиления равен 6 дБ при измерении от входа до между выходами + Out и – Out. В этой версии резисторы R13 и R14 не являются абсолютно необходимыми, но желательными. Они обеспечивают баланс выходной цепи и предотвращают возможность «запирания», когда выходы застревают на потенциалах питающих напряжений. При показанных номиналах такая ситуация весьма маловероятна, но предосторожность стоит очень незначительных усилий.

Активный балансный передатчик
Рис. 2-3 Активный балансный передатчик

Если какой-либо из выходов будет закорочен на землю при подключении к несимметричному входу, выходное напряжение станет всего на 0,4 дБ меньше, чем при работе в полностью балансном режиме. При заземлении одного из выходов исключается обратная связь к другому операционному усилителю, поэтому он обеспечивает (почти) полный размах, доступный обычно между выходами обоих операционных усилителей. Так работает трансформатор (без отвода от средней точки), поэтому поведение этой схемы намного ближе к характеристике трансформатора, чем «стандартная» балансная выходная схема.

Стоит отметить, что я видел вариант схемы по Рис. 2-3 (применявшийся в коммерческом продукте), без входного инвертора. Это приводит к тому, что на выходе выходной сигнал имел значительную синфазную составляющую (по фазе) и, фактически, это резко портит ее характеристики. Я понятия не имею, почему кто-то посчитал, что удастся избежать упрощения и как это было пропущено во время тестирования. Входной инвертор (U1A) абсолютно необходим, в противном случае схема хуже, чем бесполезна… в буквальном смысле.

1 апреля 2002 г. — Я протестировал приведенную выше схему с использованием сдвоенных операционных усилителей 1458 и 5% резисторов. Если схема собрана верно и не демонстрирует вредных привычек с самыми обычными операционными усилителями (в основном, сдвоенными 741) и обычными углеродными резисторами, то я точно знаю, что она будет работать при использовании лучших компонентов (см. Примечание ниже). Действительно, моя тестовая версия стабильна и на удивление точна, несмотря на низкие параметры деталей, используемых для проверки её работы. Поскольку перекрещенные обратные связи меньше оптимального значения (в силу того, что R7 и R9 в 1,2 раза превышают «правильное» значение, то есть, 39 кОм, а не 33 кОм), общая стабильность и частотная характеристика намного меньше зависят от значений компонентов и качества операционных усилителей. Я смог проверить, что даже с использованием операционных усилителей типа 741, спад АЧХ составил меньше 1 дБ на частоте 75 кГц.

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

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

Итак, если эта «идеализированная» схема настолько хороша (по крайней мере, теоретически), почему ее не используют более широко? Секретное слово здесь «теория». Хотя схема, безусловно, довольно хорошо себя ведет (как подтверждают мои тесты), она относительно сложна и, все-таки, не обеспечивает гальванической изоляции. Её единственным реальным преимуществом является то, что не меняется уровень сигнала при подключении к небалансному входу, но это всего лишь минимальное реальное преимущество. Она будет эмулировать трансформатор, если выходной импеданс будет фактически бесконечным для одного или другого выхода (относительно земли), но это не тот случай.

Следовательно, у вас есть значительное количество прецизионных резисторов, которые на самом деле не создадут схему, в любом случае правильно эмулирующую трансформатор. Это означает, что главная причина, по которой вы создали схему, не достигнута, поэтому нет оснований для ее сохранения. Если вам нужна гальваническая изоляция — вам нужен трансформатор, и никаких иных способов не существует. Следовательно, P87B (показано далее) является «традиционной» схемой.

P87B — Версия для печатных плат

Ниже приведена принципиальная схема версии для печатной платы. Попыток эмулировать трансформатор нет, потому что схема, показанная на Рис. 2-3, просто недостаточно стабильна с обычными кабелями (которые представляют собой емкостную нагрузку) и слишком сложна для использования.

PCB версия активного балансного передатчика
Рис. 2-3A PCB версия активного балансного передатчика

Как можно видеть, эта схема гораздо прямолинейнее, чем «идеализированная» версия, показанная на Рис. 2-3. Показан только один канал, второй использует вторую половину каждого сдвоенного операционного усилителя. Хотя эту схему можно рассматривать, как довольно серьезный компромисс, она соответствует почти всем коммерческим продуктам, предлагающим балансный линейный выход. Она также имеет то преимущество, что идеально подходит в качестве адаптера мостового усилителя мощности.

Советы по изготовлению

Для схем передатчика и приемника требуются точные резисторы с отклонением сопротивления не более 1%, иначе подавление синфазной составляющей будет неприемлемым. Даже с использованием резисторов с 1%-ным допуском наихудшее подавление синфазной составляющей составит всего лишь 40 дБ и, если вы сможете использовать свой мультиметр для подбора резисторов с более близким допуском, это улучшит параметры.

Хотя передатчик и приемник показаны (в основном) с резисторами номиналами 33 кОм и 10 кОм, соответственно, при необходимости они могут быть изменены. Можно использовать любые значения от 10 кОм до 100 кОм, но помните, что более высокие сопротивления резисторов создают больше тепловых шумов. Номиналы R7 и R9 на Рис. 2-3 передатчика примерно в 1,2 раза больше других резисторов — следующее значение вверх в ряду E12. Например, если вы повсюду решили использовать резисторы 22 кОм, то R7 и R9 будут иметь номинал 27 кОм. Также помните, что входной импеданс передатчика составляет 1/3 от используемого значения резистора. Таким образом, резисторы по 10 кОм будут обеспечивать входное сопротивление около 3 кОм.

Как показано на Рис. 2-3A, передатчик имеет входное сопротивление 10 кОм, (R102), но оно при необходимости может быть увеличено.

Обе схемы требуют балансного питания ± 12 В или ± 15 В (Проект 05 или аналогичный источник питания) и он должен быть свободен от шумов. Для некоторых операционных усилителей будут достаточными более низкие напряжения, поэтому проверьте техническое описание на них. Удостоверьтесь, что между шинами питания, как можно ближе к выводам питания операционных усилителей, размещены керамические конденсаторы по 100 нФ. Это особенно важно, если вы используете высокоскоростные операционные усилители.

Естественно, я рекомендую использовать имеющиеся у меня печатные платы (проекты 87A и 87B — см. Прайс-лист ESP). Они полностью протестированы, были успешно повторены многими конструкторами и, как известно, работают точно так, как описано.

Привет! Это жульничество

Наконец, для тех, кто хочет иметь действительно простой и дешевый балансный выход, попробуйте схему, показанную на Рис. 2-4. Теперь взгляните на нее снова — она совсем не балансная… не так ли?

Возможный простейший балансный выход
Рис. 2-4 Возможный простейший балансный выход

Теперь, прежде чем вы все испугаетесь, давайте посмотрим, что происходит. Основной трюк с балансной схемой заключается в том, что приемник должен «видеть» одинаковый импеданс на каждом из входов. На самом деле это не очень важно, если есть сигнал на любом или обоих проводах (действительно, это просто ожидание с нашей стороны), но даже если желаемый сигнал находится только на одном проводе, любой индуцированный шум по-прежнему будет синфазным и будет, по-прежнему, находиться в одной фазе по обоим проводам. Шум подавляется в любом случае, а сигнал усиливается, чего мы того и желаем.

Да, это обман, но он работает. По-видимому, этот трюк используется в некоторых бюджетных концертных микшерах, а также в некоторых очень хорошо известных фантомных микрофонах (хотя, насколько я знаю, они не используют цепь Цобеля R4C1 — она, кстати, необязательна). Сигнал меньшей амплитуды, чем можно было бы ожидать (большинство балансных схем передатчиков имеют эффективный коэффициент усиления + 6 дБ), но это, как правило, не является проблемой. В случае микрофона сигнал такой же, как и в любом случае и с линейным выходом достичь дополнительного усиления 6 дБ обычно не является проблемой. Усилитель, как показано на Рис. 2-4, требует только двух резисторов по 10 кОм в обратной связи (10 кОм от выхода до неинвертирующего входа –Ve (т.е. НЕ вывода –Ve питания) и 10 кОм от неинвертирующего входа –Ve на землю.

В большинстве случаев эта схема будет работать так же хорошо, как и истинная балансная выходная цепь, по той простой причине, что все-таки является истинной балансной схемой. С точки зрения балансной входной схемы (приемника) эта компоновка обеспечивает точно такое же качество сигнала, как если бы схема была полностью (по сигналу) балансной, кроме того, что сигнал имеет размах –6 дБ по сравнению со схемой с действительно балансным выходом, что редко вызывает какие-либо ограничения. Хотя для балансирующей цепи показаны резисторы на 150 Ом, они могут быть изменены, если это необходимо (я предлагаю хотя бы минимум 100 Ом). Обычно я ожидаю, что показанные значения подойдут практически для всех применений (эффективное выходное сопротивление составляет 300 Ом).

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

Предостережения — выходной импеданс операционного усилителя должен иметь плоскую АЧХ до достаточно высокой частоты, что не часто наблюдается у «дешевых и жизнерадостных» устройств. Я предлагаю использовать высокоточный операционный усилитель для обеспечения низкого выходного импеданса даже на самых высоких частотах. Необязательная цепь Цобеля поможет обеспечить правильную балансировку линии на всех частотах, включая радиочастоты, но не может гарантировать идеальные результаты с помощью любого операционного усилителя. Очень хорошим выбором является освященный временем NE5534 (или сдвоенный NE5532). Эти операционные усилители по-прежнему популярны по очень веской причине — у них отличные характеристики. Здесь столь же важна, как и для любой из более сложных версий, точность номиналов резисторов. Минимально допустимым допуском является 1%.

Во всех симметричных интерфейсах учитывается баланс импеданса. Не существует (и никогда не было) требований к балансу сигнала. Не имеет значения, являются ли уровни сигнала одинаковыми или радикально отличающимися (включая одну линию без сигнала вообще). Напротив, несоответствия импеданса на всего лишь несколько Ом достаточно, чтобы резко снизить коэффициент подавления синфазной составляющей.

Вдохновение

Эта новая проектная статья была вдохновлена Уве Бейсом и на страницах сайта опубликована его статья о (почти) идеальном балансном передатчике. Хотя материал здесь несколько «не соответствует теме» его подхода, вдохновение экспериментировать и попробовать различные методы пришло с его подачи. Я рекомендую прочитать полную статью, так как она очень хорошо объясняет работу балансного передатчика, показанного на Рис. 2-3 и даст вам представление о приверженности некоторых людей (в данном случае, Уве) к продвижению их понимания аналоговой электроники.

Скан профиля поверхности

 Arduino  Комментарии к записи Скан профиля поверхности отключены
Сен 032017
 

Для обрезки платы используется фреза «кукуруза» диаметром 2…3мм, лучше 2. Не так много опилок и нагрузка на станок меньше.

Плата просто приклеивается к жертвенному столу скотчем. Кстати, стол можно сфрезеровать под ноль, тогда все огрехи геометрии станка по крайней мере будут повторять форму подложки, что позволит повысить точность. Но я этого делать не стал, хотя у меня расхождение между углами составляет около миллиметра. Просто к гладкой ламинированной МДФ панели лучше клеится текстолит и при удалении скотч отрывается сразу полностью, не размазываясь по волокнистой структуре МДФ. Разница как… отрывать скотч от лакированного стола или от картонной коробки. Коробка срывается с мясом. Тут так же почти. Потому не фрезерую.

▌Сканирующий софт
Чтобы компенсировать кривизну стола, а у меня она особо кривая, я провожу сканирование поверхности, строя карту высот. Сначала надо подготовить карту высот:

Вообще в Mach3 есть свой визард для этой цели. Искать в меню Wizard-Pick Wizard…-Digitize Wizard, откроется вот такая хреновина:

Где можно указать размер общупываемой поверхности (Width и Height of area), безопасную высоту перемещения щупа (Z travel), глубину до которой щуп будет искать поверхность (Z Axis Probe Depth). Stepover это шаг по осям, а FeedRateскорость с которой щуп пойдет до поверхности. Чем быстрей тем быстрей сканирование, но по инерции он может попасть чуть глубже чем надо. Поэтому тут надо ловить баланс. Потом жмете Create and Load Gcode и у вас в мач сразу же будет загружен готовый код сканирования. Я не пользуюсь этим визардом потому, что он не очень удобный. Куда проще сгенерировать код в той же проге которая будет править код плана резки. Это G-code Ripper.

Брать его с официального сайта Не забыв передать привет мудилам из Роскомнадзора, которые его заблокировали как экстремистский. Так что применяйте прокси-плагины (Opera Turbo вполне подойдет или FriGate плагин для Chrome, только там надо будет вручную вписать адрес этого сайта).

Итак, запускаете G-code Ripper. Эта штука, как и flatcam тоже написана на питоне и тоже имеет консольный интерфейс (впрочем я в нем пока сам не разбирался, а так, думаю, можно вписать ее в наш злой батник). А пока же втыкайте в его GUI.

И что же мы видим:

Вот такое главное окно программы. Нам надо выбрать в левом нижнем углу Auto Probе и через меню File загрузить гкод нашей гравировки. Сначала давайте сторону которую будем резать.

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

Probe Offset — это смещение щупа относительно инструмента. У меня щупом является сам инструмент, поэтому тут нули. Probe Z Safe — безопасная высота сканирования. Зависит от кривизны вашей системы. У меня разброс под миллиметр и потому я поставил 2. А вообще при ровном столе достаточно и 0.8 мм. Чем ниже тем быстрей сканирование. Опускаться то меньше! Probe Depth — предельная глубина на которую пойдет щуп. У меня 0, т.к. в данном случае начало координат стоит в самом низком углу моего стола. А вообще можно и в минус немного загнать, скажем на -0.5. Хуже не будет. Probe Feed — скорость опускания. Меньше — точнее, но дольше скан и шуму больше. У меня 100мм/мин. Х/У Points это сколько точек по вертикали и горизонтали снять. Вон те самые белые крестики. Габариты платы он сам выберет. Pre и Post коды я оставляю пустыми, т.к. никаких дополнительных кодов перед и после программы мне не надо. А вот счастливые обладатели ченейджера могут, например, автоматом специальный щупательный инструмент вытащить, а потом убрать обратно. Controller у меня MACH3 и, собственно, все.

Жмем Save G-code File Probe Only, получаем файл с гкодом, шлем его в станок и идем щупать плату.

Как же станок будет сканировать поверхность? Для этого у станка есть щуп. Когда щупа касается масса, то станок это чувствует. За массу у меня принят шпиндель. Вот та пластиковая приблуда, что окружает его крыльчатку это держатель щетки. Которая сделана из старой фрезы и втыкается в центр вала, на подпружиненном крепеже. Почему я просто не подал массу на корпус шпинделя? А потому, что через его подшипники довольно хреновый контакт. Он может пропадать в зависимости от угла поворота. А так он прям по валу дойдет до цанги, а внутри цанги еще маленькая пружинка подведет контакт прямо к инструменту. А сам щуп представляет собой пластину известной толщины (где то 0.5мм) на проводке. Если мне надо выставить инструмент точно на 0 я кладу в нужное место пластину, прижимаю ее пальцем к поверхности и даю команду на поиск нуля. Станок тычется в пластину инструментом, потом учитывает толщину и осознает текущую высоту кончика инструмента. Подняв при этом инструмент на 2.5мм.

В случае же с текстолитом мне нужно просто положить контакт щупа на медь, закрепить изолентой, чтобы не убежал и сделать поиск поверхности. Координата, конечно, выставится не верно. Т.к. в этом случае нет толщины самого щупа. Но это не важно. Главное теперь можно вручную, вводя команду G1 Z-2 (почему -2? А потому, что по моему скрипту после нахождения у меня инструмент подпрыгнет на 2.5мм, а 0.5 толщина пластины щупа, т.е. фактически его координата станет 2мм), опустить инструмент почти до уровня текстолита. Почему почти? А для больше точности не помешает поймать самый нежный контакт, а автопоиск довольно груб, т.к. у станка есть некоторая инерция и он немного промахивается. А вот если завести инструмент почти на ноль, а потом вручную, командами G1 Z## сдвигая на сотку-другую вверх или вниз добиться того, что кнопка индикатора начнет мерцать (а она у меня меняет цвет когда происходит касание щупа) от малейшей вибрации в помещении. Скажем когда кто-то мимо прошелся. Да, само собой при этом мы выставляем координаты Х и У в будущий ноль координат исходя из нашей платы. Не путать с нулем станка (машинные координаты).

Дальше, когда ноль найден, то надо обнулить координаты по XYZ и запустить программу сканирования, указать в какой файл записать данные и получить текстовый файл примерно вот такого вида:

0.00000,0.00000,0.00500
7.05500,0.00000,0.03000
14.11500,0.00000,0.03000
21.17000,0.00000,0.06500
28.22500,0.00000,0.07000
35.28500,0.00000,0.11500
42.34000,0.00000,0.12000
49.39500,0.00000,0.16000
56.45500,0.00000,0.14000
63.51000,0.00000,0.14000
0.00000,8.65500,0.00000
7.05500,8.65500,0.00000

Тут все и так ясно — это просто координаты по осям где инструмент коснулся поверхности. Что нам, собственно, и нужно.

Возвращаемся в наш Gcode-Ripper и делаем там Read Probe Data File и наши крестики становятся черными:

Готово. Осталось теперь нажать для верности кнопочку Recalculate и сохранить скорректированный файл. Save G-code File Adjusted. Если теперь их сравнить в каком-нибудь NC-Corrector’e то на виде сбоку будет видно, что у нового файла появился рельеф дна 🙂

старый:

новый:

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


Ободрали изоляцию. Получилось хреново, потому что фреза 0.2 да еще и тупая. А тут бы 0.1 и поострей. Лохмы образуются потому, что контур надо бы обходить в двух направлениях, т.к. фреза когда идет по фольге с одной стороны пропила режет чисто, с другой махратит. И надо обратный проход сделать, снять заусенки. А флаткам не делает его или я не научился еще. Поэтому я их обычно сношу мелкой шкурочкой в пару движений. Еще можно снизить подачу реза, будет намного чище. Или, если шпиндель позволяет, обороты повысить. Вон LPKF Protomat жарит на 100 000 оборотах и там гладенько все.


А это вот уже практически готовая плата. Четыре огромные дырки на месте кнопки это я хорошо факапнулся на эпизоде смены инструмента при сверлении. Когда выложу видео там увидите сами. Надо было поставить после 0.8мм сверла 1мм сверло (или просто нажать «далее», чтобы тем же 0.8мм просверлить), а я не прочитал что мне предложил поставить станок, забыл, что там еще миллиметровые отверстия есть и воткнул сразу 3мм и он мне их весело засверлил 🙂 ЧПУ не прощает ошибок.

Вот как то так. Да, на двусторонке, после переворота текстолита, надо еще раз его простучать щупом.

Электронные весы на базе HX711

 Arduino  Комментарии к записи Электронные весы на базе HX711 отключены
Сен 012017
 

Взято со sxem.net
Электронные весы на базе HX711

На сегодняшний день в продаже имеются необходимые инструменты, чтобы буквально «на коленке» собрать свои электронные весы: микросхема АЦП HX711 (продается на AliExpress), специально предназначенная для применения в весах разрядностью 24 бита и датчик массы, представляющий собой мостовой или полумостовой измеритель на базе тензорезисторов в качестве чувствительного элемента.

Если при подборе элементной базы микросхемы HX711 представлены практически одними и теми же модулями, то датчики массы можно подобрать различной конфигурации. Главный параметр таких датчиков – это измеряемая масса (1 кг, 3 кг, 5 кг, 50 кг и так далее), в зависимости от этого параметра датчики могут иметь так же различную форму и исполнение. По сути, датчики массы измеряют приложенное усилие относительно плоскости датчика – вес тела, но при помощи несложных физических формул можно вычислить массу тела. А раз мы измеряем силу, с которой тело давит на датчик, то и сфера применения подобных схем резко увеличивается. В самом простом случае – это обычные весы, для которых масса тела будет пропорциональна данным, получаемым от АЦП. В более сложных случаях при помощи схем на основе данной элементной базы можно измерять, например, скорость ветра (сила, с которой ветер давит на опору датчика, будет пропорциональна размеру опоры и скорости ветра) или регулировать прикладываемую силу к какому-либо предмету относительно получаемых данных.

При измерении массы тела данным методом стоит учитывать при разработке некоторые нюансы. Как уже отмечалось, датчик регистрирует вес тела, а вес тела это масса, умноженная на ускорение свободно падения или силу тяжести (~9,8 м/c2). Таким образом, видим, что измеренная масса тела будет зависеть от значения силы тяжести планеты, что значит, что в разных точках Земли, а также с увеличением высоты (расстояния от поверхности земли) сила тяжести будет изменяться, что повлияет на то, что масса тела в различных условиях может быть в небольшой степени различна. Хотя масса тела неизменна, но способ измерения связан этими физическими явлениями, поэтому это может являться причинами погрешности измерений кроме основных причин.

Как же мы все-таки измеряем массу (вес) тела этим датчиком, с виду напоминающим железную болванку?

Для начала необходимо иметь понятие о чувствительном элементе этого датчика – тензорезисторе.

Тензорезистор – это резистор, сопротивление которого изменяется в зависимости от его деформации.

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

Направление усилия (приложения груза) указывается на самом датчике, там же указывается и вес, на который рассчитан этот датчик. Схема измерителя на этом датчике является полумостовой – один тензорезистор сверху, второй снизу, при приложении усилия один тензорезистор растягивается, второй сжимается. Схема способна регистрировать вес до сотой грамма, но в этом диапазоне очень много шумов, поэтому схема вполне стабильно способна регистрировать вес до десятых долей грамма. Однако, это применительно к датчику FZ0967 на 5 кг, если взять датчик на 1 кг, то теоретически минимально стабильный порог будет меньше. И аналогично при применении датчиков на больший вес минимально стабильный порог увеличится. Таким образом, при выборе датчика стоит учитывать сферу применения для получения максимально точного результата.

Для измерения массы различных тел был сделан измерительный столик из подручных материалов, а именно старой коробки DVD дисков и самих дисков (или подкладных болванок).

Одной стороной датчик прикручивается к центру коробки от дисков, ко второму конце датчика прикручивается диск, на которой будут ставиться грузы (диски хотя и гибкие, но при приложении чрезмерной силы хрупкие, это стоит учитывать при сверлении отверстий в них, чтобы не расколоть). Таким образом, один конец датчика зафиксирован, а вес прикладывается к другому концу – приложенный груз как бы действует на изгиб датчика, хотя этого вы не заметите.

Для работы с такими датчиками была специально разработана микросхема АЦП HX711.

На базе этой микросхемы в поднебесной делается несколько видов модулей: копеечные модули без экрана и чуть дороже с экранированием элементов. Модуль с экранированием теоретически должен давать более стабильный результат измерений.

Основные параметры микросхемы АЦП HX711:

  • Два входных канала для измерения
  • Регулируемый коэффициент усиления 32, 64, 128
  • Простой цифровой интерфейс, не требующий программирования (так гласит даташит, хотя по большому счету программирование параметров присутствует)
  • Регулируемое количество выборок 10 или 80
  • Разрядность АЦП 24 бита
  • Фильтр на 50 и 60 Гц питания
  • Потребление тока до 1,5 мА
  • Напряжение питания от 2,7 до 5,5 вольт
  • Диапазон рабочих температур от минус 40 до плюс 85 градусов Цельсия
  • Знаковые выходные данные от 800000h до 7FFFFFh

Для подключения к микроконтроллеру используется простой цифровой интерфейс, схожий с I2C, но имеющий с ним мало общего, поэтому придется управлять выводами интерфейса выводами микроконтроллера (в простонародии ногодрыг), так как аппаратного интерфейса ни на одном микроконтроллере нет – это некоторая импровизация для упрощения работы микросхемой, хотя на самом деле, уходя от стандартов, это все только усложняет. Пример использования этого интерфейса присутствует в даташите, поэтому все можно делать просто по примеру и аналогии.

После того, как получим данные от АЦП необходимо учесть два нюанса. Первое, значение представляет собой чистые данные АЦП, то есть количество отсчетов относительно приложенного веса. Что бы не забивать себе голову пересчетами количества отсчетов в значение веса или массы, вспоминаем, что все зависимости у нас линейные, а значит пропорциональные, поэтому нам нужен всего один общий коэффициент для этого пересчета. Для моего экземпляра коэффициент равен 430 при пересчете в единицы грамм. Как это узнать? Есть два способа – строгий математический, с поиском различных справочных данных по материалу из которого изготовлен датчик, поиска параметров тензорезисторов для выведения зависимости модуля упругости материала в данной геометрической конфигурации к сопротивлению тензорезисторов при упругой деформации датчика. Второй способ не самый точный, но крайне быстрый и простой. Необходимо просто замерить сколько отсчетов АЦП приходится на единицу приложенной массы. Для этого необходимо учесть второй нюанс – сама конструкция имеет некоторый вес и перед измерениями его нужно просто убрать – вычесть и получить «ноль» на весах. Далее поставить на весы гирьку определенной известной массы и получить некоторое значение АЦП. Это количество отсчетов будет приходится на единицу массы на весах:

К=(количество отсчетов с массой гирьки – количество отсчетов без приложенной массы) / масса гирьки

Далее этот коэффициент используется после каждого измерения АЦП для перевода в значение единиц массы и выводится на дисплей. Для моего экземпляра этот коэффициент равен 430.

Для сборки весов используем микроконтроллер STM32.

Исходный код для микроконтроллера находится в конце статьи. Схему удобно собирать на минимальной отладочной плате, потому что в этом случае необходимо минимум деталей для сборки — соединяем между собой плату с микроконтроллером, дисплей и модуль АЦП с датчиком, подключаем к питанию.

Для оценки точности измерений, а также для определения коэффициент для перевод значения АЦП в массу лучше всего использовать груз с заведомо точно известной массой. Для этой цели хорошо подойдут мерные гирьки. Вот такой раритетный экземпляр, например.

Как видим, схема показывает весьма неплохие результаты точности измерения (небольшое видео находится в конце статьи). Стоит помнить также о том, что датчик рассчитанный на измерение массы до 200 кг не даст такой точности до сотых долей грамма как датчик, рассчитанный на измерение массы до 100 г. Поэтому при выборе датчика обязательно нужно учитывать сферу применения весов для получения наиболее оптимальных результатов.

Список радиоэлементов

Обозначение Тип Номинал Количество Примечание Магазин
IC1 МК STM32 STM32F103C8 1 Поиск в Fivel
HG1 LCD-дисплей ILI9341 1 Поиск в Fivel
MOD1 Модуль АЦП HX711 1 Поиск в Fivel
MOD2 Тензодатчик FZ0967 1 5 кг Поиск в Fivel
VR1 Линейный регулятор AMS1117-3.3 1 Поиск в Fivel
Z1 Кварц 8 МГц 1 Поиск в Fivel
S1, S2 Кнопка тактовая 2 Поиск в Fivel
HL1 Светодиод 1 Поиск в Fivel
R1 Резистор 100 Ом 1 Поиск в Fivel
R2-R4 Резистор 10 кОм 3 Поиск в Fivel
R5 Резистор 390 Ом 1 Поиск в Fivel
C1, C2 Конденсатор 22 пФ 2 Поиск в Fivel
C3-C7, C9 Конденсатор 100 нФ 6 Поиск в Fivel
C8 Электролитический конденсатор 220 мкФ 1 Поиск в Fivel
C10 Электролитический конденсатор 100 мкФ 1 Поиск в Fivel

Скачать список элементов (PDF)

Прикрепленные файлы:

Экономичные бюджетные светодиодные драйверы

 Arduino  Комментарии к записи Экономичные бюджетные светодиодные драйверы отключены
Авг 292017
 

Экономичные бюджетные светодиодные драйверы

В настоящее время найти драйвер для светодиодов не проблема — были бы деньги (иногда немалые) да время (дождаться посылки из Поднебесной). Поэтому те, для которых эти два фактора не являются решающими, дальше могут не читать. Написанное ниже предназначено для «рукоделов», которым продукт своего труда дороже чужих «жемчугов», в кармане не то, чтобы ветер гуляет, но и от излишка денег он не рвется, а результат хочется увидеть еще «вчера».

Итак, первое и главное положение: «Светодиоды — не лампочки и питаются не напряжением, а током!». Падение напряжения на светодиоде(-ах, включенных последовательно цепочкой) является параметром вторичным, зависит от тока через светодиод(ы) и учитывается исключительно для выбора драйвера, способного обеспечить нужный ток при напряжении, не меньше, чем падение напряжения на нем (них). Поэтому главной функцией светодиодного драйвера является формирование достаточно стабильного тока, питающего светодиоды. Идеальной стабилизации силы тока добиваться нет смысла, т.к. глазом небольшие колебания яркости в зависимости от колебаний силы тока практически незаметны, а схему могут серьезно усложнить. Сказанное выше частично относится и к светодиодным лентам, в которых «драйверами» являются токоограничительные резисторы, соединенные последовательно с цепочками светодиодов, состоящими, как правило, из трех штук.

Ради справедливости, следует отметить, что для питания светодиодов не оставляются попытки применения стабилизаторов напряжения (и даже работающих) [1].

Светодиодный драйвер, выполненный на стабилизаторе напряжения

Рис. 1 Светодиодный драйвер, выполненный на стабилизаторе напряжения [1]

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

Токостабилизирующие драйверы существуют двух видов:

  1. линейные;
  2. импульсные.

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

Ныне существует множество драйверных микросхем (например, MAX4080, MAX4081, LT494, LT1637, LT1672, LT1784, LTC2053, LTC6800, INA337 и т.п.) [2]) Все они хороши, если бы не два «НО»! а) Сто́ят они не так, чтобы дешево и б) достаточно дефицитны. А некоторые — так и вообще экзотика.

Важным параметром для применимости этих микросхем в качестве стабилизаторов тока, является опорное напряжение для компаратора обратной связи (ОС), от которого зависит падение напряжения на токоизмерительном шунте и, в конечном итоге, влияющее (в числе прочих факторов) на экономичность и КПД преобразователя. Для микросхем, позиционируемых, как стабилизаторы напряжения, этот параметр составляет порядка 1,25…1,5 В. Для специализированных токостабилизирующих микросхем как, например, NCP3065/NCP3066 — намного меньше, порядка 0,235 В. К сожалению, цены на вторые «кусаются». Поэтому основной задачей данной разработки было применение распространенных бюджетных микросхем стабилизаторов напряжения в качестве токостабилизирующих, с экономичностью, приближенной к специализированным микросхемам токовых стабилизаторов (а в идеале — даже превысить ее).

Из наиболее распространенных микросхем импульсных стабилизаторов напряжения можно назвать MC34063, найти которую можно чуть ли не в любой лавке, а сто́ит она в корпусе DIP-8 меньше $0,20 (в корпусе SO-8 — еще меньше). В конце концов, ее можно просто выпаять из старой аппаратуры (например, модемов, свичей, даже некоторых старых материнских плат). И все бы с ней было хорошо, если бы не довольно высокое значение опорного напряжения — 1,25 В (Рис. 2). Принцип стабилизации напряжения в данной микросхеме заключается в подержании потенциала на входе компаратора ОС (5-м выводе) на 1,25 В плюсовее, чем на входе «земли» (4-м выводе). Именно такое напряжение должно упасть на токоизмерительном резистивном шунте (R2), что вызывает его нагрев и существенно снижает КПД драйвера при достаточно высоких значениях тока питания светодиодов (порядка 0,7 А для 3-ваттных двухкристальных светодиодов, либо 1 А для 10-ваттных матриц).

Схема простого токостабилизирующего драйвера на MC34063

Рис. 2 Схема простого токостабилизирующего драйвера на MC34063

Есть, конечно, методы обхода этой проблемы с использованием дополнительных ОУ (Рис. 3), усиливающих падение напряжения на токоизмерительном шунте (R1). Но это усложняет драйвер, а мы рассматриваем именно простые бюджетные схемы.

Пример схемы светодиодного драйвера с токоизмерительным шунтом

Рис. 3 Пример схемы светодиодного драйвера с токоизмерительным шунтом в минусовой шине питания и ОУ в качестве усилителя напряжения токового шунта [3]

Падение напряжения на токоизмерительном шунте R1, пропорциональное току через светодиоды, «разгоняется» ОУ до +1,25 В относительно 4-го вывода, подключенного к нулевой шине. Возникает вопрос: нельзя ли добиться этого иным, более простым способом? И этих песен у нас-таки есть! Для этого нужно искусственно суммировать выходное напряжение с токоизмерительного шунта с дополнительным напряжением, подаваемым на вход компаратора ОС. Скажем, +1 В. Тогда на R1 должно падать всего 0,25 В, что по эффективности уже сопоставимо с NCP3065/NCP3066. Откуда же взять это напряжение? Да с плюсовой шины питания, подключенной к 4-му выводу! Подобная схема была предложена одним из соавторов данной статьи несколько лет назад [4] для питания светодиода велофары.

Сущность данного технического решения заключается в замене резистивного делителя между выходом и общей шиной, подключенного ко входу компаратора ОС, делителем, образованным токоизмерительным шунтом (R2) и резистором подтяжки (R1) ко входному напряжению питания, причем, между токоизмерительным шунтом и входом компаратора ОС в включен низковольтный «стабилитрон» (Рис. 4), за счет которого из порогового напряжения срабатывания компаратора ОС вычитается напряжение, падающее на «стабилитроне». Оставшееся напряжение падает на токоизмерительном шунте.

Принципиальная схема простого понижающего токостабилизирующего драйвера

Рис. 4 Принципиальная схема простого понижающего токостабилизирующего драйвера [4]

В случае применения в качестве «стабилитрона» кремниевого диода, на нем упадет всего около 0,65 В. При увеличении тока через светодиод падение напряжения на R2 возрастает, что приводит к снижению выходного напряжения, а значит, и тока (и наоборот). Следовательно, на токоизмерительном шунте должно упасть 1,25 — 0,65 = 0,6 В, что все-таки слишком много. На цепочке, составленной из диодов кремниевого и германиевого (или Шоттки), упадет около 1 В, что уже вполне приемлемо.

Как вариант, в качестве одного из диодов, можно использовать падение на базо-эмиттерном переходе транзистора (VT1) p-n-p структуры, включенного в виде эмиттерного повторителя (Рис. 5).

Принципиальная схема варианта простого понижающего токостабилизирующего драйвера

Рис. 5 Принципиальная схема варианта простого понижающего токостабилизирующего драйвера [4]

Работает данная схема аналогично приведенной на Рис. 4. На вход компаратора ОС (5-й вывод) микросхемы поступает положительное напряжение через резистор R1. Одновременно оно ограничивается падением напряжения на базо-эмиттерном переходе VT1. В принципе, этого было бы достаточно, чтобы «срезать» 0,65 В, если транзистор кремниевый, тогда на токоизмерительном шунте R2 должно упасть всего 0,6 В вместо 1,25 В. Неплохо, но хотелось бы еще меньше. Учитывая, что транзистор — p-n-p проводимости, а такая была у большинства старых германиевых транзисторов, можно какой-то из них и использовать, дополнив кремниевым диодом VD2. Суммарное падение на двух p-n переходах из разных материалов составит при этом около 1 В. Либо же возможен другой вариант: кремниевый транзистор и германиевый диод (Д2, Д9, ГДххх и т.п.). К сожалению, в настоящее время германиевые полупроводниковые приборы стали дефицитом.

Измерительная часть повышающего токостабилизирующего драйвера принципиально не отличается от понижающего (Рис. 6).

Принципиальная схема простого повышающего токостабилизирующего драйвера

Рис. 6 Принципиальная схема простого повышающего токостабилизирующего драйвера

В этой схеме, аналогично Рис. 5, также возможно применение p-n-p транзистора вместо одного из диодов. С инвертирующим драйвером (Рис. 7) ситуация еще проще:

Принципиальная схема простого инвертирующего токостабилизирующего драйвера

Рис. 7 Принципиальная схема простого инвертирующего токостабилизирующего драйвера

Напряжение на входе компаратора ОС просто стабилизируется относительно обшей шины параметрическим стабилизатором, образованным резистором R1 и «стабилитроном» VD2VD3, подключенным анодом не к токоизмерительному шунту, а непосредственно к общей шине, обеспечивая на нем потенциал +1 В относительно нулевой шины, тогда как на 4-й вывод поступает отрицательное напряжение с токоизмерительного шунта. Алгебраическое суммирование этих двух потенциалов дает ту же величину +1,25 В на входе компаратора ОС (5-м выводе) относительно «земляного» (4-го вывода).

При всей простоте описанного решения, оно обладает существенными недостатками, главные из которых следующие:

  1. «Стабилитрон» из диодов либо транзистора и диода является нерегулируемым, что существенно ограничивает возможности выбора компонентов;
  2. На напряжение, падающее на «стабилитроне» большое влияние оказывает температура.

Поэтому дальнейшее усовершенствование схемы пошло по пути использования более температурно-стабильного «стабилитрона» (миль пардон за тавтологию), в качестве которого применен шунтовый регулятор напряжения TL431. Решение было предложено соавтором данной статьи Hepo (Рис. 8). Похожее решение, но отличающееся по принципу работы, было описано в статьях [5, 6].

Принцип построения токостабилизирующей цепи с использованием стабилизации шунтовым регулятором

Рис. 8 Принцип построения токостабилизирующей цепи с использованием стабилизации шунтовым регулятором TL431

Принцип работы данной токостабилизирующей цепи заключается в следующем. Напряжение на делителе R1/R2+RS стабилизируется параметрическим стабилизатором RBDA1 на уровне, превышающем входное напряжение компаратора ОС. В данном случае — 2,5 В. Использование в качестве «стабилитрона» шунтового регулятора TL431 обусловлено исключительно его термостабильностью. Если таковая не важна — можно применить любой низковольтный стабилитрон (Рис. 9).

Варианты стабилитронов для токостабилизирующей цепи

Рис. 9 Варианты стабилитронов для токостабилизирующей цепи

В отсутствие выходного напряжения, а следовательно, и тока, протекающего через светодиод(ы) HL1, напряжение в точке соединения R1R2 (а следовательно, и на входе компаратора ОС) ниже, чем требуемое для него пороговое, поскольку номинал RS составляет доли Ома (на Рис. 9 указано значение 1,15 В). Микросхема запускается в работу, на выходе появляется рабочее напряжение, а ток, протекающий через светодиод HL1, создает на токоизмерительном шунте RS определенное падение напряжения, пропорциональное протекающему через него току, за счет чего потенциал в точке соединения R1R2 (а следовательно, и на входе компаратора ОС) становится равным пороговому напряжению срабатывания компаратора, останавливающему работу микросхемы и вновь запускающему ее при падении тока через светодиод и, соответственно, через RS. Резистор R2 составлен из двух: основного R2.1 и подстроечного R2.2.

На основе описанного принципа спроектирован и изготовлен токостабилизирующий драйвер третьего стоп-сигнала для спорткара, выполненного на двух последовательно включенных светодиодных матрицах по 30 Вт (суммарно 60 Вт при суммарном падении напряжения на них порядка 60…66 В при токе 1 А и питании от бортовой сети легкового автомобиля напряжением 12 В). Для такого тока номинал токоизмерительного шунта составляет 0,1 Ома, что обеспечивает падение напряжения на нем всего 0,1 В и, следовательно, рассеиваемую мощность всего 0,1 Вт. Принципиальная схема собственно драйвера приведена на Рис. 10.

Принципиальная схема токостабилизирующего драйвера для мощных светодиодных матриц

Рис. 10 Принципиальная схема токостабилизирующего драйвера для мощных светодиодных матриц

Режим работы данного стоп-сигнала заказчиком выбран мигающим. Управление драйвером выполнено на таймере NE555 (Рис. 11).

Принципиальная схема управления светодиодным драйвером стоп-сигнала

Рис. 11 Принципиальная схема управления светодиодным драйвером стоп-сигнала

Отличительной особенностью самого драйвера является цепь VT1R7R8R9, защищающая ключевой транзистор VT3 от пробоя высоким напряжением при обрыве контакта со светодиодами. Делитель R8R9 с коэффициентом деления 1:120. При выходном напряжении более 80 на базе транзистора VT1 появляется напряжение, превышающее 0,7 В, он открывается и шунтирует на общую шину первый каскад выходного ключа. Такой принцип защиты описан в [7], но опять же, сама его схемотехническая реализация была другой.

К этому же выводу по схеме «проводного ИЛИ» подключен и 7-й вывод таймера (с открытым коллектором), разрешающий работу драйвера при единичном состоянии на 3-м выводе (состояние формирования выходного импульса). Аналогов подобного метода управления не найдено. Это не значит, что их нет вообще, но авторам статьи в открытом доступе они не встречались.

Фото готовых драйверов показано на Рис. 12, а сам стоп-сигнал (в разобранном виде) — на рис. 13. Светодиодные матрицы прикреплены к алюминиевому радиатору. За счет кратковременности работы стоп-сигнала тепловой режим рассеивания мощности матрицами в закрытом корпусе не критичен.

Фото драйверов стоп-сигнала

Рис. 12 Фото драйверов стоп-сигнала

Фото стоп-сигнала

Рис. 13 Фото стоп-сигнала

Следует отметить, что для таких токов весьма существенной является топология печатной платы. Первый вариант ее разводки не позволил поднять ток через светодиоды более 0,7 А при любом соотношении номиналов делителя R3R4R5R6. После ее переразводки с оптимизацией дорожек (Рис. 14) максимальное значение удалось поднять до 1,2 А, что свидетельствует о неоптимальности и этого варианта. Поэтому файл с печатной платой и не прикладывается. Но заказчика работа стоп-сигнала полностью удовлетворила и дальнейшей оптимизации разводки не производилось.

Печатная плата мощного светодиодного драйвера

Рис. 14 Печатная плата мощного светодиодного драйвера

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

В качестве «подопытного кролика» был выбран повышающий стабилизатор на микросхеме SDB6826 китайского производства. Его исходная схема приведена на Рис. 15, а переделанная под токостабилизацию — на Рис. 16. Платы импульсных преобразователей до и после переделки показаны на Рис. 17.

Принципиальная схема повышающего стабилизатора напряжения на SDB6826

Рис. 15 Принципиальная схема повышающего стабилизатора напряжения на SDB6826 [8]

Принципиальная схема переделки импульсного стабилизатора напряжения на SDB6826 под стабилизацию тока

Рис. 16 Принципиальная схема переделки импульсного стабилизатора напряжения на SDB6826 под стабилизацию тока

Платы повышающих импульсных преобразователей на основе микросхемы SDB6826

Рис. 17 Платы повышающих импульсных преобразователей на основе микросхемы SDB6826
Слева вверху — до переделки; справа внизу — после переделки.

Переделанная плата была использована для питания трех последовательно включенных белых светодиодов мощностью по 3 Вт током 300 мА от одного литиевого аккумулятора 18650 в ручном фонарике (Рис. 18). КПД составил 91%.

Повышающий драйвер для ручного светодиодного фонарика

Рис. 18 Повышающий драйвер для ручного светодиодного фонарика

Вторым «подопытным кроликом» стала опять же готовая плата понижающего стабилизатора напряжения на микросхеме LM2596S [9] для питания 10-ваттной белой светодиодной матрицы от гелевого 12-вольтового аккумулятора током 1 А. Стабилизация тока сохранялась при питании от свежезаряженного аккумулятора (13,4 В) и прекращалась при снижении питающего напряжения ниже 12,2 В, что можно объяснить значительным напряжением насыщения биполярного ключевого транзистора данной микросхемы, работающего по схеме включения с общим коллектором. К сожалению, фото, иллюстрирующие этот экспериент, не сохранились. По его результатам стала очевидной необходимость применения внешнего ключевого транзистора, как на схеме по Рис. 8.

Экспериментов с инвертирующим драйвером не производилось.

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

Литература

  1. Баширов, А. Карманный фонарь на мощном светодиоде / А. Баширов, С. Баширов.– Радио, 2009, № 6.– С. 51-52.
  2. Микросхемы для измерения тока http://www.kit-e.ru/articles/chip/2006_10_116.php
  3. Подключение светодиодов: практика http://we.easyelectronics.ru/Theory/podklyuchenie-svetodiodov-praktika.html
  4. http://radiokot.ru/forum/viewtopic.php?p=334232#p334232
  5. варп Блок питания (инвертор) с адаптивным ограничением тока / варп.– http://cxem.net/pitanie/5-292.php;
  6. варп Блок питания (инвертор) с адаптивным ограничением тока (часть 2) / варп.– http://cxem.net/pitanie/5-293.php
  7. Горбатых, В. Освещение салона сверхъяркими светодиодами / В. Горбатых.– Радио, 2009, № 10.– С. 43-44.
  8. SDB628 High Efficiency 1.2 MHz 2 A Step Up Converter (Datasheet).– http://hfdx.at.ua/_fr/7/SDB628.pdf
  9. LM2596 SIMPLE SWITCHER Power Converter 150-kHz 3-A Step-Down Voltage Regulator (Datasheet).– http://www.ti.com/lit/ds/symlink/lm2596.pdf

Wget

 Arduino  Комментарии к записи Wget отключены
Авг 282017
 

Wget для Windows. Установка и использование.

От @techlist
15.05.2017

wget windows

Доброго времени суток читатели и гости моего блога. В данной статье я хочу поговорить о установке и использовании консольной утилиты GNU Wget в операционной системе Windows. Мы частенько сталкивались с данной программой на страницах моего блога и использовали ее для загрузки архивов с исходниками при установке тех или иных программ.

Возможности Wget не ограничиваются одной лишь загрузкой архивов, утилита умеет создавать локальные копии web-сайтов с полным сохранением структуры каталогов и файлов. Помимо этого возможна конвертация сохраненных html-файлов для просмотра сайта в автономном режиме. Считывая заголовки файлов и сравнивая их с ранее загруженными файлами, Wget может загружать новые версии файлов, благодаря чему можно создавать обновляемые зеркала сайтов.

Wget может работать по протоколам HTTP, HTTPS, FTP, а также поддерживает работу через HTTP-прокси сервера. Утилита разрабатывалась для медленных соединений, точнее в те времена соединения были медленными и нестабильными, поэтому она поддерживает докачку файлов при обрыве соединения. Если сервер с которого загружался файл тоже поддерживает докачку, то Wget продолжит загружать файл именно с того места, где оборвалась загрузка.

Для того чтобы установить Wget, перейдите по ссылке и скачайте установочный exe-файл. Запустите exe-файл и установите Wget как обычную программу, по умолчанию утилита устанавливается C:\Program Files (x86)\GnuWin32.

Для запуска утилиты нужна командная строка Windows, запускаем ее через меню пуск или сочетанием клавиш Win+R, в открывшемся окне ввести «cmd» и нажать Enter. После запуска командной строки сразу пользоваться Wget, как это происходит в ОС Linux, не получится, сначала нужно указать местоположение файла wget.exe.

Файл wget.exe находится в каталоге bin, внутри установочной директории. Для указания файла используется команда path.

1 pathC:\Program Files(x86)\GnuWin32\bin

Теперь можно запустить Wget, для начала можно просмотреть вывод команды help со списком дополнительных опций.

1 wget-h

Список дополнительных опций утилиты Wget под спойлером.Вывод wget -h

Обычные копирование и вставка (Ctrl+C, Ctrl+V) в командной строке Windows не работают. Чтобы скопировать текст из командной строки Windows, нужно просто выделить нужный фрагмент текста и нажать Enter. Для вставки текста в командную строку, нужно кликнуть правой кнопкой мыши по окну командной строки, выбрать подменю «Изменить» и дальше выполнить требуемую команду. Копирование и вставка существенно облегчают работу с командной строкой Windows.

Давайте рассмотрим несколько примеров использования утилиты Wget.

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

1 wget https://techlist.top/wp-content/uploads/2017/05/wget.jpg

Иногда Wget может ругаться на «самоподписанные сертификаты» при использовании HTTPS-ссылок, хотя с самими сертификатами все в порядке, в таком случае нужно использовать дополнительную опцию «—no-check-certificate».

1 wget https://techlist.top/wp-content/uploads/2017/05/wget.jpg —no-check-certificate

При обычном вызове командной строки Windows сохранение файла будет происходить в пользовательский каталог C:\Users\Username. Если файл требуется сохранить в какой-либо определенный каталог, то его необходимо указать при помощи дополнительного ключа «-P», пусть это будет каталог test на диске C (C:\test).

1 wget-PC:\test https://techlist.top/wp-content/uploads/2017/05/wget.jpg —no-check-certificate

Если файл должен быть сохранен в определенном каталоге, то существует более простой способ сохранения файла, без указания дополнительных опций. Зайдите в нужный каталог через проводник Windows, зажмите клавишу Shift и кликните по области каталога правой кнопкой мыши, в открывшемся меню выберите «Открыть окно команд».

Открывшаяся командная строка станет выглядеть следующим образом.

windows wget

Выполните команду path, для указания местоположения wget.exe.

1 pathC:\Program Files(x86)\GnuWin32\bin

Теперь все будет сохраняться именно в эту папку.

Давайте представим что у нас есть некий файл со списком ссылок, которые необходимо скачать. Пусть это будет файл test.txt расположенный в пользовательском каталоге C:\Users\Username, со следующим содержанием.

1
2
3
4
5
https://techlist.top/wp-content/uploads/2017/03/nginx_.jpg
https://techlist.top/wp-content/uploads/2017/04/wp.jpg
https://techlist.top/wp-content/uploads/2017/01/php7.jpg
https://techlist.top/wp-content/uploads/2017/03/MariaDB.jpg
https://techlist.top/wp-content/uploads/2016/09/netfilter-logo.jpg

Дополнительный ключ «-i» будет указывать на расположение файла — C:\Users\Username\test.txt и все файлы из списка будут сохранены.

1 wget-iC:\Users\Username\test.txt—no-check-certificate

Чтобы скачать сайт целиком достаточно просто указать его адрес c минимально необходимым набором опций, например.

1
2
3
4
5
6
7
8
wget-r-l10-k-p-t5https://techlist.top —no-check-certificate

-r, —recursive включениерекурсивнойзагрузки.
-l, —level=ЧИСЛО глубинарекурсии(infи0-бесконечность).
-k, —convert-links делатьссылкилокальнымивзагруженномHTML.
-p, —page-requisitesзагрузитьвсеизображенияипроч.,
необходимыедляотображенияHTML-страницы.
-t, —tries=ЧИСЛО установитьЧИСЛОповторныхпопыток(0безограничения).

В результате получим готовое зеркало сайта, которое будет автономно работать на компьютере, благодаря конвертации ссылок для локального использования сайта.

Но допустим что нам не нужен весь сайт, а только вот эта статья https://techlist.top/install-wordpress/. В таком случае команда для загрузки станет выглядеть так.

1
2
3
4
5
6
wget-r-l10-t5-k-p-np https://techlist.top/install-wordpress/ —no-check-certificate

Добавляемкпредыдущейкомандедоп.опцию-np

-np,—no-parent неподниматьсявродительскийкаталог
внашемслучаевышеуказаннойдиректорииhttps://techlist.top/install-wordpress/ скачивание не пойдет.

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

FacebookTwitter

HMI дисплейные модули

 Arduino  Комментарии к записи HMI дисплейные модули отключены
Авг 272017
 

Nextion Instruction Set

Содержание

[убрать]

Note:

1. The instruction is end with three bytes «0xff 0xff 0xff»

2. All the instrucitons and parametners are in ASCII

3. All the instrucitons are in lowercase letters

Classification I: Operation Commands of Component and System

page: Refresh page

page pageid

pageid: Page ID or Page Name

  • Example 1:
page 0 //Refresh page 0
  • Example 2:
page main //Refresh the page main 

Remarks:

The device automatically refresh page 0 when power on.

Sonoff

 Arduino, ESP8266  Комментарии к записи Sonoff отключены
Июн 162017
 

Отличные железки на SoC ESP8266 от Itead Studio

Введение

Во всех устройствах стоит микросхема FLASH памяти 25Q80DVSIG

Continue reading »

Синтезатор AD9850

 Arduino, Электронные прибамбасы  Комментарии к записи Синтезатор AD9850 отключены
Янв 312017
 

Зайдя в очередной раз на сайт местного радиомагазина, обнаружил в продаже интересный девайс. Модуль DDS (direct digital synthesis) — синтезатор частоты на микросхеме AD9850. Такой:

Continue reading »

Mach3 поиск 0 по оси Z

 Arduino  Комментарии к записи Mach3 поиск 0 по оси Z отключены
Янв 072017
 

То, что творится с инструкциями по обнулению оси Z, это, конечно, полный бардак. Одни не понимают что они пишут, другие не понимают что они читают, ломают фрезы и бросают эту полезную затею.
Может где и есть понятные инструкции, но мне они не попались, поэтому пишу свою.

Итак: Задача установить инструмент в точку ноль по оси Z в программе MACH3.
Алгоритм:
Ось Z опускается на заданную величину (10мм). Если происходит замыкание, то ноль по Z устанавливается с учетом толщины пластину и происходит отскок безопасности на 5 мм. Если замыкания не обнаруживается, то ось Z просто останавливается. Толщину пластины и скорость опускания можно задать в скрине Мач3. Остальные параметры в тексте скрипта.

В программе Мач3 есть возможность обнаружить момент замыкания входа LPT на землю. Обычно это контакт между фрезой и металлической деталью или вспомогательной пластиной. Для этого один контакт мы присоединяем к фрезе, а другой к детали или к пластине.
1.На контроллере находим свободный входной пин разъема LPT. Это пины 10, 11, 12, 13 или 15. Например, 12. И к этому разъему присоединяем один контакт, другой к земле.
1. Выбираем свободный номер пина, заходим в Config->Ports-and-Pins->Input-Signals->Probe и ставим галочки в Enable и ActiveLow. В PinNumber выставляем номер пина.
2. Толщина пластины. Если мы обрабатываем металлическую деталь или печатную плату, то вторым контактом будет сама деталь, пластина не нужна и поправка на ее толщину будет ноль. Если деталь не токопроводящая, то нужна вспомогательная пластина. Т.е. необходимо иметь параметр, где мы можем задать толщину пластины.
Что, например, можно сделать.
Скачиваем с официального сайта программу Screen4.exe — это дизайнер экранов программы Мач, и размещаем ее в директорию Мач. Стартуем, открываем файл 1024.set — стандартный файл скринов Мача, переименовываем и сохраняем под другим именем. Теперь мы можем изменять экраны. Нам надо добавить параметр для установки толщины пластины. Выделяем, например, поле Z inhibit, делаем Copy->Paste и размещаем, например, так:
Изображение
Кликаем дважды левой кнопкой, и в поле OEM-Code-Function пишем 1151. По этому номеру мы можем теперь считать в программе значение этого поля.
Сохраняем скринсет. Стартуем Мач, в View-LoadScreens выбираем и загружаем модифицированный экран Мача с новым полем.
3. Теперь нам надо стартовать установку нуля. Для этого используется кнопка AutoToolZero. При нажатии на эту кнопку начнет выполняться программа, контролирующая установку нуля. Эта программа написана на языке VBscript. Такие программы широко используются и называются скриптами. Текст программы или заглушку можно увидеть по Operator->EditButtonScript, а затем кликнуть по мигающей кнопке AutoToolZero.
Вот сюда-то и надо скопировать или ввести программу установки нуля. Не забыть потом сохранить ее и профиль Мач3, при выходе из программы.
4. Скрипт. Количество скриптов для установки нуля превышает разумные пределы. Многие из них работают, хотя авторы даже не понимают, что рекомендуют. Давайте рассмотрим один из вариантов, доработанных мною до состояния, которое меня устроило. Заодно и скрипты изучил немного. Это мой первый скрипт, поэтому замечания приветствуются.

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

Rem VBScript To probe In the z axis
‘ Это комментарий
If GetOemLed (825) <> 0 Then ‘ Проверяем, может быть ноль уже установлен
‘ Расшифровки параметра в GetOemLed находятся в файле LEDCodes.txt
Code «(Z-Plate is grounded or check connection and try again)» ‘ выводим сообщение об этом
Else
‘ Если ноль не установлен, то пробуем его найти
Code «G4 P1» ‘ Пауза в 1 сек
PlateOffset = GetUserDRO(1151) ‘ считываем значение нового поля. Это толщина пластины.
‘ Значения параметров GetUserDro и GetOemDro находятся в файле DroCodes.txt
CurrentFeed = GetOemDRO(818) ‘ счтываем значения поля Feedrate. Это текущая скорость мм/мин
‘ Эту скорость можно изменить перед поиском нуля в скрине Мача
MyFeed = 100 ‘ скорость поиска нуля мм/сек для вашего станка
‘ Зависит от крепости фрезы
‘ Если скорость больше MyFeed, то мы ее уменьшаем до MyFeed.
‘ если меньще MyFeedRate, то устанавливаем меньшую скорость. Ту, которая в Маче
If CurrentFeed>MyFeed Then
Code «F» &MyFeed ‘ Эту скорость вы можете установить под свой станок как стандартную
Else
Сode «F» &CurrentFeed
‘ Эту скорость вы всегда можете установить для конкретного поиска нуля
End if
‘ Начинаем искать ноль
ZNew = GetDro(2) — 10 ‘ Устанавливаем точку на 10мм ниже текущей высоты Z
Code «G31Z» &ZNew ‘ Идем в эту точку с контролем замыкания контактов Probe
While IsMoving() ‘ Ждем пока ось Z дойдет до точки -10мм
Wend

ZNew = GetVar(2002) ‘ Считываем значение по Z в момент замыкания
Code «G1 Z» &ZNew ‘ Если проскочили, то возвращаемся
While IsMoving () ‘ Ждем возвращения
Wend
If GetOemLed (825) <> 0 Then
‘ Проверяем нашли ноль или просто опустились по Z на 10мм
‘ Проверяем толщину пластины
‘ если она ненулевая, то корректируем ось Z с учетом ее толщины, иначе 0
Call SetDro (2, PlateOffset) ‘ новая точка 0 по Z
Code «G4 P0.5» ‘ ждем установку по Z 0.5 сек

ZNew = 5 ‘ отскок безопасности по Z. Можете поменять
Code «G1 Z5 F200» ‘ идем в точку отскока
While IsMoving () ‘ ждем прихода в отскок
Wend
Code «(Z axis is now zeroed)» ‘ выводим сообщение об установке нуля.

Else
‘ Замыкания не достигли. Просто опустились на 10мм
Code «(Z-Plate ie not grounded. Try again.)» ‘ сообщение об этом
End If

Code «F» &CurrentFeed ‘ возвращаем значение скорости
End If

Текст скрипта находится в директории Macros->»профиль» под именем HiddenScript.m1s
Но при старте Mach3 скрипт берется из профиля. Так что если у вас не обновился профиль после изменения скрипта, при старте Мач3 получите старый скрипт.

Рабочий скрипт:

Rem VBScript To probe In the z axis
If GetOemLed (825) <> 0 Then ‘Check to see if the probe is already grounded or faulty
Code «(Z-Plate is grounded or check connection and try again)» ‘this goes in the status bar if aplicable

Else
Code «G4 P1» ‘Pause 1 seconds to give time to position probe plate
PlateOffset = GetUserDRO(1151) ‘Get plate offset DRO
CurrentFeed = GetOemDRO(818) ‘Get the current feedrate to return to later
MyFeed = 100
If CurrentFeed > MyFeed Then
Code «F» &MyFeed ‘slow down feedrate to 100 mmpm
Else
Code «F» &CurrentFeed
End If
Rem Probe In the z direction
ZNew = GetDro(2) — 10 ‘probe move to current z — 10mm
Code «G31Z» &ZNew
While IsMoving() ‘wait for probe move to finish
Wend

ZNew = GetVar(2002) ‘read the touch point
Code «G1 Z» &ZNew ‘move back to hit point incase there was overshoot
While IsMoving ()
Wend
If GetOemLed (825) <> 0 Then ‘ Zero or Not

Call SetDro (2, PlateOffset) ‘set the Z axis DRO to plate thickness
Code «G4 P0.5» ‘Pause for Dro to update.

ZNew = 5 ‘ Up to 5mm
Code «G1 Z5 F200» ‘&ZNew ‘put the Z retract height you want here
While IsMoving ()
Wend
Code «(Z axis is now zeroed)» ‘puts this message in the status bar
Else

Code «(Z-Plate is not grounded. Try again.)»
End If

Code «F» &CurrentFeed ‘Returns to prior feed rate

End If
Rem Finalized by George164 05/03/2012

Прошивка любого Hex-файла в Arduino

 Arduino  Комментарии к записи Прошивка любого Hex-файла в Arduino отключены
Дек 062016
 

104-Прошивка любого Hex-файла в Arduino при помощи штатного загрузчика (Bootloader).

Автор: GetChiper | 15.12.2013
56 комментариев

Давайте немного отвлечемся от создания нашего робота и поговорим о том, как мы будем записывать прошивку в Arduino.

Нас, прежде всего, интересуют три платы Arduino:
Arduino Uno – как самый распространенный вариант
Arduino Nano – компактный вариант, удобный для применения в небольших конструкциях
Arduino Pro Mini – дешевый компактный вариант без встроенного USB-UART преобразователя (для работы с ним понадобится внешний USB-UART преобразователь), но удобный в случае применения сети устройств.

Arduino_UNOArduino_NANOArduino_PRO_MINI

Во всех вышеописанных платах используется микроконтроллер ATmega328 (в более старых версиях ATmega168).

ATmega48_88_168_328.pdf — Даташит на ATmega48A-48PA-88A-88PA-168A-168PA-328-328P

Одной из главных причин выбора платы Arduino для проекта робота была возможность записывать прошивку устройства в МК не применяя программатора и каких либо дополнительных устройств. Все что нужно для прошивки микроконтроллера Arduino – это стандартный USB шнур (который входит в комплект Arduino).

Это значит, если Вы имеете Ардуину – Вы имеете любое устройство ZiChip!

Запись программы в МК через USB происходит через специальный загрузчик (Bootloader), который записан в МК при изготовлении платы. Вообще, загрузчик предназначен для работы со своим специальным программным обеспечением Arduino IDE, но в случае, когда необходимо прошить в Ардуину что-то постороннее (свой Hex-файл), есть программки позволяющее это реализовать.

Начнем с маленькой и удобной
XLoader (Arduino HEX uploader)

XLoader.zip — Программа для записи Hex-файла в Arduino

Программка имеет аскетичный интерфейс и работать с ней предельно просто:
— подключаем Arduino в USB-порт (отдельного питания не нужно)
— выбираем Hex файл
— выбираем тип Вашего Arduino
— выбираем COM порт, который создался при подключении Arduino к USB (скорость порта автоматически подставится при выборе типа Arduino)
— жмем Upload

Это все! Ничего сложного. Прошивка через несколько секунд будет записана в МК и автоматически запустится. Один минус – программа никак не сообщает о том, что прошивка уже записана, но это можно увидеть по прекращению мерцания светодиодов RXD и TXD на Ардуине.

XLoader использует для записи прошивки AVR Dude и в качестве протокола программирования используется STK500. Но, похоже, в настройках AVR Dude, произведена коррекция, так как использование стандартного AVR Dude с такими же настройками не дает результатов.

Автоматизация XLoader.

При разработке ПО для микроконтроллера производится очень много прошивок и всегда нужно стремиться автоматизировать этот процесс после сборки проекта — это экономит время и нервы. В данном случае автоматизация усложнена, так как программа не показывает командную строку для AVR Dude (разве что подбирать опытным путем), но некоторое упрощение процесса возможно. Делается это следующим способом – после первой прошивки не закрываем окно программы (COM порт после прошивки программа отпускает) и после следующей сборки проекта просто жмем кнопку «Upload». Конечно, сборка должна осуществляться в один и тот же Hex-файл.

Еще одна программка
ARP Uploader (Arduino Hex Uploader and Programmer)

ArduinoUploader.zip — Программа для записи Hex-файла в Arduino

Как и предыдущая, программка имеет простой интерфейс.
Процесс прошивки тот же:
— подключаем Arduino в USB-порт (отдельного питания не нужно)
— выбираем Hex файл
— выбираем тип Вашего Arduino
— выбираем COM порт
— жмем Upload

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

При попытке прошить Arduino Nano программа отказывалась видеть МК. Причиной стала неправильная установка скорости COM порта. По умолчанию скорость стоит 19200, а нужно 57600. Скорость порта в программе не задается явно, она прописывается в строчке «AVR Dude Params» — поменяйте в ней значение 19200 на 57600.

Автоматизация ARP Uploader.
ARP Uploader как и XLoader работает через AVR Dude, но, в отличие от XLoader, показывает командную строку. Это дает возможность использовать AVR Dude напрямую в Make или Bat файле.

Дополнительные материалы.
Драйвера Arduino.

Считаю не лишним напомнить, что для связи Arduino с компьютером в последнем должны присутствовать драйвера. Оставляю здесь архив с драйверами для Arduino (включая и старые драйвера в Old_Arduino_Drivers.zip и драйвера для FTDI-чипа в папке «FTDI USB Drivers»

Arduino_drivers.zip — Драйвера для Arduino

Стали появляться недорогие китайские Ардуины с драйвером CH340G
Driver CH340G.zip — Драйвер для преобразователя USB-UART

Загрузчики Arduino

Если Вы решите собрать свою плату Arduino (а сложного там ничего нет, фактически, это голый ATmega328 или ATmega168), Вам понадобится загрузчик Bootloader который должен содержать МК для работы со средой (или программками для заливки Hex-файлов). Конечно, Вам для записи Hex-файлов в чистый МК понадобится программатор и придется выставить фьюзы.

ATmegaBOOT_168_atmega328.hex — Bootloader для ATmega328
Для правильной работы нужно установить фьюзы следующим образом Low: FF High: DA Ext: 05

ATmegaBOOT_168_diecimila.hex — Bootloader для ATmega168
Фьюзы Low: FF High: DD Ext: 00

Схемы Arduino

Cхемы вышеописанных Ардуин.
Arduino_Uno_Rev3-schematic.pdf — Схема Arduino Uno
ArduinoNano30Schematic.pdf — Схема Arduino Nano
Arduino-Pro-Mini-schematic.pdf — Схема Arduino Pro Mini

Фьюзы установленные по умолчанию в Arduino (только с ATmega328)
Arduino Uno
Low Fuse 0xFF
High Fuse 0xDE
Extended Fuse 0x05

Arduino Duemilanove or Nano w/ ATmega328
Low Fuse 0xFF
High Fuse 0xDA
Extended Fuse 0x05

Arduino BT w/ ATmega328
Low Fuse 0xFF
High Fuse 0xD8
Extended Fuse 0x05

LilyPad Arduino w/ ATmega328
Low Fuse 0xFF
High Fuse 0xDA
Extended Fuse 0x05

Arduino Pro or Pro Mini (5V, 16 MHz) w/ ATmega328
Low Fuse 0xFF
High Fuse 0xDA
Extended Fuse 0x05

(Visited 25 343 times, 70 visits today)

Раздел: Полезные программы Программаторы и преобразователи Метки: Arduino, ATmega328