Ревич, Ю.В. Программирование микроконтроллеров AVR: от Arduino к ассемблеру
306 Часть 111. Практическое программирование микроконтроллеров АVR ПОДРОБНОС ТИ Дифференциальному измерению соответствует такая формула: Ка = 51 2(Upos - Un89)/Uгe1, где Upos и Uneg - напряжения на положительном и отрицательном входах соответст венно. Если напряжение на отрицательном входе больше, чем на положительном , то результат в дифференциальном режиме становится отрицательным и выражается в дополнительном коде от $ 200 (-5 1 2) до $ ЗFF (-1 ) 1 . Реальная точность преобразова ния в дифференциальном режиме не превышает 8 разрядов . Зачем нужен дифференциальный режим? Типовое его применение - преобразование сигнала с измерительного моста . Мост можно представить, как два резистивных дели теля напряжения, при этом два входа дифференциальной схемы измерения подклю чаются к средним точками делителей, и результат измерения представляет собой разность напряжений в этих точках. Если некоторые сопротивления резисторов в де лителях зависят от какой-нибудь физической величины, то сигнал меняется в положи тельную или отрицательную сторону. Мостовая схема известна еще с XIX века и по зволяет осуществлять наиболее точные измерения , но не сама по себе, а при соблю дении определенных условий . Теория мостовых измерений - достаточно сложный предмет, и некоторые ее азы читатель может узнать из моей книги [1 0] . Мне , как бывшему метрологу, непросто представить себе, зачем нужно применять не посредственное подключение мостовых схем к АЦП контроллера в условиях, когда максимально достижимая абсолютная точность преобразования все равно ограничена 8-битовым числом (и то только теоретически - на практике всегда меньше) . В случае, когда действительно нужно что-то измерить достаточно тщательно, проще заранее обеспечить гарантированную точность и диапазон входного сигнала АЦП , сформиро вав его с помощью внешних прецизионных операционных усилителей, - и стабиль ность обеспечена, и все ошибки точно просчитываются . Собственно говоря , так и по ступают конструкторы различных датчи ков физических величин , иногда выдавая на гора готовый аналоговый сигнал , а иногда и сразу цифровой . Последний вариант в общем случае хуже, т. к . , за редкими исключениями, в датчик прецизионный АЦП за совывать никто не будет, но крайне удобен на практике, - для сравнения см . далее разд. «Перевод результатов в физические величины» . В общем, чтобы у вас окончательно не уехала крыша, давайте в общем обзоре воз можностей АЦП на этом остановимся . Хотя мы еще далеко не все нюансы доста точно подробно рассмотрели, уже можно понять, почему в начале раздела говори лось о реальном преимуществе Arduino в вопросе доступа к АЦП. На самом деле, для элементарной практической реализации в стиле функции analogRead ( ) из опи санных вариантов нам понадобится совсем немного: режим непрерывного или од нократного запуска, смена каналов и дополнительно возможность менять источник опорного напряжения . Еще мы обсудим вариант с запуском прерывания готовности АЦП - он может пригодиться для удобного набора статистики без лишней нагруз ки на прерывания таймера. Прочие варианты мы оставим за кадром. И сначала, чтобы привыкнуть, попробуем использовать АЦП в самом простом варианте циф рового компаратора. П росте й шее использование АЦП Давайте на основе АЦП соорудим автомат для регулирования освещения - будем выключать лампочку, когда освещенность вырастает до определенной величины, и включать ее снова, когда освещенность падает. В общем-то ничего не стоит соору- 1 В книгах [6,7] в этом вопросе допущена неточность.
Made with FlippingBook
RkJQdWJsaXNoZXIy MTExODQxMg==