Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
products:laboratory_iot:exp14 [2020/05/14 13:56] – labuser29 | products:laboratory_iot:exp14 [2020/05/17 10:29] (текущий) – [Подключение переменного резистора] labuser29 | ||
---|---|---|---|
Строка 3: | Строка 3: | ||
В предыдущей статье мы узнали о том что такое аналого- цифровой преобразователь. Микроконтроллер, | В предыдущей статье мы узнали о том что такое аналого- цифровой преобразователь. Микроконтроллер, | ||
- | === Подключение переменного резистора === | + | ==== Подключение переменного резистора |
На плате конструктора установлен переменный резистор. | На плате конструктора установлен переменный резистор. | ||
Переменный резистор состоит из полукруглой пластины, | Переменный резистор состоит из полукруглой пластины, | ||
Строка 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? | ||
+ | </ | ||
- | С его помощью будем получать аналоговый сигнал. | ||
- | Для этого подключим переменный резистор по схеме делителя напряжения |