Как стать программистом Как устроен компьютер. Что такое программа. Как написать свою программу. И многое другое узнаете вы из этой книги. Получить бесплатно! |
Аналоговые входы микроконтроллера
Микроконтроллеры / Для начинающих /Что нужно для того, чтобы стать профессиональным разработчиком программ для микроконтроллеров и выйти на такой уровень мастерства, который позволит с лёгкостью найти и устроиться на работу с высокой зарплатой (средняя зарплата программиста микроконтроллеров по России на начало 2017 года составляет 80 000 рублей). Подробнее... |
Почти все модели современных микроконтроллеров, даже простые и недорогие, такие как ATtiny13A, имеют возможность подключения аналоговых сигналов, то есть имеют аналоговые входы.
В старых микроконтроллерах могло и не быть аналоговых входов. А если и были, то обычно они выполнялись в виде отдельных выводов на корпусе микроконтроллера.
Современные микроконтроллеры обычно имеют линии ввода-вывода общего назначения, которые становятся либо дискретными входами или выходами, либо аналоговыми, в зависимости от программной конфигурации устройства.
Чем отличаются аналоговые входы от дискретных?
Для начала вспомним, что дискретный - это прерывистый сигнал. То есть сигнал, который имеет какое-то фиксированное число значений.
Аналоговый же сигнал - это непрерывный сигнал. То есть сигнал, значение которого изменяется плавно (см. рис.).
Красным цветом изображён аналоговый сигнал. Это может быть напряжение, температура, давление или любая другая физическая величина.
Если провести аналогию с лампочкой, как мы это сделали при изучении дискретных входов, то можно сказать так:
- При подаче дискретного двоичного сигнала на вход лампочка либо гаснет, либо зажигается.
- При подаче и изменении аналогового сигнала на вход лампочка плавно меняет свою яркость свечения.
Как мы знаем, микроконтроллер может работать только с электрическими сигналами. Более того, архитектура микроконтроллера использует двоичные числовые значения.
Поэтому, чтобы измерить с помощью микроконтроллера, например, температуру, нам сначала потребуется преобразовать её в электрический сигнал. Например, в напряжение.
А потом ещё значение этого напряжения надо как-то преобразовать в двоичное число. Забегая вперёд, скажу, что это делается с помощью АЦП.
Что такое аналоговый вход
Аналоговый вход микроконтроллера - это вход, на который можно подавать аналоговый сигнал. То есть определённый вывод на корпусе микроконтроллера, к которому можно можно подключить датчик, на выходе которого имеется аналоговый сигнал.
В качестве простейшего такого датчика может быть, например, обычный резистивный делитель напряжения. Или переменный резистор, как показано на рисунке ниже:
В этом примере на выходе резистора будет аналоговый сигнал в виде плавно изменяющегося напряжения в диапазоне от 0 до +U В.
Подобные резистивные датчики можно использовать, например, как датчики положения задвижек. Если установить такой резистор на задвижку и откалибровать её положение по крайним значениям (например 0 В - задвижка полностью закрыта, а +U В - задвижка полностью закрыта), то, снимая показания с такого датчика, можно определить процент открытия (закрытия) задвижки, если знать закон изменения сопротивления переменного резистора (обычно сопротивление изменяется по линейному закону или близко к этому).
Типы аналоговых входов
Пожалуй, говорить о типах аналоговых входов неинтересно. Потому что нас больше интересуют типы аналоговых сигналов.
Существуют определённые стандарты для аналоговых сигналов. Созданы они для того, чтобы разработчикам было проще создавать устройства и системы, использующие аналоговые датчики.
Наиболее распространены два вида аналоговых сигналов:
- Токовые сигналы
- Сигналы напряжения
По диапазону значений на выходе датчика они также отличаются. Основные диапазоны следующие:
- Токовые:
- 0...5 мА
- 0...20 мА
- 4...20 мА
- Напряжения:
- 0...0,01 В
- 0...1 В
- 0...10 В
Поэтому практически все устройства, рассчитанные на подключение аналоговых датчиков, поддерживают один или несколько из перечисленных выше типов аналоговых сигналов.
Если вы будете создавать свои устройства на микроконтроллерах, то я также советую вам придерживаться этих стандартов. Хотя, конечно, никто не может запретить вам использовать нестандартные диапазоны и типы аналоговых сигналов.
Также надо учитывать, что все аналоговые входы микроконтроллера имеют и другие характеристики, такие как входное сопротивление. Но так глубоко в электронику в этой статье мы не полезем - всё таки она рассчитана на начинающих.
Подключение аналоговых входов
Здесь ничего сложного нет. И это уже электроника, а не устройство микроконтроллера, и тем более не программирование.
Но всё же немного об этом рассказать надо.
К аналоговым входам обычно подключают устройства двух типов:
- Активные датчики - датчики со стандартным аналоговым выходом (см. выше).
- Пассивные датчики.
С активными датчиками проще. Если выбранный вами микроконтроллер это позволяет, то выход такого датчика можно напрямую (или через простой резистивный делитель) подключить к аналоговому входу микроконтроллера.
С пассивными датчиками сложнее, потому что они пассивные )))
То есть на выходе таких датчиков не какого-либо активного сигнала (ни тока, ни напряжения, ни частоты).
Например, термопреобразователи сопротивления - довольно широко распространённые в автоматизации датчики температуры, изменяют своё сопротивление, как вы понимаете, в зависимости от температуры.
Однако микроконтроллер не умеет измерять сопротивление. И чтобы его этому научить, надо каким-то образом пассивный сигнал сделать активным. Один из простейших способов (но не самый лучший) показан на рисунке ниже:
Здесь мы видим простой резистивный делитель, одним звеном которого (на рисунке - нижним) является термосопротивление. Так как его сопротивление будет изменяться вместе с температурой, то и напряжение на аналоговом входе микроконтроллера тоже будет меняться. Эти изменения мы и можем зафиксировать и преобразовать уже программно в значение температуры (зная зависимость термосопротивления от температуры, и рассчитав напряжение на аналоговом входе).
Повторюсь - это не лучший способ. И не со всеми микроконтроллерами и не со всеми термосопротивлениями такой трюк можно проделать. Но зато это простой способ.
Для тех, кто ещё не понял, объясняю: таким нехитрым способом, как показано на рисунке, мы превратили пассивный датчик в активный. То есть преобразовали сопротивление в напряжение.
Ну а как преобразовать это напряжение в температуру - это уже отдельная история...
Вступить в группу "Основы программирования"
Подписаться на RUTUBE-канал Подписаться на Дзен-канал Подписаться на рассылки по программированию |
Микроконтроллеры для ЧАЙНИКОВ
Бесплатная рассылка о микроконтроллерах. Рассылка содержит как бесплатную информацию для начинающих, так и ссылки на платные продукты (книги, видеокурсы и др.) для тех, кто захочет вникнуть в тему более глубоко. Подробнее... |