Tag Archives: Аналог

Токовая петля

Иногда приходится передавать сигнал на большое расстояние (десятки метров, а то и километры). Главная проблема при этом в том, что через линию может пронестись электромагнитная волна (помеха) и попытаться индуцировать в ней ток. Ток будет мизерным, но так как входы обычно высокоомные, в сотни килоом, то даже от таких незначительных наводок на входе может возникнуть перенапряжение. Ведь по закону Ома U = I * R. R входа у нас может быть и под ГигаОм, при этом наводка тока даже в 0.001мА может раскачать напругу до киловольта. Вход вынесет за милую душу, хотя энергия там и невелика, но много ли надо тонкопленочному затвору транзистора? Решение тут одно — снижать входное сопротивление.
   

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

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

   
(далее…)

Read More »

Усилитель токового шунта на MAX4372

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

Прямого способа просто замерить ток нет, не пихать же стрелочный прибор (сила Ампера, отклоняющая стрелку имеет прямую зависимость от тока) в схему, но можно замерить падение напряжения на известном сопротивлении и по закону Ома (I = U/R) вычислить искомую величину. Такое сопротивление зовется шунтом.

Но и тут возникают вилы. Чтобы получить сколько нибудь заметное для АЦП микроконтроллера напряжение (в идеале в пике до Vref АЦП контроллера) надо иметь довольно большое сопротивление.
Скажем, для получения 5 вольтового падения на токе в 5А нам потребуется резистор в 1Ом. Что очень много, ведь в этом случае на нем высадится P = I2R тепловых потерь. Тебе нужна двадцатипятиваттная грелка в системе? Наверное нет. Можно, конечно, уменьшить сопротивление шунта в десять раз. Скажем до 0.1 Ом, тогда можно уложиться в такую вот бандуру:

(далее…)

Read More »

Измерительные цепи

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

Выход с датчика может быть трех основных видов (если кто вспомнит еще, добавьте в комментах)
Напряженческий, токовый и резистивный. Как понятно из названия, тут выходная датчик превращает колебания измеренной величины в колебания напряжения, тока или сопротивления, осталось только эти величины привести к виду удобному для запихивания в АЦП микроконтроллера.
(далее…)

Read More »

Управление мощной нагрузкой постоянного тока. Часть 3.

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

МОП (по буржуйски MOSFET) расшифровывается как Метал-Оксид-Полупроводник из этого сокращения становится понятна структура этого транзистора.

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

Read More »

И. Достал. Операционные усилители

Автор:		И. Достал.
Название: 	Операционные усилители
Издательство: 	Москва

Одна из лучших книг по работе с операционными усилителями. Не слишком простая, но в то же время без излишних заумностей. Уровня «Искусства схемотехники». Разобрано практически все, от общей конецпции до устойчивости схем и шумов с погрешностями.

Read More »

Параллельный Цифро Аналоговый Преобразователь по схеме R-2R

Порой надо выдать точный аналоговый сигнал, да еще с быстро менющийся. Например, функцию. Раньше я рассматривал как это можно сделать с помощью ШИМ, но у этого метода есть проблема — он очень медленный. В самом деле, чтобы получить один уровнь на ШИМ, нужно, по меньшей мере, 256 тиков таймера. А если надо развернуть функцию в которой 256 отсчетов? Да еще на каждый отсчет по 256 тиков? Это какая же должна быть частота процессора? Да еще надо учесть, что ШИМ требует интегрирующей цепочки с конденсатором. А значит для четкого установления уровня должно пройти еще несколько импульсов, что снижает скорость еще раза в три. Короче, получить что либо быстрей чем 50 ГЦ на ШИМ очень сложно. Я не говорю даже о том, что у ШИМ изза свойств емкостного заряда сильно плывет линейность, так что это приходится учитывать.
(далее…)

Read More »

ШИМ регулятор на таймере NE555

Потребовалось мне сделать регулятор скорости для пропеллера. Чтобы дым от паяльника сдувать, да морду лица вентилировать. Ну и, для прикола, уложить все в минимальную стоимость. Проще всего маломощный двигатель постоянного тока, конечно, регулировать переменным резистором, но найти резюк на такой малый номинал, да еще нужной мощности это надо сильно постараться, да и стоить он будет явно не десять рублей. Поэтому наш выбор ШИМ + MOSFET.

Ключ я взял IRF630. Почему именно этот MOSFET? Да просто у меня их откуда то завелось штук десять. Вот и применяю, так то можно поставить что либо менее габаритное и маломощное. Т.к. ток тут вряд ли будет больше ампера, а IRF630 способен протащить через себя под 9А. Зато можно будет сделать целый каскад из вентиляторов, подсоединив их к одной крутилке — мощи хватит :)
(далее…)

Read More »

Стюарт Болл «Аналоговые интерфейсы микроконтроллеров»

Автор: Стюарт Болл
Название: Аналоговые интерфейсы микроконтроллеров
Издательство: Додэка

Чертовски мощная книжка. Даже сейчас, многие вещи оттуда мне были почти как откровения. Знать то я это знал, но не было четкой системы в голове и тут… Непередаваемое ощущение. А ведь я пролистал ее бегло, по диагонали. Надо курнуть посерьезней. Она не совсем для начинающих, требует некоторой первоначальной подготовки, например предварительно не помешает загрузить в мозги начала от Свореня или Борисова.

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

Причем расписано все буквально на пальцах, математика, конечно, есть. Но укладывается в пределы школьного курса. Как говорит сам автор: «Я не хочу писать книгу о вычислениях с теоретическими выкладками, и думаю, вы бы не стали ее читать. Эта книга — о реальных встроенных микропроцессорных системах, поэтому я хочу сфокусироваться на практических примерах. »

А за раздел по Автоматическому управлению автору можно смело ставить памятник. Все, что нам безуспешно пытались втереть на протяжении почти двух лет в универе, Стюарт разжевал буквально на пальцах, да так что становится понятно мгновенно, уложившись в десяток страниц. Попадись мне его труд на третьем курсе, то я бы не завалил, в свое время экзамен по ТАУ :) Как я ТАУ сдавал потом это отдельная история, а моя фраза «А что, вам западло поставить отл коллеге по цеху?» стала кафедральным бояном :) Да что я вам тут рассказываю, вот содержание, изучайте и, мелко забив в косяк, выкуривайте махом. Очень многие вопросы отпадут на раз :)

Read More »

Работа с АЦП. Программные средства повышения точности

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

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

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

В качестве демонстрации метода я приведу пример усреднения. Программка простая, хватает 64 выборки, усредняет их и отправляет по UART. Сразу отмечу тот факт, что для эффективного подавления шума нужно чтобы частота выборок была ниже частоты всяких паразитных колебаний (вроде 50Гц наводок от сети) раза в два три, иначе у нас эти колебания благополучно пролезут как полезный сигнал. А еще число выборок нужно брать кратным двойке, чтобы можно было делить простым сдвигом. Впрочем, смотрите на код, там будет более понятно. Весь код я выкладывать не буду, только главный файл. Все инициализации АЦП и UART, а также ряд служебных процедурок я оставлю за кадром. Если интересно, то вы всегда можете скачать проект и посмотреть сами. Сбор числа у меня идет в прерывании от АЦП, а деление в прерывании по передаче. Так минимизируется число действий выполняемых процом. Хотя растягивание прерываний это не есть гуд. Но городить флаговую операционную систему мне тут впадлу, впрочем, дойдет и до нее время. (далее…)

Read More »

AVR. Учебный курс. Использование аналогового компаратора

Есть почти в каждой AVRке, такая полезная приблуда как аналоговый компаратор. Это уже почти стандартное устройство и встречается очень часто во множестве разных контроллеров. Даже в древнем, как говно мамонта, АТ89С2051 он уже есть. Штучка прикольная, позволяет сравнивать два аналоговых сигнала и выносить свой вердикт 0 первый больше второго, 1 второй больше первого.

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

Например, на входе у нас 8 вольт. Со стабилитрона, рассчитанного на 3.3 вольта, выходит всегда одно и то же напряжение — 3.3 вольта. А с симметричного резистивного делителя выходит половина напряжения то есть 4 вольта. 4 это больше чем 3.3, (3.3 — 4 = -0.7 результат меньше нуля) с компаратора выходит 0

Теперь если просядет батарейка и напряжение снизится до 6 вольт, то с делителя будет уже 3 вольта, а с опорного как было 3.3 так и осталось. Зато теперь на компараторе ситуация в корне поменялась — 3 меньше чем 3.3 (3.3 — 3 = 0.3 результат больше нуля) , а значит на выходе у него будет 1

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

Настройка компаратора в контроллере AVR ATMega16
Для других моделей AVR все очень и очень похоже, просто мне так удобней. Если будет затруднение спросишь в комментах.
Мега16 имеет на борту компаратор, со входами AIN0(прямой вход) и AIN1(инверсный вход) (далее…)

Read More »

Аналоговый реобас

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

Пропорциональное управление – залог тишины!
Какая задача ставится перед нашей системой управления? Да чтобы пропеллеры зря не вращались, чтобы зависимость скорости вращения была от температуры. Чем горячее девайс — тем быстрей вращается вентилятор. Логично? Логично! На том и порешим.
Заморачиваться с микроконтроллерами конечно можно, в чем то будет даже проще, но совершенно не обязательно. На мой взгляд проще сделать аналоговую систему управления — не надо будет заморачиваться с программированием на ассемблере.

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

(далее…)

Read More »

Основы на пальцах. Часть 4

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

Миром правит цифра!

Краеугольным камнем цифровой схемотехники служит понятие нуля и единицы, понятие это совершенно условное, т.к. фактически нет никакого нуля и нет никакой единицы, есть лишь уровни напряжения – высокий и низкий, а также некий порог после которого данный уровень напряжения принято считать высоким или низким. Скажем все, что ниже 0.7 вольт считаем за низкий уровень, т.е. 0, все что выше 2.4 вольт высоким, т.е. единица. Между 0.7 и 2.4 вольта, когда не ясно какой уровень, это состояние совершенно неопределенное его нельзя оценивать как входную величину, иначе на выходе системы в таком случае будет непредсказуемый результат.
Сопротивление входов очень высокое, практически можно считать его бесконечным.

Основы цифровой схемотехники
Во избежания путаницы смыслов, в терминологии ключей и транзисторов принято следующее соглашение. Ключ считается открытым или закрытым для протекания тока, как кран на трубе. С точки зрения же механического исполнения он может быть замкнут или разомкнут. Так что открыт = замкнут, закрыт = разомкнут. И не следует путать с англоязычной нотацией, где Open = открыт если речь идет о транзисторе или электронном ключе и Open = разомкнут если речь идет о механическом рубильнике. Там Open-Close следует рассматривать в общем контексте текущего случая. Велик и могуч русский язык! =)

Выход в микросхеме бывает разных типов. Различают push-pull и open drain (в нашей литературе его называют Открытым Коллектором или ОК). Отличие заключается в способе выдачи сигнала на выход. В Push-Pull выходе когда нужен низкий уровень, то выход тупо и беспрекословно замыкается на землю, имеющую нулевой потенциал, а когда высокий, то на напряжение питания.
В открытом коллекторе все несколько иначе. Когда нам надо получить низкий уровень, то мы сажаем ногу на землю, а вот высокий уровень получается подтягивающим резистором (pullup), который, в отсутствии посадки на землю и большого сопротивления висящей на выходе нагрузке, заводит на ногу высокий потенциал. Тут можешь вспомнить закон Ома и посчитать какое будет напряжение выхода на открытом коллекторе если подтягивающий резистор обычно порядка 1КилоОм, а сопротивление входа больше 1МегаОм. Тип выхода определяется из документации на микросхему, некоторые микрухи имеют программируемый выход, например, все контроллеры AVR. Исходя из этого становится понятен смысл регистров Port и DDR в контроллере AVR – они определяют тип выхода Open Drain+PullUp, Push-Pull или просто Open Drain.

(далее…)

Read More »