===== Эксперимент 14. Измерение напряжения =====
В предыдущей статье мы узнали о том что такое аналого- цифровой преобразователь. Микроконтроллер, на базе которого работает наш электронный конструктор, имеет встроенный аналого- цифровой преобразователь. Попробуем им воспользоваться.
==== Подключение переменного резистора ====
На плате конструктора установлен переменный резистор.
Переменный резистор состоит из полукруглой пластины,
покрытой веществом, имеющим электрическое сопротивление,
и скользящего контакта с ручкой. У переменного резистора
три вывода — по концам пластины и скользящий контакт.
Сопротивление меняется в зависимости от длины отрезка
резистивной пластины от ее начала до скользящего контакта. Чем
больше этот путь, тем выше сопротивление.
{{ :products:esp-iot:varr.png?nolink |}}
//Рисунок 1. Переменный резистор. Внешний вид, устройство и условное обозначение//
Переменный резистор можно представить как схему из двух резисторов
{{ :products:esp-iot:varr.1.png?nolink |}}
==== Делитель напряжения ====
С помощью переменного резистора будем получать аналоговый сигнал.
Используем широко распространенную схему резисторного
делителя напряжения. Резисторный делитель — это два
последовательных участка цепи, называемых плечами, сумма
напряжений на которых равна напряжению питания. Плечо между
минусом питания и средней точкой называют нижним, а другое —
верхним.
{{ :products:esp-iot:varr.2.png?nolink |}}
Резисторный делитель используется для деления напряжения.
Например, если верхнее и нижнее плечи имеют одинаковые
сопротивления, то напряжение на средней точке делителя равно
половине напряжения питания. Такой делитель делит напряжение
на 2.
Подключим нижнее плечо с земле, а верхнее к напряжению питания. Тогда при вращении ручки переменного резистора на его средней точки напряжение будет изменяться от 0 до напряжения питания (3,3в в нашем конструкторе). Подключим среднюю точку ко входу аналого- цифрового преобразователя и будем измерять напряжение на ней.
==== Схема эксперимента ====
{{ :products:esp-iot:varr.3.png?nolink |}}
//Рисунок 2. Электрическая принципиальная схема эксперимента//
{{ :products:esp-iot:adcexp.png?direct&600 |}}
//Рисунок 3. Монтажная схема эксперимента//
==== Программный код эксперимента ====
from machine import Pin
import time
_init()
adc = machine.ADC(0)
while True:
value = adc.read()
print(value)
time.sleep(1)
в строке 5 мы объявляем объект АЦП, передавая в качестве параметра номер канала АЦП. В нашем микроконтроллере только один канал и он имеет номер 0.
adc = machine.ADC(0)
В цикле просим АЦП оцифровать текущее напряжение на его входе и сообщить нам результат. Результатом является число в диапазоне от 0 до 1023.
value = adc.read()
После чего выводим результат в консоль
print(value)
Оператор ''print'' предназначен для печати в консоль.
==== Дополнительное задание ====
* Если наш АЦП при напряжении 0 вольт возвращает результат 0, а при 3.3 вольт — 1023, то какой результат преобразования будет при напряжении 1.65? А если напряжение 1 вольт ровно?
* Какое напряжение соответствует значению 785?