Ревич, Ю.В. Программирование микроконтроллеров AVR: от Arduino к ассемблеру
Глава 1 1 . Аналоговый компаратор и АЦП 307 дить такую схему на отдельном аналоговом компараторе (типа LМЗ 1 1 , например). Однако на контроллере - в сравнении с простым компаратором - мы сможем со орудить любой алгоритм, а для такой капризной величины, как освещенность, оп тимальный порядок надежной работы может оказаться довольно-таки заковыри стым. Освещенность мало того, что меняется крайне медленно, она еще и регуляр но колеблется в достаточно широких пределах, причем отклонения могут быть как долгие (вечернее солнце вдруг вышло из-за туч), так и относительно короткие (человек прошел мимо датчика, или в датчик попал блик от лобового стекла проез жающего автомобиля) . Применение Arduino для такой простой функциональности будет явно избыточ ным - конечно, тут сгодится любая самая простая «тинькю>, лишь бы в ней бьm встроенный АЦП (ATtiny l З в 8-выводном корпусе, например) . Но чтобы не отвле каться на обсуждение особенностей реализации АЦП еще и в этой группе контрол леров, смоделируем программу на обычном АTmega8 с тактированием «по умолча нию» 1 МГц (не забудьте установить опять «фьюзьш, как показано на рис. 5 . 8, если они у вас переустанавливались на время работы с таймерами). По тому же принципу строятся релейные или даже пропорциональные регуляторы любых величин - термостаты, например. Использовать для этой цели встроенный аналоговый компаратор, как мы уже говорили, неудобно: в нем нелегко ввести гис терезис (разность между порогами срабатывания «вверх» и «вниз»), что является обязательным атрибутом любой схемы регулирования . Для регулятора освещения гистерезис должен быть особенно велик из-за вероятности очень плавного, в тече ние часов, изменения освещенности в совокупности с возможностью ее временного возврата на прежний уровень . Поэтому мы привлечем АЦП, где порогами срабаты вания очень просто манипулировать, и, кроме того, введем задержку на переклю чение для фильтрации коротких бросков освещенности. Схема регулятора освещения приведена на рис . 1 1 .3 . Датчик освещенности - фо торезистор Ldr l . Его тип GL55 1 6 показан на схеме условно - сойдет любой фото резистор с величиной сопротивления примерно 1 0-20 кОм при 1 О люксах освещен ности, их продают в интернет-магазинах, торгующих аксессуарами для Arduino, по копейке пучок в базарный день. В любом случае резисторы делителя R2 и RЗ при дется подбирать по месту, в зависимости от конкретного экземпляра фоторезистора и, главное, от условий освещенности, при которых вы хотите, чтобы датчик сраба тывал . ПОДРОБНОСТИ В параметрах фоторезисторов приводится логарифмический показатель чувствитель ности у. Эта величина позволяет прикинуть , насколько изменится сопротивление фо торезистора при изменении освещенности в 1 0 раз по формуле: R 1 00/R 1 0 = 1 ov . Для обычных фоторезисторов у равен примерно 0,6--0 , 8 , т. е. изменение будет находиться в пределах � раз . Порог, при котором приходится включать освещение, составляет несколько десятков люкс (50 люкс - это примерно как на освещенной автостоянке ночью) , отсюда сопротивление фоторезистора, равное 1 0 кОм при 1 0 люксах, вблизи порога срабатывания окажется равной нескольким килоомам. Эта величина находится в рамках, допустимых для выходного сопротивления источника сигнала АЦП (1 О кОм) , и не может послужить источником дополнительных ошибок . Учитывая еще исключи тельно медленно меняющийся уровень освещенности , можно позволить себе не осо бенно обращать внимание на тип и параметры фоторезистора.
Made with FlippingBook
RkJQdWJsaXNoZXIy MTExODQxMg==