Получение "NameError: имя 'Pin' не определено" при выполнении кода python на ESP32 - PullRequest
0 голосов
/ 22 апреля 2020

Я использую raspberrypi4 с ESP32 и пытаюсь собрать данные с моего емкостного датчика почвы HW-390. Я следовал коду с этого сайта :

from machine import ADC

adc = ADC(Pin(32))          # create ADC object on ADC pin
adc.read()                  # read value, 0-4095 across voltage range 0.0v - 1.0v

adc.atten(ADC.ATTN_11DB)    # set 11dB input attenuation (voltage range roughly 0.0v - 3.6v)
adc.width(ADC.WIDTH_9BIT)   # set 9 bit return values (returned range 0-511)
adc.read()                  # read value using the newly configured attenuation and width

Для считывания значений с моего датчика почвы. Когда я запускаю программу, я получаю эту ошибку:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "pythonsoil.py", line 3, in <module>
NameError: name 'Pin' isn't defined

У меня есть провод данных, проходящий через резистор 1 кОм, затем к D32 или GPIO32, поэтому я предполагаю, что проблема связана с самим кодом.

Что мне нужно сделать, чтобы изменить код так, чтобы он давал показания?

1 Ответ

1 голос
/ 22 апреля 2020

Вы пропустили импорт Pin

Ваш код должен выглядеть как

from machine import ADC, Pin

adc = ADC(Pin(32))          # create ADC object on ADC pin
adc.read()                  # read value, 0-4095 across voltage range 0.0v - 1.0v

adc.atten(ADC.ATTN_11DB)    # set 11dB input attenuation (voltage range roughly 0.0v - 3.6v)
adc.width(ADC.WIDTH_9BIT)   # set 9 bit return values (returned range 0-511)
adc.read()
...