[Перевод] Как использовать потенциометр с Raspberry PI Pico (MicroPython)

В этом руководстве вы узнаете, как использовать потенциометр с микроконтроллером Raspberry PI Pico. Вы узнаете, как подключить потенциометр для простого соединения и как подготовить код MicroPython для его использования.

Что такое потенциометр

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

Потенциометр

Потенциометр

У него есть 3 вывода, соединённых с резистивным элементом. Два внешних вывода должны быть подключены к земле и Vcc, а промежуточный вывод выдаёт значение напряжения в зависимости от положения ручки.

Два внешних вывода можно поменять местами, то есть можно соединить «землю» и «питание» в одном направлении или в противоположном. Но выходное значение будет дополнять значение «питания». 

Позвольте мне объяснить это на примере:

Предположим, что вы подключили 3,3 В к Vcc и заземление к внешним контактам. Вы поворачиваете ручку в такое положение, чтобы на выходе было 2 В. Затем, не поворачивая ручку, вы меняете местами контакты Vcc и GND. На выходе будет 1,3 В (то есть 3,3 В — 2 В).

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

Линейные и Логарифмические Потенциометры

Подчёркнутая на рисунке надпись обозначает линейный потенциометр с максимальным сопротивлением 10 кОм.

Подчёркнутая на рисунке надпись обозначает линейный потенциометр с максимальным сопротивлением 10 кОм.

Существует два распространённых типа потенциометров: линейные и логарифмические.

Линейный потенциометр имеет сопротивление, линейно возрастающее при вращении ручки. Это означает, что если вы установите ручку в среднее положение, то на выходе будет ровно половина значения Vcc. Линейные потенциометры можно отличить по букве «B», напечатанной на этикетке.

Логарифмический потенциометр, с другой стороны, имеет сопротивление, которое изменяется не линейно, а по логарифмической шкале. Такие потенциометры могут выглядеть как линейные, но они обозначаются буквой «A» рядом с сопротивлением потенциометра.

То, Что Нам Нужно

Raspberry Pi Pico

Raspberry Pi Pico

Я предлагаю с этого момента добавлять в вашу любимую корзину для покупок всё необходимое оборудование, чтобы в конце вы могли оценить общие затраты и решить, продолжать ли проект или убрать оборудование из корзины. Таким образом, оборудование будет только:

Микроконтроллер Raspberry PI Pico (с обычным кабелем micro USB)

Потенциометр

Макет (опционально)

Провода dupont

Пошаговая процедура

В этом руководстве я покажу вам, как использовать простой потенциометр, считывая его значение. Мы подключим выход потенциометра к аналоговому порту Raspberry PI Pico, чтобы считывать полученные значения и оценивать результат как в аналоговых единицах, так и в вольтах и процентах.

Схема подключения потенциометра с Raspberry PI Pico

Пожалуйста, выполните подключение, как показано на следующем рисунке, в соответствии с распиновкой Raspberry PI Pico. Обратите внимание, что Vcc подключается к выводу 3V3 (выход):

схема подключения потенциометра к Raspberry Pi и Pico

Схема подключения потенциометра к Raspberry Pi и Pico

Пожалуйста, найдите ниже несколько фотографий из моей маленькой лаборатории:

потенциометр-raspberry-pi-pico-01потенциометр-raspberry-pi-pico-02потенциометр-raspberry-pi-pico-03потенциометр-raspberry-pi-pico-04потенциометр-raspberry-pi-pico-05

Установите MicroPython на Raspberry PI Pico

Подключите Raspberry PI Pico к Thonny и установите MicroPython. Для первых шагов и установки MicroPython вы можете обратиться к моему руководству по первым шагам с Raspberry PI Pico.

Получите код MictoPython для потенциометра

Пожалуйста, загрузите следующий скрипт MicroPython из моей области загрузки:

pico_potentiometer.py

В следующих строках будет объяснен код построчно.

В начале скрипт импортирует необходимые модули. Функция sleep просто позволит нам сократить количество считываний до 1 в секунду, чтобы результат можно было считать в оболочке Thonny (иначе он будет прокручиваться слишком быстро).

from machine import ADC
from time import sleep

Мы использовали вывод 26 Raspberry PI Pico, который является портом ADC0. Рекомендуется присвоить номеру порта определённую переменную (для большей ясности кода), а затем инициализировать объект ADC:

pot_pin = 26
pot = ADC(pot_pin)

Этот код считывает выходное значение потенциометра в бесконечном цикле («while True:»). В каждом цикле наш Raspberry PI Pico считывает значение с помощью функции read_u16. Пожалуйста, помните, что она возвращает значение от 0 до 65535 (это диапазон от 2 до 16 значений, начиная с нуля).

while True:
    pot_value = pot.read_u16()

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

    volt = round((3.3/65535)*pot_value,2)
    percent = int(pot_value/65535*100)

Последняя строка кода просто выводит результаты, а «sleep (1)» добавляет секунду задержки, чтобы вы могли прочитать результаты.

    print("Volt: "+str(volt)+" | Read value: "+str(pot_value)+" | percent: "+str(percent)+"%")
    sleep(1)

Запуск скрипта pico_potentiometer.py

Запустите этот скрипт в Thonny IDE (F5), и вы начнёте считывать показания потенциометра в абсолютных значениях. Значения напряжения и процентные значения. Поворачивая ручку потенциометра, вы увидите, как меняются эти значения, как в следующем фрагменте кода:

>>> %Run -c $EDITOR_CONTENT
Volt: 0.02 | Read value: 352 | percent: 0%
Volt: 0.02 | Read value: 336 | percent: 0%
Volt: 0.44 | Read value: 8706 | percent: 13%
Volt: 1.15 | Read value: 22869 | percent: 34%
Volt: 1.91 | Read value: 37865 | percent: 57%
Volt: 3.07 | Read value: 60942 | percent: 92%
Volt: 3.29 | Read value: 65295 | percent: 99%
Volt: 2.76 | Read value: 54829 | percent: 83%
Volt: 2.03 | Read value: 40393 | percent: 61%
Volt: 1.63 | Read value: 32295 | percent: 49%
Volt: 1.28 | Read value: 25478 | percent: 38%
Volt: 1.03 | Read value: 20356 | percent: 31%
Volt: 1.35 | Read value: 26806 | percent: 40%
Volt: 1.35 | Read value: 26886 | percent: 41%

P.S.

Эта статья, была переведена больше для моего личного применения и чтобы не потерять. Если кому-то окажется полезной, великолепно.

Habrahabr.ru прочитано 1981 раз