Это старая версия документа!


Эксперимент 14. Измерение напряжения

В предыдущей статье мы узнали о том что такое аналого- цифровой преобразователь. Микроконтроллер, на базе которого работает наш электронный конструктор, имеет встроенный аналого- цифровой преобразователь. Попробуем им воспользоваться.

Подключение переменного резистора

На плате конструктора установлен переменный резистор. Переменный резистор состоит из полукруглой пластины, покрытой веществом, имеющим электрическое сопротивление, и скользящего контакта с ручкой. У переменного резистора три вывода — по концам пластины и скользящий контакт. Сопротивление меняется в зависимости от длины отрезка резистивной пластины от ее начала до скользящего контакта. Чем больше этот путь, тем выше сопротивление.

Рисунок 1. Переменный резистор. Внешний вид, устройство и условное обозначение

Переменный резистор можно представить как схему из двух резисторов

С помощью переменного резистора будем получать аналоговый сигнал. Используем широко распространенную схему резисторного делителя напряжения. Резисторный делитель — это два последовательных участка цепи, называемых плечами, сумма напряжений на которых равна напряжению питания. Плечо между минусом питания и средней точкой называют нижним, а другое — верхним.

Резисторный делитель используется для деления напряжения. Например, если верхнее и нижнее плечи имеют одинаковые сопротивления, то напряжение на средней точке делителя равно половине напряжения питания. Такой делитель делит напряжение на 2.

Подключим нижнее плечо с земле, а верхнее к напряжению питания. Тогда при вращении ручки переменного резистора на его средней точки напряжение будет изменяться от 0 до напряжения питания (3,3в в нашем конструкторе). Подключим среднюю точку ко входу аналого- цифрового преобразователя и будем измерять напряжение на ней.

Схема эксперимента

Рисунок 2. Электрическая принципиальная схема эксперимента

Рисунок 3. Монтажная схема эксперимента

Программный код эксперимента

Exp14.py
  1. from machine import Pin
  2. import time
  3. _init()
  4.  
  5. adc = machine.ADC(0)
  6.  
  7. while True:
  8. value = adc.read()
  9. print(value)
  10. time.sleep(1)

Дополнительное задание