Пользовательский блок "железный" компаратор (AIN0:AIN1)

Пользовательские блоки не подходящее под другие разделы
Правила форума
Рекомендации по размещению блоков:
Автор блока создает подробное описание блока, отличие от подобных(если есть на данный момент).Сложные блоки очень желательно с примерами.
При выходе новых версий редактирует/дополняет свой первый пост с указанием даты, версии, причины.
В каждой теме обсуждается только выложенный автором блок - баги, возможность (или предложение) доработки и прочие хотелки.
Свои блоки, переработанные, с другими библиотеками, протоколами и т.д.- размещаем либо сами отдельно, либо обсуждаем и дорабатываем в форуме Разработка блоков.
Пользователи улучшив блок автора и проверив его работоспособность - могут обратиться к автору или модераторам с просьбой добавить их версию блока в первое сообщение темы.
Ответить
Аватара пользователя
ДедОк
Рядовой
Сообщения: 23
Зарегистрирован: 31 окт 2016, 13:48
Откуда: Славута

Пользовательский блок "железный" компаратор (AIN0:AIN1)

Сообщение ДедОк »

В одном проекте мне оказалось нужным воспользоваться "железным" компаратором самой АТМеги. В Ардуине этот узел никак не используется, но выкладываю блок, может кому пригодится.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
Dryundel
Полковник
Сообщения: 2434
Зарегистрирован: 22 май 2017, 23:15
Откуда: Ярославль
Имя: Андрей
Благодарил (а): 3 раза
Поблагодарили: 30 раз

Пользовательский блок "железный" компаратор (AIN0:AIN1)

Сообщение Dryundel »

Четыре года, 163 скачивания и ни одного лайка. Не вполне справедливо.
Хотя с другой стороны, наверняка 99% скачавших, посмотрели, не поняли что к чему и забыли, ибо автор даже об описании не позаботился. Поэтому не стал создавать новую тему, а сделал человекопонятный блок с описанием.
Вообще, "железный" компаратор, зарытый в дебрях AVR, весьма интересная штука.
Он очень быстрый и код для него практически не занимает память.

Итак что же такое Analog Comparator Control.

1. В ATmega328/168 (Arduino Nano, UNO, Pro Mini) есть встроенный компаратор.
2. Кроме аналоговых A0 - A7, есть еще два условно-аналоговых входа - это D6 и D7.
3. D6 и D7 по умолчанию являются входами этого аналогового (железного) компаратора.
4. Существует масса вариантов работы данного компаратора, как с аналоговыми входами A0 - A7 так и с GND, AREF, внутренним опорным напряжением.
5. По итогу, все очень просто. Измеряем два напряжения, сравниваем и если первое больше второго, то на выходе компаратора логическая единица. В противном случае - логический ноль.

Где это может пригодиться:
Реализация сигнала Alarm, к примеру с аналогового датчика температуры, отслеживание пропадания питания и сохранения данных пока не "умер" контроллер, задействование дополнительных аналоговых входов для подобных операций и многое другое.
[spoiler=Обзорные видео о работе компаратора] https://www.youtube.com/watch?v=0vRF8Ce9umE https://www.youtube.com/watch?v=76vZglAhNY0[/spoiler]
[spoiler=Распиновка входов компаратора (по умолчанию)]
1.jpg
[/spoiler]
Первое видео на английском, но весьма полезное и Яндекс браузер переводит озвучку достаточно качественно.
.
Ну и наконец...
2.jpg
Analog Comparator Control V0.1.flp
[spoiler=Схема для тестирования]
3.jpg
[/spoiler]
.
Это стартовая, дефолтная версия блока железного компаратора

Описание:
Дефолтные входы D6 и D7
Принцип работы:
Если напряжение на входе D6 больше чем напряжение на входе D7
то на выходе Q устанавливается логическая единица.
В противном случае, если V(D6) < V(D7) то Q = 0.
Примечание: Входы D6 и D7 из списка доступных не исключаются. Будьте внимательны.

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

Вернуться в «Другое»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость