пятница, 28 декабря 2018 г.

Наипростейший драйвер на полевых транзисторах

Схема наипростейшего драйвера на полевых транзисторах приведена на рисунке:
Рисунок 1 - Наипростейший драйвер на полевых транзисторах

Данную схему использовать в серьезных проектах не рекомендуется. Данная схема является мостом на двух истоковых повторителях. Каждый истоковый повторитель состоит из двух комплементарных MOSFET транзисторов с различными (по отношению друг к другу) типами каналов (один имеет канал N типа а другой канал P типа). Обратными диодами являются - паразиные диоды транзисторов. Данные диоды очень плохи для этого поэтому лучше использовать данную схему либо для нагрузки без индуктивности или ставить внешние диоды на такой же ток и напряжение как и транзисторы. Т.к. затворы в каждом полумосте объединены то в такой схеме не получиться избежать "сквозных токов" т.е. таких токов которые проходят через полумост минуя нагрузку в тот момент когда один транзистор не успел закрыться а другой уже открывается. Дополнительные каскады усиления на схеме не показаны хотя их очень желательно поставить, однако практика показывает что схема может работать и без них но при этом не стоит рассчитывать на то что система управления выдержит работу на емкостную нагрузку в виде затворов транзисторов а также не стоит рассчитывать на быстродействие данной схемы. В общем схема имеет очень много недостатков и её очень не рекомендуется использовать, главное её достоинство в том что она очень простая и может сгодиться для того чтобы её быстро и ненапряжно собрать а потом немного с ней поиграть.

КАРТА БЛОГА (содержание)

воскресенье, 18 ноября 2018 г.

Защита RFID карт

На момент написания данной статьи, пластиковые карты с RFID широко распространены по всему миру, такими картами использует множество людей например для того чтобы хранить на них деньги, открывать двери со специальными замками и получать т.о. доступ в определенные места. Считать информацию с такой карты можно используя прибор который называют RFID ридером. RFID карта имеет внутри рамочную (или какую либо другую) антенну и микросхему которая запитывается от энергии получаемой от этой антенны а также с этой антенны микросхема карты принимает информацию от RFID ридера и отправляет ей информацию RFID ридеру. Чем мощнее излучение RFID ридера тем больше расстояние с которого он может получить информацию с карты, теоретически какой нибудь злоумышленник может изготовить такой ридер и например получить данные с карты которая расположена через стенку или в сумке. Много людей этого опасаются т.к. страх потерять деньги или ещё что либо важное понятен то в продаже начали появляться специальные металлические чехлы для защиты карты, иногда даже за весьма не дешёвые. Однако гарантированно защитить можно обычной алюминиевой фольгой т.к. в принципе защиты карты нет ничего магического, волны той частоты на которой работают RFID ридеры не проходят через фольгу. Для проверки был произведен эксперимент который можно посмотреть на видео:
Модуль показанный на видео имеет название "mfrc522" заказать такой можно на сайте по ссылке -> http://alii.pub/6cpxak

КАРТА БЛОГА (содержание)

четверг, 4 октября 2018 г.

Инфракрасный датчик препятствий

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

Выход такого датчика можно непосредственно подключать ко входу например микроконтроллера или входу кМОП интегральной микросхемы рассчитанной на соответствующее напряжение или к любому другому устройству для которого такой выход подходит, например можно подключить базу биполярного транзистора к выходу данного датчика но при этом надо правильно подобрать резистор R5 т.к. его сопротивление не должно быть слишком низким для того чтобы база транзистора не сгорела от большого тока. Можно подключить затвор MOSFET транзистора который может управляться логическими напряжениями логических уровней (так называемые Logic Level транзисторы). Транзистор, в свою очередь, может коммутировать например реле и т.о. например можно сделать автоматическое включение света в туалете или смывание в унитазе или даже автоподтирание и т.д. т.е. применение такого датчика ограничивается только фантазией его применяющего а также насущными его проблемами. В схеме имеется инфракрасный светодиод VD1 который, при замкнутом S1, светит постоянно инфракрасным светом (этого свечения не будет видно). В схеме имеется инфракрасный фотодиод VD2 (из телевизора например). Спектр чувствительности инфракрасного фотодиода должен совпадать со спектром излучения инфракрасного светодиода, используемых в данной схеме. Резистор R2 с фотодиодом VD2 образуют делитель, напряжение на выходе которого уменьшается при попадании инфракрасного света светодиода VD1 на фотодиод VD2. Светодиод VD1 и фотодиод VD2 устанавливаются так чтобы при поднесении какого либо предмета к светодиоду свет этого светодиода отражался от этого предмета и падал на фотодиод. Также необходимо постараться предотвратить попадание инфракрасного света от других источников на фотодиод. Компаратор DA1 -LM393 с открытым коллектором, поэтому с выхода этого компаратора на + питания ставиться резистор. Для того чтобы датчик правильно работал необходимо его настроить покрутив (или подвигав (зависит от конструкции)) резисторы R3 и R4. Их надо накрутить так чтобы при отсутствии препятствий перед датчиком и источников инфракрасного излучения светящих на него (напр. солнца, лампы накаливания и т.д.) напряжение на выводе 2 компаратора было больше напряжения на выводе 3. При появлении препятствия перед датчиком, напряжение на выводе 2 должно становиться меньше того напряжения которое установлено на выводе 3 при этом датчик должен срабатывать. По данной теме можно посмотреть видео:

готовые датчики http://got.by/2si8gy
lm393 http://got.by/2si7od

КАРТА БЛОГА (содержание)

воскресенье, 2 сентября 2018 г.

Робот манипулятор гусеничный на ардуино

На основе Ардуино и модулей для Ардуино можно сделать множество интересных вещей и конечно одними из самых интересных являются роботы. Как правило роботов делают копируя какие либо уже существующие в природе вещи например руки. Создать полноценную копию человека способную выполнять всё тоже самое что и человек очень трудно но передвижная рука на гусенечной платформе - это уже что то способное приносить пользу и сделать такую штуку стоит попытаться. На основе Ардуино сделать это будет не трудно. Ардуино можно использовать почти любое. Для изготовления руки понадобятся 4 сервомотора, две деревянные палочки от мороженного (или любые другие палочки для изготовления руки) + жестяная бвика и скрепка для изготовления захвата (или любые другие материалы для изготовления захвата). Простейшую гусеничную платформу можно сделать из двух моторредукторов, четырех шкивов и двух резинок. Можно также купить готовую платформу но это будет дороже. Для управления моторредукторами понадобиться драйвер двигателей например L293D. Для питания робота понадобятся батарейки или аккумуляторы. Для возможности управления этим роботом дистанционно и записи в него команд, понадобятся радиомодули. Для того чтобы радиоуправление нормально работало понадобяться два стабилизатора напряжения, один для радиомодуля на 3.3В, другой для силовой части робота т.е. для сервомоторов и драйвера моторредукторов. Теперь давайте рассмотрим схему электрическую:
Рисунок 1 - Схема робота манипулятора гусеничного 

Радиомодуль подключается к Ардуино по SPI, к выводам питания радиомодуля надо припаять конденсатор для нормальной работы. Стабилизатор напряжения силовой части лучше использоать импульсный т.к. линейный будет быстрее разряжать батарейки и при этом сильнее нагреваться. О том как сделать импульсный стабилизатор в статье Импульсный стабилизатор постоянного напряжения на MAX738 -такой стабилизатор хорошо подойдет для данного робота. Для радиомодуля можно использовать обычный линейный стабилизатор, например на LM317. Питание на Ардуино идет с батареек напрямую т.к. они подключены к выводу который идет на вход встроенного в Ардуино линейного стабилизатора (а точнее припаянного на Ардуино). Для управления роботом понадобиться пульт, давайте рассмотрим его схему:
Рисунок 2 - Схема пульта управления роботом манипулятором

4 потенциометра нужны для управления сервомоторами робота, сопротивления их желательно чтобы были побольше для экономии батареек. Большие сопротивления будут приводить к низкой помехоустойчивости но в данной схеме это не так важно если конечно пульт не будет эксплуатироваться в условиях с большими электромагнитными помехами. 100 килоОм должно быть достаточно для таких потенциометров, при этом потреблять они будут 5/(100000/4) = 0.0002 А = 0.2мА что очень экономно! Кнопки подойдут почти любые с нормальными контактами. Радиомодуль также надо запитать через стабилизатор и припаять конденсатор на выводы питания. Управлять платформой можно тремя кнопками, при желании можно добавить ещё одну. Две кнопки будут для записи положений руки робота и запуска выполнения последовательности действий.Теперь давайте рассмотрим скетч робота:
 В начале, как всегда, подключаются заголовочные файлы необходимых библиотек, потом инициализируются необходимые переменные и массивы. Имеется 4 массива в которые будут записываться состояния сервомоторов. Также есть массив с данными приходящими от пульта. В функции "setup" инициализируется радиомодуль, сервомоторы и порты ввода вывода. В основном цикле принимаются данные с пульта и запускается управление платформой, рукой, выполняется запись положений сервомоторов. Скетчь пульта:

В скетче пульта тоже подключаются заголовочные файлы необходимых библиотек, потом инициализируются необходимые переменные и массивы. В функции "setup" инициализируется радиомодуль и порты ввода вывода. В основном цикле считываются данные с кнопок и потенциометров и отправляются на приемник.
Скачать скетчи можно по ссылкам:
робот: https://yadi.sk/d/odRSho-z3amn8K
пульт: https://yadi.sk/d/yGmsHt3f3amnAq
Про данного робота можно посмотреть видео:

КАРТА БЛОГА (содержание)

четверг, 2 августа 2018 г.

Импульсный стабилизатор постоянного напряжения на MAX738

Простейший понижающий импульсный стабилизатор постоянного напряжения на 5В можно собрать на микросхеме MAX738:
Рисунок 1 - Импульсный стабилизатор на 5В на микросхеме MAX738

Микросхема имеет встроенный силовой ключ и систему управления этим ключём. Данный стабилизатор является понижающим т.е. напряжение на его входе д.б. больше чем на выходе. На выходе у него +5В. Входное напряжение должно находиться в диапазоне от +6В до +16В относительно общего провода. Диод VD1 д.б. диодом Шоттки для того чтобы потери были меньше и общий КПД преобразователя был больше. Индуктивность дросселя L1 должна находиться в диапазоне от 33мкГн до 100мкГн и он д.б. рассчитан на ток больше чем 750мА. Сердечник дросселя д.б. с зазором или изготовлен из MO пермаллоя. Вывод SHDN можно использовать для управления преобразователем, можно его запустить, можно остановить используя этот вывод. Если функция управления преобразователем не нужна то этот вывод можно просто соединить с плюсом входного напряжения. Стабилизатор имеет защиту от короткого замыкания на выходе. Если использовать микросхему в SMD корпусе то для изготовления платы может подойти такая разводка:
По данной теме можно посмотреть видео дополняющее данную статью:

В  магазине можно купить готовые понижающие преобразователи с регулировкой напряжения и на разные мощности http://got.by/2ofo2b
Можно купить микросхемы MAX738 и попробовать самостоятельно изготовить стабилизатор
http://got.by/2ofo8x


КАРТА БЛОГА (содержание)

суббота, 21 июля 2018 г.

Бесколлекторный электродвигатель с датчиком Холла

Бесколлекторные электродвигатели обычно более надёжны и долговечны по сравнению с коллекторными. Также бесколлекторные электродвигатели, как правило, менее шумные. По этому они всё чаще используются там где раньше использовали коллекторные двигатели и по этим причинам они почти всегда (если не совсем всегда) используются в вентиляторах (или как их еще называют "кулерах") для охлаждения электроники (напр. процессоров компьютеров) т.к. иначе их пришлось бы менять гораздо чаще и постоянно слышать более громкий шум. Бесколлекторные двигатели могут обладать большим КПД по сравнению с коллекторными при использовании быстрых электронных ключей с низким активным сопротивлением в открытом состоянии. Вполне возможно что так и есть в большинстве случаев. Недостатком бесколлекторных электродвигателей является то что для их работы требуется электроника которая в большей степени подвержена воздействию электромагнитных помех чем щёточно коллекторный узел коллекторных электродвигателей. К тому же это усложняет изготовление в "кустарных" условиях. Но, на самом деле, изготовить бесколлекторный электродвигатель в "кустарных" условиях совсем не трудно. Далее мы рассмотрим принцип работы бесколлекторного электродвигателя с датчиком Холла и попробуем изготовить такой в домашних условиях из почти подручных материалов. Статья о бесколлекторном электродвигателе уже имеется в данном блоге http://electe.blogspot.com/2017/03/blog-post.html там описан принцип работы простейшего шагового двигателя и режимы управления им. В шаговых двигателях, как правило, отсутствует обратная связь с датчиком положения ротора. Датчиком положения ротора может быть например датчик Холла. Датчик Холла - это такой датчик который реагирует на величину магнитного поля проходящего через этот датчик, в этом датчике проявляется эффект Холла который и вызывает эту реакцию. Для большей простоты использования, производители датчиков Холла встраивают в них дополнительные устройства напр. усилители, триггеры и т.д. Напр. в большинстве современных вентиляторов для охлаждения электроники стоят цифровые датчики Холла т.е. такие которые выдают на выходе цифровые сигналы зависящие от направления магнитной индукции через датчик. Использование таких датчиков значительно упрощает разработку бесколлекторного электродвигателя т.к. отпадает необходимость в дополнительных внешних устройствах усиления и оцифровки сигнала.
Конструкций бесколлекторных электродвигателей очень много. Двигатели маленьких вентиляторов могут быть устроены так:
Одна катушка с магнитопроводом образующим две пары полюсов:
Меняя направление тока в катушке мы меняем направления магнитной индукции в полюсах:
Датчик Холла расположен в промежутке между полюсами:
Снаружи расположен кольцевой постоянный магнит с двумя парами полюсов:
Этот магнит является частью ротора и вращается вместе с ним.
Микросхема получает информацию от датчика Холла и подаёт ток в катушку в нужном направлении:
Давайте теперь посмотрим как это может работать:
Допустим магнит повёрнут к датчику Холла северным полюсом и магнитное поле входит в этот датчик, датчик подает сигнал микросхеме и она подает ток на катушку, ротор начинает поворачиваться к устойчивому положению. В момент достижения этого положени, его вращение не прекращается т.к. ротор набрал скорость то он продолжает вращаться по инерции,
повернувшись немного дальше устойчивого положения, магнит ротора меняет направление магнитной индукции через датчик Холла. Датчик подаёт сигнал микросхеме которая меняет направление тока в катушке, ротор продолжает вращаться в том же направлении,
после перехода следующего устойчивого положения, направление тока снова меняется и так продолжается до тех пор пока не будет отключено питание.
Однако если ротор изначально находиться в устойчивом положении то двигатель не запуститься при подаче питания. Если разобрать и посмотреть реальные двигатели вентиляторов то можно увидеть что в них непростая магнитная система и датчик Холла расположен не посередине между полюсами. Возможно эти меры и избавляют двигатели от данного недостатка и двигатели запускаются всегда.
Пытаться изготовить подобную конструкцию в "кустарных" условиях будет не просто т.к. нужен магнит специальной формы, правильно искривлённой формы магнитная система и множество других хитростей. Для того чтобы упростить себе жизнь, надо:
во первых отказаться от магнитопровода в катушках статора вообще т.к. он приведет к возникновению эффекта "залипания" (об этом эффекте см. предыдущую статью про бесколлекторный электродвигатель  http://electe.blogspot.com/2017/03/blog-post.html). Также можно использовать магнитную систему с меньшим числом пар полюсов т.е. с одним т.к. один меньше двух а с числом пар полюсов меньшим единицы ничего работать не будет т.к. в таком случае полюсов не будет вообще. Сделать можно примерно так:
Взять два стальных диска достаточной толщины. Поставим их друг напротив друга.
Разместим внутри четыре неодимовых магнита так чтобы с одной стороны магнитное поле было направлено в одну сторону и с другой в противоположную:
Диски с магнитами будут соединены друг с другом и будут являться частью ротора
На статоре будут две катушки, соединенные так чтобы при подаче тока на два провода эти катушки создавали магнитные поля в противоположных направлениях:
Ещё один магнитик расположим снаружи и прикрепим к ротору. Датчик Холла разместим рядом с этим магнитом но так чтобы этот датчик был неподвижен:
Теперь давайте разберёмся с электроникой бесколлекторного электродвигателя.
Нам понадобиться цифровой датчик Холла для бесколлекторных электродвигателей.
Обычно такие датчики имеют выход с открытым коллектором поэтому понадобиться ещё и резистор на 10кОм
Также понадобиться микросхема CD4049 с элементами не
И мостовой драйвер двигателей L293D
теперь не трудно догадаться как всё это соединить
смотрите схему:
Для того чтобы двигатель заработал возможно придется немного поэксперементировать с расположением датчика Холла и других элементов конструкции. По данной теме можно посмотреть видео:
Конструкция простая и легко повторимая
Двигатель работает и его даже можно реверсировать повернув датчик Холла.

неодимовые магниты http://got.by/2nmklw
драйвер двигателя l293d http://got.by/2d05t8
микросхема 4049 с элементами НЕ внутри http://got.by/2nmlrp
Резистор можно откуда нибудь выпаять.
Датчик Холла надо подобрать правильный цифровой (не аналоговый), к сожалению не нашёл таких же как у меня
http://got.by/2nmlfg

КАРТА БЛОГА (содержание)

суббота, 23 июня 2018 г.

Мини электропечь из хлама

Электропечь для технических нужд (не для приготовления еды) может быть весьма полезным устройством в хозяйстве. Например её можно использовать для перевода металла в жидкое состояние и придания ему нужной формы. Освоив технологию литья металла можно произвести попытку организовать своё производство металлических изделий. Осваивать, как всегда, желательно с малого для того чтобы неизбежные неудачи в ходе обучения не приводили к серьезным финансовым потерям и потерям желания продолжать попытки. Для этого также желательно использовать наиболее дешёвые и доступные материалы. Неотъемлемыми частями электропечи являются: электронагреватель, теплоизолирующий корпус и теплоизолирующая крышечка которую можно снять для того чтобы в печь можно было что нибудь поместить и обратно поставить для того чтобы снизить потери тепла при работе печи. Нагреватели для электропечи бывают разные например дуговойиндукционный или нагреватель сопротивления. Первые два типа нагревателя могут быть более эффективными при правильном их использовании но они гораздо сложнее в изготовлении и гораздо дороже поэтому данные варианты, на начальном этапе, отпадают. Электронагревателем сопротивления, чаще всего, является длинная металлическая проволока которая нагревается при протекании по ней электрического тока. Чаще всего такая проволока изготавливается из специальных материалов которые не быстро окисляются при высоких температурах, имеют высокую температуру плавления, не большой коэффициент расширения и некоторые другие свойства необходимые для использования в печах. Часто используемые материалы это нихром и фехраль. Нихром используется во многих бытовых приборах напр. плитка, фен, утюг, паяльник и т.д. Проволока из нихрома может выдерживать нагрев до 1000 градусов Цельсия, нагрев до 800 градусов она должна выдерживать наверняка поэтому она должна подойти для плавки алюминия температура плавления которого около 660 градусов. Для того чтобы через проволоку пошёл ток и она начала нагреваться можно использовать напряжение из розетки 220В. Для того чтобы проволока не перегорела и могла нагреть печку она должна иметь какое то определенное сопротивление которое также зависит от конструкции печи и диаметра проволоки. Чем меньше диаметр тем меньший ток можно пустить по проволоке и соответственно сопротивление её должно быть больше. Для того чтобы не ошибиться с выбором длинны проволоки, при известном её диаметре, можно например экспериментально определить ток при котором проволока нагревается до нужной температуры после чего зная этот ток и напряжение розетки можно найти сопротивление по закону Ома. Далее разматывая проволоку и замеряя сопротивление можно остановиться после того как сопротивление достигнет нужной величины но при этом надо учесть то что в печи проволока будет нагреваться сильнее и нужен будет некоторый запас.
Определить ток экспериментально можно подавая небольшое напряжение на короткий участок проволоки и изменяя длину и замеряя ток амперметром увидеть при каком токе проволока нагревается достаточно сильно

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

Видео про печку:
Примерно определить температуру больше 500 градусов можно по цветам каления

Несмотря на то что электропечь можно изготовить самостоятельно, можно также купить готовую что сэкономит время - невосстановимый ресурс который можно потратить если есть действительно настоящий интерес к изготовлению чего либо своими руками. Если нет то можно купить готовую в магазине например по ссылке -> http://alii.pub/6cpxs2
_ _ _ _ _ _ _ _ _

четверг, 10 мая 2018 г.

Измерение температуры термистором (терморезистором)

Термистор (или терморезистор) - это резистор активное сопротивление которого изменяется при изменении температуры и который предназначен для измерения им температуры или каким либо другим способом использования этого эффекта в электронной аппаратуре. Активное сопротивление обычных резисторов и др. деталей тоже меняется при изменении температуры но терморезисторы изготавливают такими чтобы это изменение можно было удобно и просто использовать а обычные резисторы наоборот стараются сделать такими чтобы изменение их сопротивления при изменении температуры не влияло на работу устройств в которых эти резисторы работают. Терморезистор - это один из самых недорогих и простых элементов для изготовления электронных измерителей температуры (ссылки на терморезисторы - http://got.by/2i0sqp, http://got.by/2i0t08, http://got.by/2i0tsf). Помимо терморезисторов есть другие элементы для изготовления измерителей температуры, например:
 термопары (Подключение термопары к ардуино - http://electe.blogspot.ru/2017/04/blog-post.html), бесконтактные инфракрасные датчики. Термопары нужно использовать при изменении высоких температур которые не сможет выдержать терморезистор а бесконтактные датчики для измерения температур тех вещей к которым нельзя плотно приложить датчик например бесконтактным датчиком можно измерять температуру кислоты, также бесконтактные датчики можно использовать для измерения температуры на расстоянии, в других случаях целесообразно использовать терморезисторы. Давайте рассмотрим на примере как можно измерить температуру терморезистором NTC 3950 с активным сопротивлением 100 кОм при температуре 25 градусов Цельсия. Для такого термистора есть специальная таблица зависимости его сопротивления от температуры с шагом в 1 градус:
Таблица очень большая т.к. там значения от -30 градусов до +300 градусов с шагом в 1 градус. Измеряя сопротивление терморезистора и находя его в таблице можно определить температуру с точностью в 1 градус. Но в ручную это делать очень не просто поэтому для этой работы надо приспособить микроконтроллер. К сожалению, в микроконтроллерах обычно нет функции измерения сопротивления но зато часто в них присутствует АЦП т.е. аналого цифровой преобразователь и очень часто их бывает больше одного. Микроконтроллер с АЦП можно применить для измерения температуры терморезистором. Для того чтобы это реализовать, помимо микроконтроллера и терморезистора ещё понадобится дополнительный резистор с постоянным сопротивлением и конечно же вся обвязка микроконтроллера и средство вывода с него информации. Для простоты можно использовать Ардуино подключённое к компьютеру и тогда останется разобраться только с резисторами и АЦП. Для измерения температуры терморезистором нужен делитель напряжения, например такой как на рисунке:
Рисунок 1 - Подключение терморезистора к АЦП микроконтроллера

Таким образом мы сможем измерить напряжение на терморезисторе но напряжение - это не сопротивление. Чтобы найти сопротивление нам помимо напряжения U на терморезисторе надо ещё знать: 1) напряжение питания Up, 2) сопротивление резистора R1 который вместе с терморезистором Rt образуют делитель напряжения. Если мы знаем эти три величины то мы сможем определить сопротивление резистора Rt. Теперь осталось понять как это сделать?
Рисунок 2 - Величины которые даны и величина которую надо найти

Есть некоторое количество способов как это можно сделать. Рассмотрим самый простой из них, для этого введём ещё одну величину - ток делителя:
Рисунок 3 - Ток делителя

Далее мы пренебрегаем током который входит (или выходит) в АЦП микроконтроллера т.е. считаем что этого тока нет а есть только ток делителя. Током который идёт в АЦП мы пренебрегаем по тому что он очень маленький и почти не влияет на показания АЦП. Зная этот ток, по закону Ома, можно найти сопротивление терморезистора Rt:
Рисунок 4 - Нахождение сопротивление термистора Rt по закону ома

Теперь осталось найти ток делителя. Для этого мы воспользуемся Вторым Законом Кирхгофа и законом Ома (который является частным случаем Второго Закона Кирхгофа). По второму закону Кихгофа выясняем напряжение на резисторе R1, оно равно разности напряжения питания Up и напряжения U на терморезисторе полученного с АЦП. Далее, по закону Ома, находим ток делителя:
Рисунок 5 - Нахождение тока делителя

Теперь подставляем второе выражение в первое и получаем формулу для расчёта сопротивления терморезистора:
Рисунок 6 - Расчёт сопротивления терморезистора Rt

Теперь по этой формуле и таблице можно находить температуру но использовать все 330 строки той таблицы со всей информацией в ней будет очень непросто микроконтроллеру, эта таблица займёт много памяти а также перебор значений будет идти дольше, плюс ко всему, все эти значения надо будет вписывать программисту вручную что будет долго и трудно. Вместо этого можно выбрать значения из таблицы с шагом в 5 градусов (т.е. не все) и воспользоваться формулой:
для определения температуры t.
Теперь всё готово для написания скетча для Ардуины.
Давайте рассмотрим скетчь:

Сначала рассмотрим кусок кода перед функцией setup
1 в самом верху мы задаём константы, колличество элементов в массиве с температурами которое равно колличеству элементов в массиве с сопротивлениями и шаг температуры для заполнения массива с температурами в цикле
2 Далее обьявляются эти массивы и вспомогательная переменная для заполнения массива температурами
3 tPoint - это функция для более точного рассчёта температуры в найденном промежутке
4 rT - это функция рассчёта сопротивления терморезистора + дополнительные переменные для этого рассчёта
5 и в конце переменная которая будет хранить найденное сопротивление
   теперь рассмотрим тело ф-ии Setup
6 в цикле заполняем массив температурами
7 массив с сопротивлениями терморезистора заполняем, к сожалению, в ручную
8 после заполнения массива инициализируем последовательный порт
   теперь рассмотрим функцию loop
9 сначала определяем напряжение с АЦП
10 потом через описанную ранее функцию находим сопротивление терморезистора
11 после чего методом перебора находим диапазон температур в котором находиться настоящая температура
12 находим настоящую температуру и выводим её в монитор последовательного порта
13 делаем небольшую задержку чтобы успевать рассматривать изменение температуры
Скачать скетч можно по ссылке https://yadi.sk/d/WRjJG_sy3VfHZD

Посмотреть результат работы измерителя температуры и всю эту информацию в видеоформате можно в видео:

КАРТА БЛОГА (содержание)

суббота, 14 апреля 2018 г.

Управление приборами с инфракрасного пульта

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

1 открываем Arduino IDE

2 вписываем в самом верху #include "IRremote.h"

3 нажимаем кнопку проверить (с галочкой в кружочке)

4  придумываем название скетча и нажимаем кнопку "сохранить"

5 Видим что Arduino IDE выдаёт ошибку

6 переходим в папку где установлено Arduino IDE

7 в этой папке переходим в папку librares (т.е. библиотеки)

8 в папке librares находим папку RobotIRremote и переходим в эту папку

9 в папке RobotIRremote находим папку src и переходим в эту папку

10 в папке src находим два файла IRremoteTools.cpp и IRremoteTools.h и удаляем их 

11 переходим опять в Arduino IDE и нажимаем крестик в правом верхнем углу, если открыто более одного окна то закрываем все

12 и снова запускаем Arduino IDE

13 Снова вписываем наверху #include "IRremote.h" или открываем старый файл где это уже вписано

14 Опять нажимаем кнопку проверить (с галочкой в кружочке)

15 видим что на этот раз компиляция прошла успешно 

16 теперь допишем скетчь. Напишем IRrecv ir(2); и в скобках укажем номер цифрового пина к которому подключаем выход инфракрасного приёмника например можно написать 2 т.к. 0 и 1 - это uart то следующий свободный - это 2

17 объявляем переменную типа decode_results в которую будут помещаться коды нажатых клавиш. Назвать эту переменную можно как угодно

18 Инициализируем последовательный порт

19 инициализируем приём от инфракрасного приёмника

20 в основном цикле на каждой итерации проверяем пришли ли данные с инфракрасного приёмника на ардуино

21 если что то пришло то выводим это в последовательный порт

22 для продолжения впишем ещё одну команду

23 нажимаем кнопку проверить и если Arduino IDE выдает ошибку то возвращаемся к пункту 1 и повторяем действия пока ошибка, на данном этапе, появляться не перестанет иначе переходим к следующему пункту

24 выпаиваем из телевизора и находим или покупаем инфракрасный приемник 


25 такой как на фотографии и соединяем его так как на фотографии. Если повернуть его выпяченностью вверх и смотреть на него сверху а ножками повернуть к себе то с лева у него будет GND по середине + питания 5В а справа выход. GND и +5В соединяем с соответствующими выводами ардуино а выход соединяем с тем что прописали в скетче (я написал 2 поэтому соединяю со вторым)


26 подключаем ардуино к компьютеру через usb кабель

27 возвращаемся в Arduino IDE выбираем во вкладке инструменты ардуино которое мы подключили (я подключил уно)

28 нажимаем кнопку вгрузить

29 во вкладке инструменты выбираем монитор последовательного порта

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

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

32 выписываем нужные нам коды и соответствующие кнопки на листочек 

33 теперь всё готово для того чтобы сделать инфракрасное управление. Давайте попробуем управлять светодиодом а потом реле. Настроим 13 пин как выход.

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

35 подключаем ардуино к компьютеру и нажимем кнопку вгрузить

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

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

38 используя логическое "или" мы можем сделать так чтобы реле включалось от разных пультов а добавив ещё условый мы можем включать больше одного реле
Видеоинструкция:
Могут пригодиться 
как связать ардуино + реле https://www.youtube.com/watch?v=UI9Ut8xQVLY
arduino uno r3 http://got.by/236t0v
ардуно модуль реле http://got.by/2frn22



КАРТА БЛОГА (содержание)