Июл 072018
 

Все начавшие изучать английский сталкиваются с проблемой понимания видо-временных форм. Если в русском языке есть два вида глаголов: совершенный и несовершенный (делать и сделать), то в английском их целых четыре — простой (Simple / Indefinite), продолженный (Continuous / Progressive), перфектный (Perfect) и перфектно-продолженный (Perfect Continuous). При этом каждая из форм может использоваться в трех временах: настоящее (Present), будущее (Future) и прошедшее (Past).

Сегодня редакция «Так Просто!» расскажет, как разобраться в краеугольным камне английской грамматики с минимальными потерями нервных клеток. Мы покажем тебе простую и понятную таблицу времен, которая помогла выучить английский не только нашим редакторам. Сохрани и распечатай картинку с пояснениями, изучай язык в свободную минуту.

времена в английском языке с примерами

Эта таблица учитывает согласование времен в английском языке, поэтому в ней 16 временных форм вместо привычных 12. Правила описывают структуру предложений о прошедших событиях, которые ссылаются на факты из будущего: «Я думал, что будет…» или «А я вам говорил…».

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

Июл 072018
 

Кто палит группку моей лабы в ВК уже наверное видел, что у меня там последнее время сплошняком идет тема фрезеровки плат. Я покупал фрезерный станок прежде всего для того, чтобы на нем сверлить, резать и вытачивать разные корпусные изделия. Как дополнение к 3D принтеру. Гравировать на нем именно рельеф печатных плат, вместо классического травления в хлорном железе , как то даже не подразумевалось. Но ради любопытства попробовал. Получилось занятно. Хотя и довольно шумно. Для простых плат, пожалуй, этот способ даже предпочтительней травления. Т.к. в одном цикле позволяет получить и сверловку и обрезку. Да и двусторонние платы теперь делать намного проще. Т.к. совмещать верх с низом гораздо проще при фрезеровке, чем при травлении. Ну обо всем по порядку.

▌Софт
Надо как то получить план резки в формате GCODE для ЧПУ станка, а у нас есть только стандартные GERBER и Exellon Drill. Способов это сделать много. Например, в eagle есть скрипт pcb2gcode который, будучи один раз сконфигурированный, позволяет подготовить все нужные файлы в один клик. Правда у него есть довольной неприятный недостаток — он весьма криво зеркалит плату, просто переворачивая координаты. В результате двусторонки в нем делать неудобно. Ну и не все пользуются иглом, поэтому я решил описать более универсальный способ получения гкода из гербера.

Воспользуемся такой замечательной програмкой как FlatCam. Это опенсорцное, кроссплатформенная штука, написанная на питоне. Интерфейс у него, как это принято в опенсорце, кривое, тормозное и глючное УГ с невнятной юзабельностью… Но! Это все отлично компенсируется тем, что графический интерфейс этой хреновины, после окончательной настройки и подбора всех параметров, вам нужен чуть чаще чем никогда. У FlatCam есть внутренняя консоль, похожая на консоль и eagle или AutoCAD. Куда можно скармливать команды и он сам все будет строить. А внутренняя консоль приложения это лучший интерфейс который можно придумать. Почему? А потому что в него можно загонять скрипты которые будут делать все рутинные операции автоматом. За что я, собственно, так люблю автокад и игл. Но обо всем по порядку.

Запилим двустороннюю плату. Возьмем стандартный набор gerber файлов который я отправляю на печать. О том как он формируется в EagleCAD я писал в одной из своих старых статей.

У нас там будет набор из файлов, из которых нам нужны только будут файлы

top_metal.gbr — верхний слой
bottom_metal.gbr — нижний слой
Dimensions.gbr — контур платы
drill.txt — сверловка

У меня они делаются запуском JOB проекта для CAM Eagle. Вот, можете скачать его и использовать. Корректный файл препроцессора, вывод которого без проблем принимают и наши конторы и китайские.

Запускаем FlatCam. Открывается такое белое окошко. Давайте все настроим. Идем во вкладку Options. И выбираем там Applications Default:

И выставляем там подряд все настройки. Во первых миллиметры, ибо империал нам нахер не упал.

Plot Options это просто настройки отображения. На результат не влияет. Галочка Plot решает за отображение, Sold за закраску, а Multicolored за разноцветность слоев.

Isolations Routing это то самое вырезание дорожек. Давайте тут сразу зададим дефолтные значения. Диаметр инструмента. Острие у штихеля может быть 0.1 или 0.2мм. Толще тоже бывают. Но эти самые ходовые. Лучше если параметр этот превосходит реальную ширину инструмента. Т.к. больше будет допуск и шире итоговые дорожки. Но, ни в коем случае не уже реального инструмента. Если сделать слишком широкие, то некоторые трассы просто не будут проложены, это будет видно. Между ними просто не пройдет инструмент. Так что надо ловить компромис. Обычно вкатывает 0.23 почти всегда.

Width (#passes) сколько делать проходов. Обычно один или два. Для очень узких дорожек не больше одного, а если топология жирная, да еще с силовыми дорожками и высокими напряжениями, то можно и побольше, для надежности.

Pass Overlap: перекрытие проходов. Указывается в частях от ширины. Т.е. 0.15 это 15% от ширины инструмента. Достаточно, чтобы сточить широкую канавку из двух, а не получить два штриха.

Combine Passes — эта галочка сливает разные проходы в одну обработку. Если ее не поставить, то у вас два прохода дадут два файла. Иногда полезно.

Board Cutout — обрезка платы. Тут также указываешь диаметр инструмента (Tool Dia:). На этот раз уже фрезы которая будет отрезать текстолит. Margin — это отступ от края контура по которому будет резаться. Gap size это ширина крепежных язычков, которыми будет соединена плата с пластиной из которой ее будут вырезать. Ну чтобы он не улетела в никуда. Потом их выламывают просто и все. В параметре Gaps можно выбрать где будут эти язычки и сколько их будет. Варинтов тут 2(T/B) — два вверху и внизу, 2(L/R) — два слева и справа, четыре штуки. Но эта хрень вещь бесполезная. Т.к. она умеет обрабатывать только квадратные платы. А если плата другой формы, то она обрезку сделает под квадрат. Как обкорнать не квадратную плату я расскажу ниже. Там все не просто.

Non-copper regions — настройки определяющие полигоны которые надо снести. Тут только задавать смещение от изначальной геометрии (Boundary Margin), там же галочка на скругление углов (Rounded Corners). Я не заморачивался тут с ними никогда.

Exellon Options — отображение сверловок. Plot — отображение, Solid — заливка. На конечный результат не влияет. Чисто опции интерфейса.

Create CNC JOB определяют параметры сверловки. Там есть глубина сверловки Cut Z, обычно ставится как толщина платы+0.2мм. Высота на которой сверло будет перемещаться к следующей точке — Travel Z, скорость подачи в мм/мин Feed rate. Я обычно ставлю 30. Торопиться тут некуда, особенно с очень тонкими сверлами. Toolchange Z — высота смены инструмента. Обычно при сверловке приходится менять сверла, т.к. много типов разных отверстий. Вот, для удобства, можно сразу задать высоту смены инструмента. Чтобы туда станок уходил перед остановкой на замену. Spindle speed это скорость вращения шпинделя, если конечно ваш ЧПУ станок может ей рулить. Мой вот не умеет (но я работаю над этим). Mill Holes — это интересная опция, указываем ей предельный диаметр. Скажем 1мм и все отверстия больше 1мм он будет пытаться не сверлить, а фрезеровать. Тогда можно воткнуть вместо сверла фрезу диаметром 1мм и забить на остальные размеры. Он их фрезанет и все.

Geometry Options — это, как я понял, настройки фрезеровки разных полигонов. Там все как и обычно Cut Zглубина фрезеровки, я поставил -0.1мм. Travel Z — безопасная высота перемещения от места до места, обычно пару миллиметров над платой. Feed Rate — скорость подачи. Тут индивидуально все. Tool dia — диаметр инструмента или его режущей кромки.

Paint Area — этим инструментом делается выкашивание меди с больших полигонов, как бы закрашивание их гравировкой. Тут все аналогично. Ставится диаметр инструмента (Tool dia), можно взять фрезу побольше т.к. 0.2 штихелем попробуй заштрихуй все, задается перекрытие проходов (Overlap) и отступ от от исходной линии контура который будет закрашен.

Ну и последний пункт это CNC Job Options. Он хорош тем, что тут можно еще раз указать диаметр инструмента (как понял, он пойдет в справку в гкод) и задать начальный кусок гкода (prepend) , который тупо вставится в начало и конечyый кусок гкода, который будет в конце (append). Тут можно пихать что угодно. Смену инструмента, остановку-пуск шпинделя, какие то подготовительные мероприятия и что на душу положит.

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

Создаем новый проект через File — New и вгружаем в него наши гербер файлы. Через File-OpenGerber и File-Open Exellon. Грузим все файлы.

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

Скрываем все слои, кроме того с которым будем работать. Начнем со слоя Top. Выбираем его на вкладе Project и переходим на вкладку Selected (я предупреждал, что интерфейс наркоманский!)

Если вы изначально правильно настроили все дефолтные значения, то тут уже ничего крутить не надо. Все что нужно уже подставлено. Если нет, то заполните нужные значения. Теперь видите там ниже кнопки Generate Geometry в конце каждой секции? Каждая эта кнопка генерирует свой объект. Нас интересует Isolation — она сделает раскрой дорожек, с учетом ширины фрезы и количества проходов.

Поскольку все данные внесены, то жмем Generate Geometry и получаем результат:

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

А на вкладке Project появился еще один объект:

Это контур нашей фрезеровки изолирующей проводники. Выбираем его и переходим в Selected, а там уже нас ждет подготовка под фрезеровку Create CNC Job:

Данные уже все вставлены, взяты из дефолтных. Можно подправить если вдруг что захотелось. Жмем Generate и получаем еще один обьект в Project.

Это трассировка. Теперь ее надо выгрузить в GCODE. Выбираем его, переходим на вкладку Selected и жмем кнопку Export GCODE, сохраняем файл. Готово!

Теперь разберемся со сверловкой. Сверлить будем с морды.

Да, если при вставке drill.txt из Eagle у вас в FlatCam отверстия убредают черт знает куда, то дело все в том, что в Eagle кривоватый экспорт Drill который иногда обрезает незначащие нули впереди. А формат Exellon этого не любит. Для этого у флаткама есть специальная опция. Надо написать в консоли FlatCam’a

set_sys excellon_zeros T

И все, проблема кривых игловских сверловок решена. Написать достаточно один раз, и опция будет запомнена в недрах программы навсегда.

Выбираем наш Drill.txt и переходим на вкладку Selected. Тут нас поджидают диаметры отверстий. Можно выбрать все сразу и тогда они будут просверлены за один заход.

Если же поставить галочку Tool Change, то после отсверловки каждого диаметра станок будет останавливаться и показывать смену инструмента. Ну или менять его, если есть соответствующая оснастка. Там же можно указать высоту смены инструмента — Tool Change Z. Удобно когда бошка сама уходит на удобную высоту. А можно выбирать диаметры отдельно и получить несколько программ под каждый инструмент в отдельности. Когда все параметры указали, то жмем Generate и получаем еще один объект:

Выбираем его и делаем EXPORT GCODE

Получили сверловку в виде GCODE файла.

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

Итак, убираем все лишние слои с экрана и открываем только bottom. Теперь в главном меню в пункте Toolвыбираем инструмент Double Sided PCB Tool и он появляется на вкладке Tool

Выбираем там слой который мы будем зеркалить. Это наш Bottom_metal.gbr. А дальше надо выбрать:

Ось симметрии, по которой плата будет зеркалиться. А также реперные точки. В графу point box указываем координаты точки через которые должна пройти ось симметрии. Направление оси (по х или по у мы уже указали выше). Пусть будет по X. Как узнать координаты? А тут просто, кликаем мышкой примерно в середине платы. При клике у нас в буфер обмена сохраняются координаты куда мы кликнули. Их мы вставляем в поле Point Box. Через эту точку примерно пройдет ось симметрии:

Теперь надо поставить реперные отверстия. Их надо ставить слева и справа от платы по одну сторону оси симметрии:

Точно также, кликаем и копипастим их координаты в поле Aligment Hole через запятую. Только расставля их учитывайте, то, что они должны быть За зоной фрезеровки контура, отмеченной желтым цветом. Если это проебать, то у вас фреза при обрезке контура врежется в реперные штыри. Осталось только вписать диаметр реперных отверстий и нажать кнопку Create Aligment Drill и у вас появляются отличные симметричные реперные точки.

Теперь жмем кнопку Mirror Object и относительно той же оси симметрий наш слой bottom_metal.gbr зеркально развернется.

Все, теперь повторяем с ним те же операции, что и со слоем Top. Т.е. сформировать геометрию через Isolation Routing, потом по ней сделать Create CNC Job и экспортировать GCODE.

Aligment Drills экспортируем в GCODE точно также как мы это делали в с обычной сверловкой. Будут отдельным файлом.

Осталось самую малость. Сделать контур обрезки. Я уже говорил, что это можно сделать через CutOut, но он убогий и режет только прямоугольники. Даже если у вас плата в форме круга, он зафигачит вам его квадратуру. А это как бы не айс. К сожалению НОРМАЛЬНО через графический интерфейс тут ничего не сделать. Но графический интерфейс у флаткама всасывает по мощности консольному. Выполняем несколько комманд:

isolate Dimensions.gbr -dia 2 -passes 1 -outname cut

Эта команда сделает изолирующий контур вокруг фигуры Dimension.gbr, что есть контур нашей платы инструментом диаметром 2мм, нашей отрезной фрезой то есть. Сделает за один проход и сохранит в выходном объекте с именем cut.

exteriors cut -outname cutout

Эта команда возьмет наш обьект cut и на его основе сделает еще один обьект, по большей его кромке (т.к. isolate делает два контура, изолируя контур платы как изолировала бы дорожку). Результатом станет объект cutout

delete cut

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

geocutout cutout -dia 2 -gapsize 0.8 -gaps tb

Эта команда обходит по контуру и создает траекторию резки. Причем она понимает и крепежные язычки. dia это диаметр режущей фрезы в 2мм, gapsize это размер крепженых язычков, а gaps их расположение. В данном случае tb означает top & bottom. Но можно указать число, например, 4. И будет четыре язычка.

cncjob cutout -z_cut -1.6 -z_move 2 -feedrate 60 -tooldia 2 -spindlespeed 20000 -outname cutout.tap

Эта команда делает обьект фрезеровки из траектории cutout углубляюсь на глубину z_cut в 1.6мм (толщина текстолита), безопасная дистанция z_move 2 мм над платой. С подачей feedrate 60мм/сек и диаметром обрезной фрезы в 2мм. Также указана скорость шпинделя spindlespeed 20000. Выходной файл зовется cutout.tap

delete cutout

Удаляем промежуточный обьект cutout, чтобы не засорял проект.

Все, у нас есть cutout.tap из которого можно сделать экспорт GCODE как мы уже делали раньше. Только обратите внимание на то, что у нас обрезка не зеркальная. Т.е. мы сверлим репера, сверлим основные отверстия, фрезеруем Top, потом переворачиваем плату, сажаем на репера, фрезераем Bottom, снова переворачиваем и фрезеруем контур. Чтобы сделать зеркальный Dimensions.gbr можно там же, где мы делали зеркалирование Bottom, после выставления точек реперов и оси симметрии и переворота Bottom слоя выбрать слой Dimensions и не меняя других значений нажать кнопку Mirror и для него. А потом уже сделать операцию формирования обрезки командами.

Команды не обязательно вставлять по одному, можно скопипастить прям пачкой, вот так:
isolate Dimensions.gbr -dia 2 -passes 1 -outname cut
exteriors cut -outname cutout
delete cut
geocutout cutout -dia 2 -gapsize 0.8 -gaps tb
cncjob cutout -z_cut -1.6 -z_move 2 -feedrate 60 -tooldia 2 -spindlespeed 20000 -outname cutout.tap
delete cutout

Теперь вы понимаете, почему я так матюгаюсь на интерфейс этой программы. СКОЛЬКО надо делать телодвижений для создания платы. А хотелось бы быстрей. И это возможно! Видели какой там командный интерфейс! А ведь можно сделать текстовый файл, куда записать все эти команды и запустить его как параметр к FlatCam и он начнет работать по нему сам. Скажем, вот такой файл cmd.tcl

new

set_sys excellon_zeros T

open_gerber d:/Mill/eagle/FTD/FT2232_db/Dimensions_mr.gbr
open_gerber d:/Mill/eagle/FTD/FT2232_db/Bottom_metal_mr.gbr
open_excellon d:/Mill/eagle/FTD/FT2232_db/drill_mr.txt

isolate Dimensions_mr.gbr -dia 1.5 -passes 1 -outname cut
exteriors cut -outname cutout
delete cut
geocutout cutout -dia 1.5 -gapsize 0.8 -gaps tb
cncjob cutout -z_cut -1.2 -z_move 2 -feedrate 60 -tooldia 1.5 -spindlespeed 20000 -outname cutout.tap
delete cutout
write_gcode cutout.tap d:/Mill/eagle/FTD/FT2232_db/Dimensions_mr.tap

isolate Bottom_metal_mr.gbr -dia 0.23 -passes 1 -overlap 0.5 -combine 1 -outname bottom
cncjob bottom -z_cut -0.15 -z_move 2 -feedrate 100 -tooldia 0.2 -spindlespeed 20000 -outname bottom.tap
delete bottom
write_gcode bottom.tap d:/Mill/eagle/FTD/FT2232_db/Bottom_mr.tap

drillcncjob drill_mr.txt -drillz -1.6 -travelz 3 -feedrate 100 -spindlespeed 300 -toolchange True -outname drill.tap
write_gcode drill.tap d:/Mill/eagle/FTD/FT2232_db/Drill_mr.tap

Скармливаем через параметр командной строки FlatCam’у:

«c:\Program Files (x86)\FlatCAM\FlatCAM.exe» —shellfile=cmd.tcl

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

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

Продвинутые юзеры могут написать скрипт на cmd или bash, сделать на плате сразу какие-нибудь хитрые отверстия, скажем с диаметром 1.2345678мм , сгрепать их по характерным диаметрам из drill файла вместе с координатами и на их основе забацать координатные заморочки с зеркалированием строк.

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

Я пока так не упарывался. Но на батничках немного поразвлекался. Поскольку двусторонки я делаю редко, а обычно справляюсь односторонками, то в первую очередь сделал себе батник для быстрой генерации фрезеровки под односторонку. Гербер файлы надо выдать в отзеркаленном виде. То же касается и сверловки. В Eagle это делается просто. В CAM процессоре задаем следующие параметры:

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

  • bottom_metal_mr.gbr — рисунок дорожек
  • Dimensions_mr.gbr — контур платы
  • Drill_mr.txt — сверловка.

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

Дальше запускаем следующий батник:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 
:: Умолчания @SET DIA=2 @SET GAP=0.8 @SET GAPS=tb @SET DPT=1.6 @SET FR=60 @SET GRV=0.1 @SET PAS=2 @SET GRVW=0.3 ::Имена файлов и пути @SET DIMEN=Dimensions_mr.gbr @SET ISOL=Bottom_metal_mr.gbr @SET DRI=drill_mr.txt @SET FP="c:\Program Files (x86)\FlatCAM\FlatCAM.exe" @ECHO Обрезка платы по контуру dimension_mr.gbr. Cверловка drill_mr.txt Гравировка bottom_metal_mr.gbr @ECHO. @ECHO По умолчанию: @ECHO Диаметр фрезы	= %DIA% мм @ECHO Подача фрезы	= %FR% мм/мин @ECHO Ширина язычка	= %GAP% мм @ECHO Расп. язычка	= %GAPS% @ECHO Глубина сверл.	= %DPT% мм @ECHO Глубина грав.	= %GRV% мм @ECHO Ширина штихеля = %GRVW% мм @ECHO Проходов грав.	= %PAS% @ECHO. @SET /P DIA=Введите диаметр отрезной фрезы: @SET /P FR=Введите скорость подачи обрезки контура: @SET /P GAP=Введите ширину крепежного язычка: @SET /P GAPS=Введите параметры расположения язычка (8,4,tb,lr,2tb,2lr): @SET /P DPT=Введите глубину сверления отверстий (обычно это толщина текстолита+0.2): @SET /P GRV=Введите глубину гравировки (0.05...0.2): @SET /P GRVW=Введите ширину лезвия штихеля гравера: @SET /P PAS=Введите количество проходов гравера: :: Берем текущий каталог set dp=%CD% :: Меняем в нем слеши на обратные (это надо флаткаму) set dp=%dp:\=/% :: Вбиваем программу. echo new > cmd.tcl echo set_sys excellon_zeros T >> cmd.tcl :: Грузим файлы из корня echo open_gerber %dp%/%DIMEN% >> cmd.tcl echo open_gerber %dp%/%ISOL% >> cmd.tcl echo open_excellon %dp%/%DRI% >> cmd.tcl ::Первым под обрезку идет контур. echo isolate %DIMEN% -dia %DIA% -passes 1 -outname cut >> cmd.tcl echo exteriors cut -outname cutout >> cmd.tcl echo delete cut >> cmd.tcl echo geocutout cutout -dia %DIA% -gapsize %GAP% -gaps %GAPS% >> cmd.tcl echo cncjob cutout -z_cut -%DPT% -z_move 2 -feedrate %FR% -tooldia %DIA% -spindlespeed 20000 -outname cutout.tap >> cmd.tcl echo delete cutout >> cmd.tcl echo write_gcode cutout.tap %dp%/Dimensions_mr.tap >> cmd.tcl :: Гравировка поверхности echo isolate %ISOL% -dia %GRVW% -passes %PAS% -overlap 0.5 -combine 1 -outname bottom >> cmd.tcl echo cncjob bottom -z_cut -%GRV% -z_move 2 -feedrate 100 -tooldia 0.2 -spindlespeed 20000 -outname bottom.tap >> cmd.tcl echo delete bottom >> cmd.tcl echo write_gcode bottom.tap %dp%/Bottom_mr.tap >> cmd.tcl :: Затем идет сверловка echo drillcncjob %DRI% -drillz -%DPT% -travelz 3 -feedrate 100 -spindlespeed 300 -toolchange True -outname drill.tap >> cmd.tcl echo write_gcode drill.tap %dp%/Drill_mr.tap >> cmd.tcl :: Последним шагом запускаем флаткам и скармливаем ему этот скрипт. %FP% --shellfile=%dp%/cmd.tcl

Отвечаем на вопросы в диалоговом режиме, если жать Enter, то будут подставлены умолчания. А под конец запустится флаткам и сделает все сам 🙂

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

Быстрый старт STM32F103C8T6 + Arduino IDE

 Arduino  Комментарии к записи Быстрый старт STM32F103C8T6 + Arduino IDE отключены
мая 152018
 

Быстрый старт STM32F103C8T6 + Arduino IDE

Создано: 25 февраля 2016

Отладочная плата F103C8T6 на базе STM32 по параметрам значительно опережает аналогочные по размеру Arduino Nano или Leonardo, а по скорости близка к Arduino DUE. Есть интерес попробовать, но у новичка могут возникнуть трудности с первым запуском и программированием данной платы. Теперь есть возможность заливать скетчи через Arduino IDE. Подробности далее…

Содержание

  1. Отличия STM32F103C8T6 от Arduino Nano v3.0
  2. Подготовка железа
  3. Подготовка ПО
  4. Закачка скетча (blink) в плату

1. Отличия STM32F103C8T6 от Arduino Nano v3.0

STM32F103C8T6 Arduino
Nano v3.0
Частота ядра 72 МГц 16 МГц
Память для кода (Flash) 64 кбайта 32 кбайта
Память для переменных ОЗУ (SRAM) 20 кбайт 2 кбайта
Рабочее напряжение 3.3В
Память EEPROM отсутствует, но существуют
программные эмуляторы
1 кбайт

2. Подготовка железа

Для работы нам понадобится:

Для активации режима программирования на плате STM следует преставить перемычки: первая на 1, вторая на 0.

Конвертер FTDI переключить на питание 3.3 Вольта (перемычкой/джампером)

Соединить проводами плату (П) и конвертер (К):

П(A9) -> K(RX)

П(А10) -> К(TX)

П(GND) -> K(GND)

П(3.3) -> K(VCC)

stm32 pins

3. Подготовка ПО

  1. Скачать дополнение для Arduino IDE, которое будет поддерживать платы STM32
  2. Распаковать архив в папаку HARDWARE, которую можно найти в папке вашей Arduino IDE
  3. Запустить Arduino IDE (или перезапустить если была открыта) и проверить появился ли раздел STM32 Boards в списке Плат

4. Закачка скетча (blink) в плату

В папке которую мы распаковали в п.3.б заходим по следующему пути: Arduino_STM32\examples\Digital\Blink\ и через Arduino IDE открываем файл blink.ino либо можете взять текст отсюда:

void setup() { // initialize digital pin PB1 as an output. pinMode(PC13, OUTPUT); } // the loop function runs over and over again forever void loop() { digitalWrite(PC13, HIGH); // turn the LED on (HIGH is the voltage level) delay(1000); // wait for a second digitalWrite(PC13, LOW); // turn the LED off by making the voltage LOW delay(1000); // wait for a second } 

Далее в Arduino IDE:

  • Выбрать плату Generic STM32F103C series
  • Выбрать Variant: (20k RAM. 64k Flash)
  • Выбрать Upload method: «Serial»
  • Выбрать Порт: (порт сооответствующий FTDI конвертеру)

stm32 ide

Жмем кнопку Вгрузить и результат сразу должен быть виден.

Циклоконвертор на микроконтроллере AVR

 Arduino  Комментарии к записи Циклоконвертор на микроконтроллере AVR отключены
Апр 232018
 

Циклоконвертор на микроконтроллере AVR

A cycloconverter (CCV) or a cycloinverter converts a constant voltage, constant frequency AC waveform to another AC waveform of a lower frequency by synthesizing the output waveform from segments of the AC supply without an intermediate DC link (Dorf 1993, pp. 2241–2243 and Lander 1993, p. 181). There are two main types of CCVs, circulating current type or blocking mode type, most commercial high power products being of the blocking mode type.[1]

Невозможно представать себе современную жизнь без асинхронных двигателей. Когда задумываешься о конструкции асинхронного трехфазного двигателя, которая практически не претерпела изменений уже более ста лет, то приходишь к выводу, что его изобретение базировалось на двух законах, известных уже к тому времени. Это- движение рамки с током в магнитном поле, известное как сила Лоренца, а также,- закон электромагнитной индукции Фарадея. Для понимания принципа работы рассматриваемой в статье схемы необходимо достаточно ясно представлять себе принцип работы традиционного асинхронного трехфазного двигателя при питании обмоток статора «круговым» трехфазным током.


РИС 1

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

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

В технической литературе можно встретить традиционное представление о способах регулирования скорости вращения таких двигателей. Например рассматривается два способа регулирования скорости:

  • Регулирование путем изменения уровня питающего напряжения
  • Регулирование путем изменения частоты питающего напряжения

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


РИС 2

На схеме рис 2 представлено в виде графиков и векторной диаграммы круговое электромагнитное поле. Для реализации циклоконвертора будем поступать следующим образом. Убирать из непрерывной последовательности по одному периоду кругового магнитного поля. На рис 2 «вырезаем» напряжение между точками A и B имея в виду соблюдение 2х условий

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

Для обеспечения этих условий реализуем работу симисторного коммутатора (схема 1) по следующему алгоритму.


СХЕМА 1

Установка скорости осуществляется переменным резистором R4 . При максимуме напряжения на движке этого резистора (1,1В) на время 1 цикла пропуска вращающегося электромагнитного поля (30 мс) приходится 256 циклов включенного вращающегося электромагнитного поля. При уменьшении напряжения на движке 4, уменьшается, соответственно, время включения вращающегося электромагнитного поля с 250х30 мс до 1х30 мс и неизменном времени паузы (30мс). При напряжении на движке переменного резистора 4 равном 0,56В , т.е. половинном от максимального, время включенного и отключенного напряжения оказываются равными и продолжается 30мс . При дальнейшем снижении напряжение на резисторе R4 происходит увеличение времени паузы между подачами питания в виде 1 цикла (30мс) вращающегося электромагнитного поля. С целью более точной синхронизации работы схемы с напряжением трехфазной электросети моменты перехода через ноль одной из фаз фиксируются микроконтроллером на выводе 5.

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


ФОТО 1

Для испытания был выбран вентилятор промышленного изготовления с трехфазным асинхронным двигателем мощностью 120 Вт и скоростью вращения 900 об/мин. Для того , чтобы исследовать зависимость скорости вращения данного вентилятора от модификации циклоконвертором питающего напряжения была измерена частота вращения крыльчатки с помощью оптического датчика на основе фотодиода. Это достаточно несложно сделать, если направить фотодиод напросвет , через крыльчатку на источник света (например окна, выходящего на улицу в дневное время). В качестве измерителя частоты был использован обычный мультиметр имеющий возможность измерения частоты. Эксперименты показали, что при питании двигателя вентилятора модифицированным напряжением соотношением 50 на 50, частота вращения ( у такого вентилятора рис 3) уменьшается примерно в 4 раза.


РИС 3

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

Анализ такого напряжения путем разложение в ряд Фурье, показывает, что получаемое напряжение представляет собой совокупность двух гармонических составляющих 25Гц и 75 Гц, причем основной гармоникой оказывается 25Гц, а 75 Гц является третьей гармоникой, которая, как известно из теории, имеет меньший «вес» и не оказывает существенного влияния не процессы вращения. То есть мы опять же уменьшаем не только напряжение, но и частоту. Ввиду периодичности получаемого с помощью циклоконвертора напряжения можно также сделать вывод, что число высших гармоник здесь оказывается конечным и, следовательно, электроэнергия не уходит безвозвратно на потери (т.е. в «тепло»).

Отметим предполагаемые преимущества рассматриваемого циклоконвертора перед традиционным VFD:

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

Недостатки

  • Частота кругового поля «обогащается» конечным числом высших гармоник
  • Невозможность получить поле вращения выше 50 Гц
  • Наличие «провалов» питающего кругового поля

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

Ссылка: https://en.wikipedia.org/wiki/Cycloconverter

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

Обозначение Тип Номинал Количество Примечание Магазин
диодный мост Выпрямительный диод W04G 1 Поиск в win-source
VD5 Стабилитрон КС510А 1 Поиск в win-source
VD6 Диод КД521В 1 Поиск в win-source
VD7 Стабилитрон КС156А 1 Поиск в win-source
LD1, LD2 Светодиод АЛ307Б 2 Поиск в win-source
VT1 Биполярный транзистор BC547B 1 Поиск в win-source
DD1 МК AVR 8-бит ATtiny13A 1 Поиск в win-source
V1, V2, V3 Симистор BT139-800E 3 Поиск в win-source
VD8 Оптопара MOC3023 1 Поиск в win-source
VD9, VD10 Оптопара MOC3083M 2 Поиск в win-source
R1 Резистор 22 кОм 1 Поиск в win-source
R2 Резистор 80 Ом 1 Поиск в win-source
R3 Резистор 100 кОм 1 Поиск в win-source
R4 Подстроечный резистор 20 кОм 1 Поиск в win-source
R5, R6 Резистор 15 кОм 2 Поиск в win-source
R7 Резистор 510 Ом 1 Поиск в win-source
R8, R9, R10 Резистор 160 Ом 3 МЛТ-125 Поиск в win-source
C2 Конденсатор 0.1 мкФ 1 Км10 Поиск в win-source
С3 Конденсатор 15 мкФ 1 К50-35 Поиск в win-source
С1 Конденсатор 33 мкФ 1 К50-35 Поиск в win-source
sw МТ-1 1 тумблер Поиск в win-source
CN7 CN7 1 разъем 7 конт Поиск в win-source

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

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

Управление светом esp8266

 Arduino  Комментарии к записи Управление светом esp8266 отключены
Мар 012018
 

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

Немного лирики в начале. Идея «умного» выключателя света совсем не нова и, наверное, это первое, что приходит в голову тем, кто начал знакомство с платформой Arduino и элементами IoT. И я этому не исключение. Поэкспеременировав с элементами цепей, моторчиками и светодиодами хочется сделать нечто более прикладное, что востребовано в повседневной жизни и, самое главное, будет удобно в использовании, а не останется жертвой эксперимента в неугоду комфорту.

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

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

НАИМЕНОВАНИЕ ОПИСАНИЕ ЦЕНА
1 HLK-PM01 Адаптер 220VAC в 5VDC 4,02€
2 SSR-40DA Твердотельное реле для управления током в цепи 3,35€
3 AMS1117-3.3 Понижатель напряжения c 5V на 3V 1,29€
4 ESP8266-01 Микроконтроллер с WiFi 2,35€
Итого: 11,01€

Так же мне понадобились: сервер, с помощью которого выключатель будет управляться через Интернет, Arduino Uno, с помощью которого я программировал ESP, роутер и расходные материалы как провода, клеммы и т.д., всё это может варироваться от вкусов и никак не повлияет на конечный результат.

Цены взяты из Ebay, где я их и покупал.

А вот как выглядят элементы из таблицы:

Умный WiFi выключатель света - 2

Теперь можно составить и схему подключения:

Умный WiFi выключатель света - 3

Как вы наверное заметили, схема очень простая. Все собиратся легко, быстро и без пайки. Эдакий рабочий прототип, с которым не нужно долго возиться. Всё связано проводами и клеммами. Единственный минус это то, что реле не влезло в гнездо выключателя. Да, изначально я планировал запихнуть всё это в стену за выключателем, чтобы смотрелось эстетично. Но к моему сожалению места в гнезде оказалось мало и реле просто напросто не влезло ни вдоль, ни поперек:

Умный WiFi выключатель света - 4

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

Умный WiFi выключатель света - 5

Изолента спасёт от удара током… надеюсь.

А теперь поговорим о програмной части.

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

Умный WiFi выключатель света - 6

Надеюсь, я когда нибудь все перепишу и связь будет основана на более быстром протоколе нежели HTTP, но для начала сойдет. Удаленно лампочка меняет свое состояние приблизительно за 1-1.5 секунды, а с выключателя моментально, как и подобает порядочному выключателю.

Программировании ESP8266-01

Самый простой способ сделать это — с помощью Arduino. Скачать необходимые библиотеки для Arduino IDE можно с GitHub. Там же все инструкции по установке и настройке.

Далее нам нужно подключить ESP к компьютеру, для этого понадобится либо USB to Serial Адаптер (типа FTDi, CH340, FT232RL) либо любая Arduino платформа (у меня была Arduino Uno) с выходами RX и TX.

Стоит отметить, что ESP8266-01 питается от 3.3 Вольта, а значит ни в коем случае не подключайте его к питанию Arduino, которые (часто) питаются от 5 Вольт, напрямую иначе все сгорит к чертям. Можно использовать понижатель напряжения, который приведен в таблице выше.

Схема подключения проста: подключаем TX, RX и GND ESP к RX, TX и GND адаптера/Arduino соотвественно. После этого, собственно, подключение готово к использованию. Микроконтроллер можно программировать используя Arduino IDE.

Пара нюансов при использовании Arduino Uno:

  • На Uno есть выход для 3.3В, но его оказалось недостаточно. При подключении к нему ESP, все вроде работает, индикаторы горят, но связь с COM портом теряется. Поэтому я использовал другой источник питания на 3.3В для ESP.
  • К тому же у UNO не возникло никаких проблем при общении с ESP, с учетом того, что UNO питался от 5В, а ESP от 3В.

После нескольких экспериментов с ESP8266-01, выяснилось, что ESP чувствительны к подключенным к GPIO0 и GPIO2 напряжениям. В момент старта они ни в коем случае не должны быть заземлены, если вы намереваетесь запустить его в штатном режиме. Более подробно о старте микроконтроллера тут. Я этого не знал и мне пришлось слегка менять схему, т.к. в версии ESP-01 присутсвтуют только эти 2 пина и в моей схеме используются оба.

А вот и сама программа для ESP:

Показать код

#include <ESP8266WiFi.h> #include <WiFiClient.h> #include <ESP8266WebServer.h> #include <ESP8266mDNS.h> #include <ESP8266HTTPClient.h> extern "C" { // эта часть обязательна чтобы получить доступ к функции initVariant #include "user_interface.h" } const char* ssid = "WIFISSID"; // Имя WiFi const char* password = "***************"; // Пароль WiFi const String self_token = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; // токен для минимальной безопасности связи const String serv_token = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; // токен для минимальной безопасности связи const String name = "IOT_lamp"; // имя выключателя, читай лампочки const String serverIP = "192.168.1.111"; // внутренний IP WEB сервера bool lamp_on = false; bool can_toggle = false; int button_state; ESP8266WebServer server(80); // веб сервер HTTPClient http; // веб клиент const int lamp = 2; // Управляем реле через GPIO2 const int button = 0; // "Ловим" выключатель через GPIO0 // функция для пинга лампочки void handleRoot() { server.send(200, "text/plain", "Hello! I am " + name); } // функция для недействительных запросов void handleNotFound(){ String message = "not found"; server.send(404, "text/plain", message); } // Да будет свет void turnOnLamp(){ digitalWrite(lamp, LOW); lamp_on = true; } // Да будет тьма void turnOffLamp(){ digitalWrite(lamp, HIGH); lamp_on = false; } // Отправляем серверу события ручного вкл./выкл. void sendServer(bool state){ http.begin("http://"+serverIP+"/iapi/setstate"); String post = "token="+self_token+"&state="+(state?"on":"off"); // По токену сервер будет определять что это за устройство http.addHeader("Content-Type", "application/x-www-form-urlencoded"); int httpCode = http.POST(post); http.end(); } // Изменяем состояние лампы void toggleLamp(){ if(lamp_on == true) { turnOffLamp(); sendServer(false); } else { turnOnLamp(); sendServer(true); } } // Получаем от сервера команду включить void handleOn(){ String token = server.arg("token"); if(serv_token != token) { String message = "access denied"; server.send(401, "text/plain", message); return; } turnOnLamp(); String message = "success"; server.send(200, "text/plain", message); } // Получаем от сервера команду выключить void handleOff(){ String token = server.arg("token"); if(serv_token != token) { String message = "access denied"; server.send(401, "text/plain", message); return; } turnOffLamp(); String message = "success"; server.send(200, "text/plain", message); } // Устанавливаем MAC чтобы давать одинаковый IP void initVariant() { uint8_t mac[6] = {0x00, 0xA3, 0xA0, 0x1C, 0x8C, 0x45}; wifi_set_macaddr(STATION_IF, &mac[0]); } void setup(void){ pinMode(lamp, OUTPUT); pinMode(button, INPUT_PULLUP); // Важно сделать INPUT_PULLUP turnOffLamp(); WiFi.hostname(name); WiFi.begin(ssid, password); // Ждем пока подключимся к WiFi while (WiFi.status() != WL_CONNECTED) { delay(500); } // Назначем функции на запросы server.on("/", handleRoot); server.on("/on", HTTP_POST, handleOn); server.on("/off", HTTP_POST, handleOff); server.onNotFound(handleNotFound); // Стартуем сервер server.begin(); } void loop(void){ server.handleClient(); // Проверяем нажатие выключателя button_state = digitalRead(button); if (button_state == HIGH && can_toggle) { toggleLamp(); can_toggle = false; delay(500); } else if(button_state == LOW){ can_toggle = true; } } 

Пару замечаний по коду:

  • Очень важно объявить пин GPIO0 как pinMode(button, INPUT_PULLUP), т.к. в схеме мы не используем резистор для этой кнопки. А у ESP есть свои «вшитые» для этих самых целей.
  • При отлове состояния кнопки желательно установить задержку при считывании чтобы избежать ложного срабатывания в момент нажатия.

Программировании WEB сервера

Тут можно дать волю своей фантазии и использовать любые доступные средства для создания сервиса который будет обрабатывать запросы присылаемые выключателем и отправлять запросы на включение/выключение.

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

Умный WiFi выключатель света - 7

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

Это всё что касается портала, думаю нет смысла писать о нем больше, но если возникнут вопросы, то с радостью отвечу на них в комментариях.

Вместо заключение

Спасибо, если дочитали статью до конца и, возможно, нашли в ней что либо для себя полезное. Буду рад советам и критике. В целом, мне до сих пор кажется, что узкое место в цепи это Адаптер на 5В и буду рад, если Вы поделитесь своим опытом решения подобных задач. Что касается ESP8266-01, то пока он не вызвал у меня никаких нареканий кроме как особого использования пинов GPIO. Работает пока стабильно вторую неделю. Успехов в проектах.

Автор: A3a

Источник
http://www.pvsm.ru/umny-j-dom/119964

Что такое токен?

 Arduino  Комментарии к записи Что такое токен? отключены
Янв 052018
 

1

Что такое токен?

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

Continue reading »

ИМПУЛЬСНЫЙ БЛОК ПИТАНИЯ НА TL494 И IR2110

 Arduino  Комментарии к записи ИМПУЛЬСНЫЙ БЛОК ПИТАНИЯ НА TL494 И IR2110 отключены
Янв 052018
 

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

Continue reading »

4 импульсных блоки питания

 Arduino  Комментарии к записи 4 импульсных блоки питания отключены
Янв 052018
 

Хочу предоставить вашему вниманию четыре разные схемы импульсных блоков питания на всеми любимой народной IR2153. Все эти схемы были мною собраны и проверены в 2013-2015 годах. Сейчас, в 2017 году, я раскопал все эти схемы в своих архивах и спешу с вами поделиться. Пусть вас не смущает что не ко всем схемам есть фото собранных устройств, что на фото будут и не полностью собранные блоки питания, но это все что мне удалось найти в своих архивах.

Continue reading »

HCPL-3120

 Источники питания, Электронные прибамбасы  Комментарии к записи HCPL-3120 отключены
Янв 052018
 

HCPL-3120 — Высокоскоростной оптоэлектронный прибор с IGBT-транзистором на выходе. Он идеально подходит для управления мощными IGBT и MOSFET транзисторами в схемах инверторов, управляющих электромоторами.

Continue reading »

Использование драйвера ключей нижнего и верхнег о уровней IR2110 — объяснение и примеры схем

 Arduino, Источники питания, Технологии  Комментарии к записи Использование драйвера ключей нижнего и верхнег о уровней IR2110 — объяснение и примеры схем отключены
Янв 052018
 

Использование драйвера ключей нижнего и верхнего уровней IR2110 — объяснение и примеры схем - 1

Continue reading »