В данном материале мы узнаем о АЦП микроконтроллерной платы Raspberry Pi Pico и о том, как с ним работать с помощью языка программирования MicroPython.

Raspberry Pi Pico имеет четыре 12-битных канала АЦП, но один из них подключен к внутреннему датчику температуры. Оставшиеся каналы АЦП находятся на GPIO26, GPIO27 и GPIO28 и обозначены как ADC0, ADC1, ADC2 соответственно. Далее приведена распиновка Raspberry Pi Pico.

Каналы АЦП на Raspberry Pi Pico позволяют использовать данную плату в широком спектре приложений. АЦП с восемью каналами можно использовать для измерения различных сигналов. В Pico АЦП чаще всего используется для измерения напряжения батареи. Однако его также можно использовать для измерения тока, температуры и даже влажности. АЦП Pico имеет разрешение 12 бит, что означает, что он может измерять напряжение с точностью до 0,025%. Это довольно точно, и это означает, что АЦП Pico неплохо подходит для приложений, где важна точность. АЦП также можно использовать для измерения напряжения в широком диапазоне от 0 до 3,3 В.
На следующем изображении показана схема Raspberry Pi Pico с потенциометром, которую мы будем использовать для проверки работы АЦП.

Как мы видим, один вывод потенциометра питается от 5 В, центральный вывод подключен к контакту АЦП, в нашем случае GP28, а последний заземлен (черный). На макетной плате это может выглядеть следующим образом.

Далее приведен код MicroPython для чтения аналогового ввода для Raspberry Pi Pico. Для программирования вы можете использовать Thonny IDE. Скопируйте следующий код и нажмите кнопку Download & Run (Загрузить и запустить).
import machine
import utime
led_red = machine.PWM(machine.Pin(10))
potentiometer = machine.ADC(26)
led_red.freq(1000)
while True:
led_red.duty_u16(potentiometer.read_u16())
Важно отметить, что тип значения, которое мы возвращаем с помощью функции «read_u16», представляет собой 16-битное целое число без знака. Это означает, что оно будет варьироваться от 0 до 65,535, а не 4095, как можно было бы ожидать от 12-разрядного АЦП.

Запустите скрипт, вы должны увидеть, что значения меняются при перемещении вала потенциометра.
© digitrode.ru