Сделай сам 3-битная вспышка АЦП

Сделай сам 3-битная вспышка АЦП







2.4 Окончательная схема

Мы видим прямую линию резисторов в серии. Но каждая пара этих резисторов является делителем напряжения. Первый делитель напряжения находится между R1 и суммой всех других последовательных резисторов. Второй делитель напряжения находится между суммой R1 и R2 и всех других и так далее. Таким образом, если каждый резистор является резистор 1k мы имели бы эти значения на отрицательном входе каждого компаратора в зависимости от опорного напряжения, приложенного к контуру.

флэш-схема АЦП Arduino

Например, если опорное напряжение 5 вольт мы будем иметь эти значения на каждом из отрицательных входов. Теперь давайте представим, что аналоговое значение, которое мы хотим прочитать, составляет 2,5 вольт. Первые 4 компаратора будут иметь низкую производительность, так как 2,5 ниже, чем все эти значения. Но нижние 4 компаратора будут иметь высокую производительность.

флэш-схема АЦП Arduino

Теперь задача кодера передать эти 4 единицы и 4 нуля в значение 3 бита, следующее за этой таблицей. Если нижний компаратор имеет высокую выходную мощность, а остальное низкое, у нас есть 000. Если второе и первое высокие, а остальные низкие, у нас есть 010 и так далее.

Как видите, количество компараторов даст нам разрешение. С 8 компараторами мы имеем 3-битный АЦП. С 16 компараторами 4-битный преобразователь. С 32 5 бит и тд. АЦП Arduino является 10-разрядным, поэтому мы можем иметь 1024 значения для диапазона напряжений от 0 до 5 вольт. Это дает нам шаг всего 4,8 мВ, что довольно хорошо.








2.5 Сборка флеш-АЦП


АЦП, который мы построим сегодня, очень дерьмовый. Он имеет только 3 бита. Я буду использовать 2 LM324 OPAMP, каждый с 4 усилителями. Я сделаю серию делителей напряжения с резисторами 1 кОм, как вы можете видеть здесь на моем макете от одного отрицательного входа к другому. Опорное напряжение будет 5 вольт от Arduino питания. Я подключу каждый из выходов компараторов к цифровым контактам от D2 до D9. Далее я подключу 3 светодиода к контактам 10, 11 и 12. Это будут наши 3 бита АЦП

флэш-схема АЦП


Я загружаю следующий простой код, который будет действовать как кодировщик для 8 различных значений. В зависимости от того, какой вход от компараторов низкий, мы включим тот или иной светодиод в общей сложности 3 бита. Входное напряжение будет выходом этого светочувствительного резистора.

Загрузите код здесь: 





Входное напряжение будет выходом светочувствительного резистора. Я знаю, что чем больше света он получит, тем ниже будет его мощность. Теперь я подобрал свой фонарик ближе к модулю, чтобы на выходе было 0 вольт, чтобы не было светодиода. Я начинаю уменьшать количество света, и, как вы можете видеть, теперь у меня есть 1 бит. Я уменьшил количество света немного больше, и теперь у меня есть двоичный 2. Немного больше, и теперь у меня есть двоичный 3 и так далее со всеми значениями. Разрешение моего АЦП составляет от 0,5 до 0.6mV для опорного напряжения 5В. Как вы можете себе представить, для другого опорного напряжения шаги будут отличаться.

флэш-схема АЦП


Если мы будем следовать таблице до 0,5 вольт, я должен иметь двоичный выход 000. На уровне 1.1 у меня появляется значение 001. На уровне 1.6 Вольт на 010. На уровне 2.2 Вольт на 011 и так далее.
Если мы хотим сэмплировать аналоговый вход с этим дерьмовым АЦП, мы должны создать цикл внутри кода Arduino с определенной частотой обновления и сохранить значения каждого цикла. Но я лучше использую 10-битный АЦП, который Arduino NANO уже имеет для этого. Ну, ребята, это все на сегодня. Просто некоторая базовая информация о флеш-АЦП. Уже есть интегрированные чипы для 8, 10 или 12-битного АЦП, и они очень дешевые.

Если вы хотите помочь моим проектам, подобным этому, у меня есть кампания Patreon . Я был бы очень признателен, ребята. Я надеюсь, что вам понравился этот урок. Если это так, не забудьте посетить мой канал на YouTubeдля большего. Если у вас есть вопросы по поводу этого видео или любого другого, просто оставьте его на моей странице вопросов и ответов. Кроме того, не забудьте подписаться и посмотреть все мои другие замечательные учебники. Помните, если вы хотите помочь моим проектам, проверьте и мою страницу Patreon. http://www.electronoobs.com/eng_circuitos_tut15_2.php

Комментарии

Популярные сообщения из этого блога

Задержка звука с Python

Распознавание диктора