Показаны различия между двумя версиями страницы.
Следующая версия | Предыдущая версия | ||
products:laboratory_iot:exp14 [2020/05/14 13:21] – создано labuser29 | products:laboratory_iot:exp14 [2020/05/17 10:29] (текущий) – [Подключение переменного резистора] labuser29 | ||
---|---|---|---|
Строка 1: | Строка 1: | ||
===== Эксперимент 14. Измерение напряжения ===== | ===== Эксперимент 14. Измерение напряжения ===== | ||
+ | |||
+ | В предыдущей статье мы узнали о том что такое аналого- цифровой преобразователь. Микроконтроллер, | ||
+ | |||
+ | ==== Подключение переменного резистора ==== | ||
+ | На плате конструктора установлен переменный резистор. | ||
+ | Переменный резистор состоит из полукруглой пластины, | ||
+ | покрытой веществом, | ||
+ | и скользящего контакта с ручкой. У переменного резистора | ||
+ | три вывода — по концам пластины и скользящий контакт. | ||
+ | Сопротивление меняется в зависимости от длины отрезка | ||
+ | резистивной пластины от ее начала до скользящего контакта. Чем | ||
+ | больше этот путь, тем выше сопротивление. | ||
+ | |||
+ | {{ : | ||
+ | // | ||
+ | |||
+ | Переменный резистор можно представить как схему из двух резисторов | ||
+ | {{ : | ||
+ | |||
+ | ==== Делитель напряжения ==== | ||
+ | С помощью переменного резистора будем получать аналоговый сигнал. | ||
+ | Используем широко распространенную схему резисторного | ||
+ | делителя напряжения. Резисторный делитель — это два | ||
+ | последовательных участка цепи, называемых плечами, | ||
+ | напряжений на которых равна напряжению питания. Плечо между | ||
+ | минусом питания и средней точкой называют нижним, | ||
+ | верхним. | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Резисторный делитель используется для деления напряжения. | ||
+ | Например, | ||
+ | сопротивления, | ||
+ | половине напряжения питания. Такой делитель делит напряжение | ||
+ | на 2. | ||
+ | |||
+ | Подключим нижнее плечо с земле, а верхнее к напряжению питания. Тогда при вращении ручки переменного резистора на его средней точки напряжение будет изменяться от 0 до напряжения питания (3,3в в нашем конструкторе). Подключим среднюю точку ко входу аналого- цифрового преобразователя и будем измерять напряжение на ней. | ||
+ | |||
+ | ==== Схема эксперимента ==== | ||
+ | {{ : | ||
+ | // | ||
+ | |||
+ | {{ : | ||
+ | // | ||
+ | |||
+ | ==== Программный код эксперимента ==== | ||
+ | <file python Exp14.py[enable_line_numbers=" | ||
+ | from machine import Pin | ||
+ | import time | ||
+ | _init() | ||
+ | |||
+ | adc = machine.ADC(0) | ||
+ | |||
+ | while True: | ||
+ | value = adc.read() | ||
+ | print(value) | ||
+ | time.sleep(1) | ||
+ | </ | ||
+ | |||
+ | в строке 5 мы объявляем объект АЦП, передавая в качестве параметра номер канала АЦП. В нашем микроконтроллере только один канал и он имеет номер 0. | ||
+ | |||
+ | <code python [enable_line_numbers=" | ||
+ | adc = machine.ADC(0) | ||
+ | </ | ||
+ | |||
+ | В цикле просим АЦП оцифровать текущее напряжение на его входе и сообщить нам результат. Результатом является число в диапазоне от 0 до 1023. | ||
+ | <code python [enable_line_numbers=" | ||
+ | value = adc.read() | ||
+ | </ | ||
+ | |||
+ | После чего выводим результат в консоль | ||
+ | <code python [enable_line_numbers=" | ||
+ | print(value) | ||
+ | </ | ||
+ | |||
+ | Оператор '' | ||
+ | ==== Дополнительное задание ==== | ||
+ | <WRAP center round tip 60%> | ||
+ | * Если наш АЦП при напряжении 0 вольт возвращает результат 0, а при 3.3 вольт — 1023, то какой результат преобразования будет при напряжении 1.65? А если напряжение 1 вольт ровно? | ||
+ | * Какое напряжение соответствует значению 785? | ||
+ | </ | ||
+ |