Tkkastur.ru

Авто Бан
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Самоиндукция (примеры формула)

В опыте по индукции, когда изменялось магнитное поле, образованное током, протекающим в катушке Л, витки катушки также подвергались действию этого поля. По закону индукции в них должна наводиться э. д. с. индукции. Это явление действительно происходит и называется самоиндукцией, а наведенная в витках катушки А э. д. с. — электродвижущей силой самоиндукции.

Самоиндукцию в простейших случаях замыкания и размыкания цепи постоянного тока можно показать на следующих опытах. При замыкании цепи (рис., а) две лампочки подключены параллельно к батарее Б через ключ К: Л1 — последовательно с катушкой L с железным сердечником, Л2 — последовательно с реостатом Р, равным по сопротивлению катушке.

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

При размыкании цепи (рис., б) лампочка накаливания Л включена параллельно катушке L с большим числом витков и железным сердечником, подключенной через ключ К к батарее Б. При замкнутой цепи накал лампочки незначителен, при размыкании же ключа К лампочка ярко вспыхивает. Это объясняется тем, что при размыкании цепи и быстром убывании тока в витках катушки наводится э. д. с. самоиндукции, под действием которой через лампочку проходит ток, значительно больший, чем ток от батареи (см. график на рис. 262, б).

Электродвижущая сила самоиндукции

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

Ф = βI.

Тогда электродвижущая сила самоиндукции в контуре:

EL = — k(∆Ф)(∆t) = —k(β∆I/∆t) = — L(∆I/∆t)

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

Коэффициент пропорциональности L называется коэффициентом самоиндукции или индуктивностью контура.

В чем измеряют самоиндукцию

В системе СИ индуктивность измеряют в генри (гн). Генри есть индуктивность контура, в котором при равномерном изменении тока на I а за 1 сек возникает э. д. с. самоиндукции в 1 в: гн=всек/а.

Физически индуктивность — это величина, которая характеризует свойства контура (или вообще электрической цепи), обусловливающие величину Ф магнитного потока, связанного с контуром, при данной силе I тока в нем

Индуктивность катушки зависит в первую очередь от числа п витков и вещества сердечника (относительной магнитной проницаемости μ), а также от площади S витков и длины l катушки. В единицах системы

Читайте так же:
126 карбюратор регулировка поплавка

СИ Ln=μ μ (n 2 /l) S.π

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

Формулу для э. д. с. индукции можно представить также в виде где М называют коэффициентом взаимоиндукции и измеряют также в генри.

Генри входит в размерность магнитной постоянной μ = 4π • 10 -7 гн/м.

Можно показать, что это соответствует размерности н/а 2 , : гн/м=всек/(а • м)=дж/(а 2 • м)=н •м1(а 2 • м)=н/а 2 .

Индукционная катушка

Индукционная катушка

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

В цепь первичной катушки, которая питается током от аккумулятора Б, включен электромагнитный прерыватель тока М, состоящий из упругой пластинки с железным якорем на конце, расположенным против сердечника С катушки. На пластинке имеется контакт, касающийся регулировочного винта Р и через который замыкается цепь питания первичной катушки.

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

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

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

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

Вихревые токи

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

Читайте так же:
Регулировка развала колес москвича 2140

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

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

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

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

Arduino и прерывания таймера

Плата Arduino позволяет быстро и минимальными средствами решить самые разные задачи. Но там где нужны произвольные интервалы времени (периодический опрос датчиков, высокоточные ШИМ сигналы, импульсы большой длительности) стандартные библиотечные функции задержки не удобны. На время их действия скетч приостанавливается и управлять им становится невозможно.

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

В этой статье обсуждаются таймеры AVR и Arduino и то, как их использовать в Arduino проектах и схемах пользователя.

Что такое таймер?

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

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

Итак, предположим, что имеется устройство, которое должно что-то делать, например мигать светодиодом каждые 5 секунд. Если не использовать таймеры, а писать обычный код, то надо установить переменную в момент зажигания светодиода и постоянно проверять не наступил ли момент ее переключения. С прерыванием по таймеру вам достаточно настроить прерывание, и затем запустить таймер. Светодиод будет мигать точно вовремя, независимо от действий основной программы.

Как работает таймер?

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

Читайте так же:
Можно ли отрегулировать сцепление на гранте

Вы можете проверять этот флаг вручную или можете сделать таймерный переключатель — вызывать прерывание автоматически в момент установки флага. Подобно всяким другим прерываниям вы можете назначить служебную подпрограмму прерывания (Interrupt Service Routine или ISR), чтобы выполнить заданный код, когда таймер переполнится. ISR сама сбросит флаг переполнения, поэтому использование прерываний обычно лучший выбор из-за простоты и скорости.

Чтобы увеличивать значения счетчика через точные интервалы времени, таймер надо подключить к тактовому источнику. Тактовый источник генерирует постоянно повторяющийся сигнал. Каждый раз, когда таймер обнаруживает этот сигнал, он увеличивает значение счетчика на единицу. Поскольку таймер работает от тактового источника, наименьшей измеряемой единицей времени является период такта. Если вы подключите тактовый сигнал частотой 1 МГц, то разрешение таймера (или период таймера) будет:

T = 1 / f (f это тактовая частота)
T = 1 / 1 МГц = 1 / 10^6 Гц
T = (1 ∗ 10^-6) с

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

Типы таймеров

В стандартных платах Arduino на 8 битном AVR чипе имеется сразу несколько таймеров. У чипов Atmega168 и Atmega328 есть три таймера Timer0, Timer1 и Timer2. Они также имеют сторожевой таймер, который можно использовать для защиты от сбоев или как механизм программного сброса. Вот некоторые особенности каждого таймера.

Timer0:
Timer0 является 8 битным таймером, это означает, что его счетный регистр может хранить числа вплоть до 255 (т. е. байт без знака). Timer0 используется стандартными временными функциями Arduino такими как delay() и millis(), так что лучше не запутывать его если вас заботят последствия.

Timer1:
Timer1 это 16 битный таймер с максимальным значением счета 65535 (целое без знака). Этот таймер использует библиотека Arduino Servo, учитывайте это если применяете его в своих проектах.

Timer2:
Timer2 — 8 битный и очень похож на Timer0. Он используется в Arduino функции tone().

Timer3, Timer4, Timer5:
Чипы ATmega1280 и ATmega2560 (установлены в вариантах Arduino Mega) имеют три добавочных таймера. Все они 16 битные и работают аналогично Timer1.

Конфигурация регистров

Для того чтобы использовать эти таймеры в AVR есть регистры настроек. Таймеры содержат множество таких регистров. Два из них — регистры управления таймера/счетчика содержат установочные переменные и называются TCCRxA и TCCRxB, где x — номер таймера (TCCR1A и TCCR1B, и т. п.). Каждый регистр содержит 8 бит и каждый бит хранит конфигурационную переменную. Вот сведения из даташита Atmega328:

TCCR1A
Бит7654321
0x80COM1A1COM1A0COM1B1COM1B0WGM11WGM10
ReadWriteRWRWRWRWRRRWRW
Начальное значение
TCCR1B
Бит7654321
0x81ICNC1ICES1WGM13WGM12CS12CS11CS10
ReadWriteRWRWRRWRWRWRWRW
Начальное значение

Наиболее важными являются три последние бита в TCCR1B: CS12, CS11 и CS10. Они определяют тактовую частоту таймера. Выбирая их в разных комбинациях вы можете приказать таймеру действовать на различных скоростях. Вот таблица из даташита, описывающая действие битов выбора:

CS12CS11CS10Действие
Нет тактового источника (Timer/Counter остановлен)
1clk_io/1 (нет деления)
1clk_io/8 (делитель частоты)
11clk_io/64 (делитель частоты)
1clk_io/256 (делитель частоты)
11clk_io/1024 (делитель частоты)
11Внешний тактовый источник на выводе T1. Тактирование по спаду
111Внешний тактовый источник на выводе T1. Тактирование по фронту

По умолчанию все эти биты установлены на ноль.

Допустим вы хотите, чтобы Timer1 работал на тактовой частоте с одним отсчетом на период. Когда он переполнится, вы хотите вызвать подпрограмму прерывания, которая переключает светодиод, подсоединенный к ножке 13, в состояние включено или выключено. Для этого примера запишем Arduino код, но будем использовать процедуры и функции библиотеки avr-libc всегда, когда это не делает вещи слишком сложными. Сторонники чистого AVR могут адаптировать код по своему усмотрению.

Сначала инициализируем таймер:

Регистр TIMSK1 это регистр маски прерываний Таймера/Счетчика1. Он контролирует прерывания, которые таймер может вызвать. Установка бита TOIE1 приказывает таймеру вызвать прерывание когда таймер переполняется. Подробнее об этом позже.

Когда вы устанавливаете бит CS10, таймер начинает считать и, как только возникает прерывание по переполнению, вызывается ISR(TIMER1_OVF_vect). Это происходит всегда когда таймер переполняется.

Дальше определим функцию прерывания ISR:

Сейчас мы можем определить цикл loop() и переключать светодиод независимо от того, что происходит в главной программе. Чтобы выключить таймер, установите TCCR1B=0 в любое время.

Как часто будет мигать светодиод?

Timer1 установлен на прерывание по переполнению и давайте предположим, что вы используете Atmega328 с тактовой частотой 16 МГц. Поскольку таймер 16-битный, он может считать до максимального значения (2^16 – 1), или 65535. При 16 МГц цикл выполняется 1/(16 ∗ 10^6) секунды или 6.25e-8 с. Это означает что 65535 отсчетов произойдут за (65535 ∗ 6.25e-8 с) и ISR будет вызываться примерно через 0,0041 с. И так раз за разом, каждую четырехтысячную секунды. Это слишком быстро, чтобы увидеть мерцание.

Если мы подадим на светодиод очень быстрый ШИМ сигнал с 50% заполнением, то свечение будет казаться непрерывным, но менее ярким чем обычно. Подобный эксперимент показывает удивительную мощь микроконтроллеров — даже недорогой 8-битный чип может обрабатывать информацию намного быстрей чем мы способны обнаружить.

Делитель таймера и режим CTC

Чтобы управлять периодом, вы можете использовать делитель, который позволяет поделить тактовый сигнал на различные степени двойки и увеличить период таймера. Например, вы бы хотели мигания светодиода с интервалом одна секунда. В регистре TCCR1B есть три бита CS устанавливающие наиболее подходящее разрешение. Если установить биты CS10 и CS12 используя:

то частота тактового источника поделится на 1024. Это дает разрешение таймера 1/(16 ∗ 10^6 / 1024) или 6.4e-5 с. Теперь таймер будет переполняться каждые (65535 ∗ 6.4e-5с) или за 4,194с. Это слишком долго.

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

Чтобы использовать режим CTC надо понять, сколько циклов вам нужно, чтобы получить интервал в одну секунду. Предположим, что коэффициент деления по-прежнему равен 1024.

Расчет будет следующий:

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

Функция настройки setup() будет такая:

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

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

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

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

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

Послесловие переводчика

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

голоса
Рейтинг статьи
Ссылка на основную публикацию
Adblock
detector