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

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

Теперь задача кодера передать эти 4 единицы и 4 нуля в значение 3 бита, следующее за этой таблицей. Если нижний компаратор имеет высокую выходную мощность, а остальное низкое, у нас есть 000. Если второе и первое высокие, а остальные низкие, у нас есть 010 и так далее.
Как видите, количество компараторов даст нам разрешение. С 8 компараторами мы имеем 3-битный АЦП. С 16 компараторами 4-битный преобразователь. С 32 5 бит и тд. АЦП Arduino является 10-разрядным, поэтому мы можем иметь 1024 значения для диапазона напряжений от 0 до 5 вольт. Это дает нам шаг всего 4,8 мВ, что довольно хорошо.
Как видите, количество компараторов даст нам разрешение. С 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
Если мы хотим сэмплировать аналоговый вход с этим дерьмовым АЦП, мы должны создать цикл внутри кода Arduino с определенной частотой обновления и сохранить значения каждого цикла. Но я лучше использую 10-битный АЦП, который Arduino NANO уже имеет для этого. Ну, ребята, это все на сегодня. Просто некоторая базовая информация о флеш-АЦП. Уже есть интегрированные чипы для 8, 10 или 12-битного АЦП, и они очень дешевые.
Если вы хотите помочь моим проектам, подобным этому, у меня есть кампания Patreon . Я был бы очень признателен, ребята. Я надеюсь, что вам понравился этот урок. Если это так, не забудьте посетить мой канал на YouTubeдля большего. Если у вас есть вопросы по поводу этого видео или любого другого, просто оставьте его на моей странице вопросов и ответов. Кроме того, не забудьте подписаться и посмотреть все мои другие замечательные учебники. Помните, если вы хотите помочь моим проектам, проверьте и мою страницу Patreon. http://www.electronoobs.com/eng_circuitos_tut15_2.php
Комментарии
Отправить комментарий