Многие современные микроконтроллеры, как правило, имеют в своем составе аналого цифровые преобразователи (АЦП) для измерения аналогового сигнала. Такая возможность часто бывает необходима. Однако не все микроконтроллеры имеют именно аппаратный встроенный АЦП. Например ATtiny2313 не имеет его. Зато он имеет аналоговый компаратор. Аналоговый компаратор, сам по себе, не может измерять аналоговое напряжение. Зато он может определить больше ли это напряжение некоторого опорного или нет. А также он работает гораздо быстрее чем полноценный АЦП. Бывают ситуации когда этого функционала достаточно, например когда надо определить превышение тока в нагрузке, включить защиту и сделать это быстро, в этом случае аналоговый компаратор будет гораздо лучше чем АЦП. Также этот компаратор может быть использован в каких нибудь преобразователях напряжения чтобы оперативно следить за напряжением. Или же небольшими внешними доработками можно сделать АЦП на основе имеющегося компаратора. Работа с аналоговым компаратором микроконтроллеров AVR достаточно проста. На основе компаратора микроконтроллера ATtiny2313 можно сделать например двухбитный АЦП. Такой АЦП не очень точный но зато очень быстрый и его можно использовать например для какой нибудь шкалы уровня заряда или ещё чего нибудь подобного. Рассмотрим схему:
Настройки компаратора в коде нет т.к. он уже правильно настроен по умолчанию. Есть настройка только пинов ввода/вывода и стека. В основном цикле реализован алгоритм поразрядного уравновешивания и управление светодиодами. Под основным циклом есть небольшая подпрограмма задержки. Про то как работает данный алгоритм можно посмотреть на видео:
КАРТА БЛОГА (содержание)