Увеличиваем разрядность АЦП (12 или 14 бит) на ARDUINO (atmega), повышаем точность ADC, оверсемплинг
ฝัง
- เผยแพร่เมื่อ 24 ก.ย. 2024
- #ардуино, #arduino, #atmega
Что бы повысить точность и увеличить разрядность микроконтроллера Arduino (atmega) используем оверсемплинг АЦП (аналогово-цифрового преобразователя).
Увеличиваем число замеров на n-ое количество, и выдаем в АЦП среднее-арифметическое.
Скетч скачать в группе ВК: arduino...
На аруидно про мини, испытал - все работает
Спасибо за видео, лайк!
С субтитрами более понятно, про сдвиг регистров. Что бы увеличить разрешение АЦП скажем на 2 (получить 12 бит), надо сдвинуть регистор на два меньше (не до сдвинуть на 2)?
Да, все правильно.
Когда увеличиваем разрядность АЦП на 2, то и уменьшаем сдвиг на два.
На сколько хотим увеличить разрядность, на столько и уменьшаем сдвиг. (Не до сдвигаем)
А можно ли за счёт использования 2 аналоговых портов повысить разрядность к примеру используя схемотехнику разделить исходную амплитуду на 2 канала?
спасибо за информацию, как раз не мог понять как разрядность ардуинки повысить для того,чтобы сделать гитарный тюнер
Проведите эксперимент с одновременным замером напряжения на одном и том же источнике микроконтроллерами с АЦП разной разрядности и проверьте свои утверждения.
Код весь такой блатной, на прямом управлении регистрами, а усреднение использует цикл который сильно замедляет работу всей программы. Я не увидел увеличения разрядности АЦП. Это просто усреднение значения и умножение в энное количество раз. Шумы при этом тоже умножаются. Советую использовать усреднение значений на лету, без цикла. Тогда программа будет работать гораздо быстрее и остальной код тоже не будет тормозить в ожидании завершения цикла.
Надо бы ещё пару роликов забацать. Показать как устанавливать режимы работы АЦП и использовать DMA... ;)
Скажите пожалуйста а как сразу с двух аналоговых портов считывать разные показания ?
Только ардуинщик разрядность путает с точностью. 😊
Надо учитывать, что точные замеры АЦП дешёвые мк проводят с точностью до штбрасывания двух последних бит. Т.е. при 10битах можно говорит о точности 8бит. В двух младших - это шумы, нелинейности и другие пороки преобразования аналога в цифру... ;)
Усреднение никоим образом не может повысить разрядность АЦП. Всё, что вы получаете свыше таким методом - это мусор.
что-то я не понял смысла этой точности... в 1 раз были цифры 5ххх, а 2-ой - 9ххх... если бы было 5хх и 5ххх я бы понял, а здесь не точность... показатели-то абсолютно разные... разве условия при замерах изменились? если да, почему об этом ничего не сказано? или чего я не понял?
Точность увеличилась как-раз за счёт того, что цифры увеличились
"Повышается" разрядность не десятичная, а двоичная, а десятичная цифра лишь представление этого значения соответственно если мы делаем сдвиг на один двоичный разряд влево 5ххх станет стане 9ххх
разрядность АЦП 10 бит
все попугаи которые выводятся этими формулами точности не повышают.
Если есть ШУМ, (значения колеблются), то оверсемплинг АЦП - повышает точность. При отсутствии шума, точность не увеличивается.
@@npoenergokom данное математическое действие всего лишь усредняет значения замеров...
название видео вводит в заблуждение людей.
@@alhimn1 Почитайте материал про оверсемплинг АЦП, и программное увеличение разрядности АЦП с помощью оверсемплинга.
А так же : ww1.microchip.com/downloads/en/Appnotes/doc8003.pdf
С названием все в порядке!
@@npoenergokom
Функции
• Увеличение разрешения за счет передискретизации
• Усреднение и прореживание
• Снижение шума за счет усреднения выборок
о точности речи не идёт
@@alhimn1Конечно, никуда не денется дифференциальная, интегральная нелинейность.