Как управлять приборами с помощью компьютера

Транзистор Дарлингтона

Если нагрузка очень мощная, то ток через неё может достигать
нескольких ампер. Для мощных транзисторов коэффициент \(\beta\) может
быть недостаточным. (Тем более, как видно из таблицы, для мощных
транзисторов он и так невелик.)

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

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

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

Сопротивления должны быть достаточно большими, чтобы не влиять на ток
база — эмиттер. Типичные значения — 5…10 кОм для напряжений 5…12 В.

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

Модель \(\beta\) \(\max\ I_{к}\) \(\max\ V_{кэ}\)
КТ829В 750 8 А 60 В
BDX54C 750 8 А 100 В

В остальном работа ключа остаётся такой же.

Наше, отечественное

Прошерстив несколько десятков сайтов с различными девайсами, остановил свой выбор на отечественной разработке RODOS-8. Это web-реле идеально подходит для подобного решения. Оно позволяет не только включать или отключать электроприборы через Интернет, но и способно «запоминать» их положение. Бесценная функция для моего случая, потому что в нашем поселке электричество могут отключать без предупреждения. А самое главное, на сайте https://silines.ru можно напрямую задать вопрос разработчикам, а все инструкции расписаны подробно и на русском языке, а не на китайском, как на Алиэкспрессе.

Через 4 дня в пункте выдачи я получил вот такие вот две коробки:

В каждом комплекте также находился патч-корд и стандартный блок питания на 12 В

Размер устройства составляет 90 на 50 на 32 мм. Весит белая коробка 85 г – примерно столько же, как и присланный вместе с ней блок питания. Итого доставка посылки обошлась мне совсем недорого. В принципе, даже с затратами на пересылку выходит дешевле, чем заказывать из Китая, но что-то я отвлекся от рассказа про цыплят.

Лок-биты (Pro)

Лок-биты (lock-bits) позволяют управлять доступом к памяти микроконтроллера, что обычно используется для защиты устройства от копирования. Лок-биты собраны опять же в конфигурационный лок-байт, который содержит: BOOTLOCK01, BOOTLOCK02, BOOTLOCK11, BOOTLOCK12, LOCKBIT1, LOCKBIT2 (для ATmega328). Калькулятор лок-битов можно использовать этот. BOOTLOCK биты позволяют запретить самому МК запись (самопрограммирование) во flash память (область программы и область загрузчика)

А вот локбиты LOCKBIT позволяют запретить запись и чтение flash и EEPROM памяти извне, при помощи программатора, т.е. полностью защитить прошивку от скачивания и копирования:

Таким образом включив LOCKBIT1 (лок-байт будет 0x3E) мы запретим внешнюю запись во Flash и EEPROM память, т.е. при помощи ISP программатора, а включив LOCKBIT1 и LOCKBIT2 (лок-байт: 0x3C) полностью заблокируем заодно и чтение данных из памяти микроконтроллера. Повторюсь, всё описанное выше относится к ATmega328p, для других моделей МК читайте в соответствующих даташитах.

Программа для USBAsp V2.0

Программу разработал «Боднар Сергей», работает не только с китайским программатором USBAsp v.2.0, но и другими программаторами. Первым делом скачиваем программу, разархивируем и запускаем «AVRDUDEPROG.exe». В качестве примера, прошью китайскую плату Arduino UNO R3 в которой установлен микросхема ATmega328P. В программе, жмем на вкладку «Микроконтроллеры» и выбираем ATmega328P.

Далее, необходимо выбрать прошивку, в строке «Flash» нажимаем «. . .», переходим в папку «C:Program FilesArduinohardwarearduinoavrootloadersatmega» и выбираем «ATmegaBOOT_168_atmega328.hex», жмем «Открыть»

Подключаем программатор к плате «Arduino UNO R3», и нажимаем кнопку «Программирование».

В конце, выйдет диалоговое окно, о удачном окончании программировании.

Ссылки Скачать драйвер для программатора USBASP v2.0 (LC Technology, ATMEL) Скачать программу AVRDUDE_PROG v.3.3

Купить на Aliexpress Программатор USBASP v2.0 (LC Technology, ATMEL) Адаптер для ATMEL AVRISP, USBASP, STK500 (10 pin на 6 pin)

Купить в Самаре и области Программатор USBASP v2.0 (LC Technology, ATMEL) Адаптер для ATMEL AVRISP, USBASP, STK500 (10 pin на 6 pin)

Популярное

  • Устройство и программирование микроконтроллеров AVR для начинающих – 143
  • Трехканальный термостат, терморегулятор, таймер на ATmega8 – 70
  • Двухканальный термостат, терморегулятор на ATmega8 – 67

Программатор USBASP — устройство, распиновка, подключение, прошивка

Программирование микроконтроллеров AVR фирмы Atmel

1. Микроконтроллеры — первый шаг2. Системы счисления: десятичная, двоичная и шестнадцатиричная3. Логические операции, логические выражения, логические элементы4. Битовые операции5. Прямой, обратный и дополнительный коды двоичного числа6. Программа AVRDUDE_PROG: программирование микроконтроллеров AVR ATmega и ATtiny

USBASP -USB программатор для программирования микроконтроллеров AVRUSBASP ISP программатор и AVRdude prog: программирование микроконтроллеров AVR ATmega, ATtiny. Как прошить микроконтроллер.Published by: Мир микроконтроллеров

Пользователи, знакомые с микроконтроллерами Atmel или хотя бы с Arduino скорее всего знают о дешевом программаторе USBasp, цена которого на Ebay около $ 3. Распространены две версии программатора:

  • USBasp 2.0 — с стабилизатором на 3.3 вольта.
  • USBasp 3.0 — плата поменьше, без стабилизатора. Так же у него не выведены на разъем порты PD0 и PD1(Аппаратный UART).

схема USBasp2.0

распиновка разъема USBasp

Генератор тактовой частоты

Но самым важным для нас в настоящее время является блок «Oscillator Circuits/Clock Generation» (Схема генератора/Генератор тактовой частоты).

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

Да и не лишним будет заранее просчитать: успеет ли МК выполнить тот или иной фрагмент программы за отведенное для этого время.

В даташите ищем соответствующую главу: «System Clock and Clock Options» (Тактовый генератор и его параметры). В ней видим раздел «Clock Sources» (Источники тактового сигнала), в котором имеется таблица с перечнем видов тактовых сигналов. В этом разделе указано, что данный МК имеет встроенный тактовый RC-генератор. В разделе «Default Clock Source» имеется указание о том, что МК продается уже настроенным для использования встроенного RC-генератора. При этом тактовая частота МК — 1 МГц.

Из раздела «Calibrated Internal RC Oscillator» (Калиброванный RC-генератор) узнаем, что встроенный RC-генератор имеет температурный дрейф в пределах 7,3 — 8,1 МГц. Может возникнуть вопрос: если частота встроенного тактового генератора 7,3 — 8,1 МГц, то как была получена частота 1 МГц? Дело в том, что тактовый сигнал попадает в схемы микроконтроллера через программируемый делитель частоты (Об это рассказано в разделе «System Clock Prescaler»).

В данном микроконтроллере он имеет несколько коэффициентов деления: 1, 2, 4 и 8. При выборе первого мы получим частоту самого тактового генератора, при включении последнего — в 8 раз меньше, т.е., 8/8=1 МГц. С учетом вышесказанного получаем, что тактовая частота данного МК при включенном делителе с коэффициентом 8 будет в пределах от 7,3/8 = 0,9125 МГц (9125 КГц) до 8,1/8 = 1,0125 МГц.

Обратите внимание на один ну очень важный факт: стабильность частоты дана при температуре МК 25 градусов по шкале Цельсия. Вспомним, что внутренний генератор выполнен по RC схеме

А емкость конденсатора очень зависит от температуры!

Примеры симисторов

Примеры симисторов приведены в таблице ниже. Здесь \(I_H\) — ток удержания,
\(\max\ I_{T(RMS)}\) — максимальный ток, \(\max\ V_{DRM}\) — максимальное напряжение,
\(I_{GT}\) — отпирающий ток.

Модель \(I_H\) \(\max\ I_{T(RMS)}\) \(\max\ V_{DRM}\) \(I_{GT}\)
BT134-600D 10 мА 4 А 600 В 5 мА
MAC97A8 10 мА 0,6 А 600 В 5 мА
Z0607 5 мА 0,8 А 600 В 5 мА
BTA06-600C 25 мА 6 А 600 В 50 мА

Реле

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

Реле подкупают своей простотой и эффективностью. Например, реле
HLS8-22F-5VDC — управляется напряжением 5 В и способно коммутировать
нагрузку, потребляющую ток до 15 А.

Главное преимущество реле — простота использования — омрачается
несколькими недостатками:

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

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

Заключение

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

Полезные источники

  1. Хоровиц П., Хилл У. Искусство схемотехники. Том 1. — М.: Мир, 1993.
  2. Управление мощной нагрузкой переменного тока
  3. Управление мощной нагрузкой постоянного тока. Часть 1
  4. Управление мощной нагрузкой постоянного тока. Часть 2
  5. Управление мощной нагрузкой постоянного тока. Часть 3
  6. Щелкаем реле правильно: коммутация мощных нагрузок
  7. Управление мощной нагрузкой переменного тока
  8. Управление MOSFET-ами #1
  9. Современные высоковольтные драйверы MOSFET- и IGBT-транзисторов
  10. Ключ на плечо! – особенности применения высоковольтных драйверов производства IR

Активная нагрузка

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

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

Прошиваем AVR при помощи Arduino AVP ISP Shield от DIYMORE

Шилд от DIY More, пожалуй, самый интересный образчик сегодняшнего обзора. Не секрет, что в ISP программатор можно превратить любую плату Arduino (и даже обычный микроконтроллер ATmega328). Все дело в том, что для того, чтобы стать программатором ISP, нужно иметь цифровые выходы, которые можно превратить в выходы ISP: MISO, SCK, RST, MOSI. На всех оригинальных и не очень, платах Arduino Uno (и многих других) вообще специально разведен ISP 6-пин коннектор. Через него можно запрограммировать сам микроконтроллер на плате.

DIYMORE AVR ISP shield установленный на RoboDyn Uno R3. В панельке ATmega328P.

На официальном сайте итальянцев есть даже несколько инструкций как превратить обычную плату Arduino в ISP программатор: «Как превратить Arduino в ISP программатор» и «И как программировать ATmega328 без всего остального». У меня уже есть плата с удобной колодкой для установки микросхем, соответственно я могу воспользоваться ей, для прошивки микроконтроллера (соединив кабелем ISP разъемы). Этот вариант уже рассматривался, тем более, что в сети обнаружился весьма интересный вариант в виде платы-расширения для Arduino Uno с удобной колодкой для установки микросхемы, светодиодами, динамиком ISP 6-пин выводом, местом для установки 6-пин UART вывода, место для установки 10-пин ISP вывода.

Плата устанавливается как плата расширения на Arduino Uno. Причем не обязательно это должен быть оригинал от итальянцев. Все отлично взгромоздилось на клон от Robot Dyn. А затем все так же замечательно и прошилось.

Итак, чтобы воспользоваться AVR ISP shield сперва в Arduino-носитель нужно закачать скетч ArduinoISP. Скетч входит в стандартную поставку Arduino IDE и располагается в примерах. Залить скетч можно как обычным способом, через загрузчик (по USB), так и через ISP на плате Arduino при помощи одного из вышеописанных программаторов ISP. Напомню, что если загружать скетч из Arduino IDE посредством Upload using programmer, то скетч загрузится в плату без загрузчика. И для того, чтобы им потом плату можно было прошивать по USB придется отдельно загрузить в нее загрузчик. Данная операция осуществляется в том числе и через Arduino IDE (Burn bootloader), разумеется, с использованием ISP программатора. Однако, если скомпилировать скетч через Export compiled Binary, то можно загрузить через ISP-программатор и AVRDUDESS (или просто AVRDUDE) прошивку вместе с загрузчиком.

Но, рекомендуется идти простым путем, а именно загрузкой по USB из среды Arduino IDE скетча ArduinoISP

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

Прошивка осуществляется через Upload using programmer (через обычную кнопку загрузки скетч закачается в носитель).

Еще одна особенность AVR ISP Shield. На ней, как и на плате Arduino Uno присутствует вывод ISP 6-пин. И если установить плату AVR ISP Shield на Arduino Uno, то задаешься вопросом — к какому микроконтроллеру дает доступ этот разъем? К тому, что установлен в колодку или к тому, что стоит в Arduino? Ответ находится очень просто — экспериментом. Разъем на AVR ISP Shield дает доступ только к микроконтроллеру, что установлен на колодке. Запрограммировать плату Arduino-носитель через шилд не выйдет. Нужно его снять и подключиться к разъему ISP самой платы Arduino. С другой стороны, AVR ISP Shield можно использовать вообще без Arduino-носителя (Uno), просто подключив 6-ти пиновый разъем к ISP-программатору (не забыв про питание). Точно так же можно подключить и USB2TTL, дабы получать вывод с Serial.

Пробрасывает ли AVR ISP Shield вывод в последовательный порт на плату носитель с установленной ArduinoISP? Нет, такой функции не предусмотрено, хотя ее ничто не мешает реализовать. Ну почти ничего. Во-первых, необходимо физически соединить выводы с колодки на AVR ISP Shield к необходимым pin-ам, а затем произвести проброску чтения с этих пинов в скетче ArduinoISP с выводом их в стандартный Serial. Текущие версии фреймворка Arduino позволяют провернуть подобную операцию. Связь будет односторонней, только с микроконтроллера на плате и в порт носителя, но тем не менее, подобный подход позволит в одном устройстве соединить сразу две функции. Что, согласитесь, удобно.

USB-TTL (UART)

Этот способ реализован прямо на платах Arduino при помощи USB-TTL (USB-UART) преобразователя, именно поэтому мы можем подключить плату к компьютеру и загрузить код. USB-TTL позволяет только загрузку данных во flash, остальные возможности (как у ISP программатора) ему недоступны. В то же время он ограничен только возможностями загрузчика, но в этом уроке мы рассматриваем только стандартные. Также USB-TTL мост позволяет микроконтроллеру общаться с компьютером по последовательному соединению (тот самый Serial и монитор com порта). Есть платы без бортового USB-TTL, например Arduino Pro Mini. Для работы с ними нужно купить внешний USB-TTL преобразователь. Также загрузка прошивки через UART возможна и в “голый” микроконтроллер при условии наличия там загрузчика, который запишет принятый код во flash. Про запись загрузчика мы поговорим ниже. UART “загружатор” подключается к пинам RX и TX Ардуино (или микроконтроллера), RX->TX и TX->RX, также обязательно подключается земля GND. Если у прошиваемой платы нет своего питания, то подключается и питание. Загрузчик отрабатывает при запуске МК, поэтому непосредственно перед загрузкой прошивки МК должен быть сброшен (перезагружен), и для этого на платах USB-UART есть вывод DTR (Data Terminal Ready), который подключается к пину RST Reset и собственно выполняет сброс перед перед загрузкой прошивки. На платах Pro Mini есть отдельный пин DTR.

USB-TTL Arduino
DTR DTR
RX TX
TX RX
GND GND
VCC/5V/3.3V VCC

  Китайцы выпускают USB-TTL модули в широком ассортименте, но в целом они все одинаковые по своей сути. Ссылка на результат поиска на aliexpress, и ссылка на все USB-TTL в моём любимом магазине WAVGAT. Что использую я? В основном платку на CP2102. Перед заказом модуля обязательно убедитесь в том, что у него есть выход DTR, иначе этот модуль можно будет использовать только для “общения” с контроллером через COM порт.   Для работы с таким преобразователем нужно установить драйвер для чипа, на базе которого собран модуль, это может быть CP2102, CH340/341, FT232, PL2303 и другие. Прошивка загружается как обычно: выбираем порт, на котором сидит преобразователь, версию загрузчика и жмём загрузить, всё! Важный момент: на некоторых китайских версиях плат Arduino Pro Mini не распаян пин DTR, т.е. он не идёт на RST и автоматический сброс перед загрузкой прошивки не выполняется. В этом случае сброс нужно производить вручную, кнопкой RST, непосредственно перед загрузкой прошивки… Загрузка прошивки посредством загрузчика (bootloader) возможна с любого UART устройства, даже через Bluetooth. Но об этом мы поговорим в отдельном уроке.

Конденсаторы по питанию

Перед тем, как подать на микроконтроллер питающее напряжение, выполним правило, которое обязательно для всех цифровых микросхем: в непосредственной близости от выводов питания микросхемы должен быть керамический конденсатор емкостью 0,06 — 0,22 мкф. Обычно устанавливают конденсатор 0,1 мкф. Его часто называют блокировочным конденсатором.

В схему необходимо установить и электролитический конденсатор емкостью 4-10 мкф. Он также является блокировочным фильтром, но на менее высоких частотах. Такой конденсатор можно устанавливать один для нескольких микросхем. Обычно на 2-3 корпуса микросхем.

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

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

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

Прошиваем AVR при помощи USBtinyISP

Следующий модуль на рассмотрении для применения при прошивке — китайский синий модуль гордо обзывающийся USBtinyISP. Модуль построен на микросхеме ATTINY2313A-PU. По сути программатор есть ни что иное, как полная копия оригинального программатора USBtiny от AdaFruit. Только слегка изменена форма платы, вместо трехвыводного кварца используется двухвыводной, да и корпуса нет. В целом все тоже самое.

Китайский синий программатор-клон USBtinyISP

Программатор подцепляется стандартными драйверами от Lady Ada (см. вариант про FabISP) и определяется как USB-устройство. На плате разведено питание 5V, что позволяет программировать микроконтроллеры без внешнего питания. Впрочем, отключается оно перемычкой на плате.

Из особенностей платы можно упомянуть наличие двух колодок для подключения программируемого микроконтроллера. Один со стандартным 6-pin, второй 10-pin. По факту они идентичны и подключение 10-pin не добавит никакой супер способности, так как все выводы больше 6-го заполнены «землей».

Программирование Atmega8 через LPT-порт компьютера

Самый быстрый и дешевый способ запрограммировать Atmega8 –  применить LPT-программатор для AVR. Подобная схема приведена ниже.

Питание микроконтроллера осуществляется от простого стабилизатора напряжения 78L05. В качестве оболочки для программирования можно использовать программу UniProf.

При первом включении программы и при не подключенном контроллере, нажав кнопку «LPTpins», необходимо настроит выводы LPT-порта следующим образом:

В момент запуска UniProf, она автоматом определяет вид микроконтроллера. Загружаем в память UniProf прошивку Atmega8_USB_prog.hex, отклоняем подключение файла EEPROM.

Выставляем следующим образом фьюзы (для программы UniProF), нажав кнопку «FUSE»:

Для запоминания установок нажимаем все три кнопки «Write». Затем нажав на «Erase» предварительно очищаем память прошиваемого микроконтроллера. После этого уже жмем на «Prog» и дожидаемся завершения прошивки.

Перечисление (enumeration) USB-устройств HID

Все USB-устройства начинают работать с Перечисления. После получения информации перечисления операционная система узнает, какие драйверы загрузить, чтобы быть способной использовать устройство. Для HID-устройств Windows имеются встроенные драйверы и никаких специальных драйверов не нужно. Все, что нужно – чтобы устройство возвращало дескрипторы, соответствующие спецификации микропрограмм HID.

Дополнительно к минимальным общим дескрипторам USB-устройства, необходимы дополнительные дескрипторы для минимального HID-устройства: HIDDescriptor и ReportDescriptor. Все эти дескрипторы находятся в конце исходного файла.

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

В данной реализации, которая определяется, как использующий 2 пакета данных с ID 1 и 2. Размер пакета данных, возвращаемого каждым из них, определяется в JoystickReport1Size и JoystickReport2Size. Эти величины указывают размер каждого пакета данных.

В нашем случае ReportID1 имеет размер 8 байтов. Первый байт хранит ID сообщения. Следующие 7 байт информации хранят сведения о положении осей и хэта. ReportID2 содержит 5 — 1 для ID сообщения + 3 для 24 кнопок. Эти величины используются в подпрограмме ProcJoystickRequest, которая будет обсуждена позже.

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

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

Утилита тестирования HID (честно говоря, не очень понимаю, где ЭТО находится и откуда растет :) – прим. перев.) также полезное средство для расчета размера дескриптора. Он может сообщить размер этого дескриптора, когда вы добавляете все поля в проект. Но, в конце концов, я привык пересчитывать их вручную прямо в процессе.

Также имеется другая важная область в EndpointDescriptor – интервал опроса. Вы можете определить собственную величину в диапазоне от 10 до 255. Это определит частоту опроса. По умолчанию (значение 10 миллисекунд) контроллер проводит опрос 100 раз в секунду. Но также вам необходимо помнить, сколько пакетов данных должен рассчитать ваш джойстик за период опроса.

Если вы создаете собственную конфигурацию, вам нужно также скорректировать области VendorUSBID, DeviceUSBID и DeviceVersion. Вы можете также захотеть изменить строковое имя устройства, но, пожалуйста, оставьте авторские записи в VendorStringDescriptor. Это – для меня и для Игоря.

Режим с неуправляемой подачей напряжения на силовой трансформатор.

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

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

Существуют три основных способа управления выключателем:

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

Подходящий тип контроллера — Switchsync E113.

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

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

Подходящий тип контроллера — Switchsync F236.

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

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

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

Подходящий тип контроллера — Switchsync T183.

RODOS-8 – Результат налицо

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

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

Прошиваем AVR при помощи FabISP мимикрирующего под USBTiny44/USBTiny85 с 6 выводами ISP

Модуль FabISP является детищем FabLab MIT (того самого, Массачусетского Технологического). По сути FabLab — мастерская при университетах, где студенты могут сваять что-то своими руками. Вот один из студентов и навяаял внутрисхемный программатор для AVR на основе USBTinyIPS. Ознакомиться с его творчеством, равно как и скачать драйвера под программатор можно на страничке отчета студента по проделанной работе. Страничка уже находится в архиве, поэтому не ясно как долго она просуществует. Но FabISP используется в учебных курсах и видимо не скоро совсем уйдет с арены.

FabISP в исполнении китайских товарищей.

Интересная особенность. Через 6-ти пиновый кабель, который, кстати не поставляется вместе с модулем, FabISP может питать и микроконтроллер. В таком случае не требуется дополнительное питание, как у AVRISP mkii. Так же хочу заметить, что оригинальный FabISP требует предварительной прошивки и программатора, по типу того же AVRIPS. Но с Китая модули (GY ARDUINO ISP V2) приходят уже прошитыми, что существенно облегчает задачу.

Прошивка ATmega328P посредством AVRDUDESS через FabLAB USBTiny

Я не стал устанавливать драйвера со странички студента, а установил их от Lady Ada (изобретателя USBTiny). После установки драйверов программатор определился как Atmel USB Devices – USBtiny. Для того, чтобы программатором можно было пользоваться, необходимо распаять, если она у вас не распаяна, перемычку SJFAB (в некоторых нотациях это перемычка обзывается как SJ1). Перемычка используется для возможности программирования самого программатора. Более того на плате присутствует и вторая перемычка SJ2 (или же SJVCC). Она отвечает за подачу питания на микроконтроллер с программатора. Если ее распаять, то для микроконтроллера потребуется внешнее питание. Ознакомиться со схемой можно все с того же сайта MIT.

При прошивке через FabISP необходимо обратить внимание, что поскольку программатор использует порт USB, то в AVRDUDESS необходимо так же выбрать порт USB. Никакого моста на последовательные порты не создается

При прошивке в Arduino IDE в качестве программатора выбираем USBTiny. Порт выбирать не требуется. В среде отсутствует возможность выбрать USB, поэтому опция просто игнорируется, AVR находит программатор самостоятельно.

Соответственно, при помощи FabISP можно прошивать внутрисхемно, в том числе и загрузчик, как при помощи AVRDUDE, так и напрямую из Arduino IDE (порт можно не указывать, загружаем через меню Sketch – Upload Using Programmer или Burn bootloader, в качестве программатора выбираем USBtinyISP).

Рейтинг
( Пока оценок нет )
Editor
Editor/ автор статьи

Давно интересуюсь темой. Мне нравится писать о том, в чём разбираюсь.

Понравилась статья? Поделиться с друзьями:
Семинар по технике
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: