
В тази статия ще разгледаме как да използваме ESP8266 и MicroPython за изчитане на аналогова стойност с помощта на потенциометър. Потенциометърът е аналогов сензор, който може да бъде използван за изменяне на напрежението (аналогова стойност), което ще прочетем с АЦП(ADC). В този пример ще изчетем стойността на потенциометъра и ще я принтираме в конзолата.
Необходими компоненти:
- ESP8266 (D1 mini или друга версия)
- Потенциометър
- Кабели за свързване
Свързване на компонентите:

- Свържете VCC на потенциометъра към 3.3V пина на ESP8266.
- Свържете GND на потенциометъра към GND пина на ESP8266.
- Свържете сигналния пин (средния пин) на потенциометъра към A0 пина на ESP8266.
В тази схема сме използвали платформата ESP8266 D1 mini. Може да прочетете нейната спецификация и конфигурация на пиновете в ревюто ни за нея: ESP8266 D1 Mini – Малък, но Мощен Wi-Fi Микроконтролер.
Код за изчитане на аналогова стойност с ESP8266 и MicroPython
from machine import ADC
from time import sleep
# Създаване на обект за аналоговия пин
adc = ADC(0)
while True:
# Четене на стойността от потенциометъра
pot_value = adc.read()
# Принтиране на стойността в конзолата
print("Analog value:", pot_value)
# Забавяне от 0.5 секунди преди следващото четене
sleep(0.5)
Обяснение на кода:
Импортиране на модули:
from machine import ADC
from time import sleep
- В началото на кода импортираме необходимите модули:
- ADC: Този модул ни позволява да работим с аналоговите пинове на ESP8266.
- sleep: Функцията sleep от модула time се използва за добавяне на пауза между всяко изчитане.
Създаване на обект за аналоговия пин:
# Създаване на обект за аналоговия пин
adc = ADC(0)
- Създаваме обект adc, който е свързан към пин A0 на ESP8266. Този пин е предназначен за изчитане на аналогови стойности и ще използваме този обект за извличане на данни от потенциометъра.
Главен цикъл:
while True:
- Главният цикъл while True: осигурява непрекъснато изпълнение на програмата, докато тя не бъде спряна. Вътре в този цикъл ще изчитаме стойността от потенциометъра и ще я принтираме.
Изчитане на стойността от потенциометъра:
# Четене на стойността от потенциометъра
pot_value = adc.read()
- Функцията adc.read() връща цифрова стойност между 0 и 1023, която съответства на аналоговото напрежение на пина A0. Тази стойност се съхранява в променливата pot_value.
Принтиране на стойността в конзолата:
# Принтиране на стойността в конзолата
print("Analog value:", pot_value)
- След като изчистим стойността, тя се принтира в конзолата с цел наблюдение. Това ни позволява да видим текущата стойност на потенциометъра.
Добавяне на забавяне между четенията:
# Забавяне от 0.5 секунди преди следващото четене
sleep(0.5)
- За да избегнем прекалено бързото изчитане на стойности и да дадем време за реакция на потенциометъра, добавяме забавяне от 0.5 секунди между всяко изчитане. Това се прави чрез функцията sleep(0.5).
Как работи:
Когато завъртате потенциометъра, съпротивлението му се променя, което води до промяна на напрежението, подавано към пина A0 на ESP8266. Тази промяна се изчита като цифрова стойност и се принтира в конзолата. Стойността варира между 0 (при минимално съпротивление) и 1023 (при максимално съпротивление).
Заключение:
Този прост пример демонстрира как се изчита аналогова стойност с ESP8266 и MicroPython. Това е полезно за различни приложения, включително регулиране на светлина, скорост на мотори и други аналогови сензори. Надяваме се, че тази статия ви е била полезна и ви насърчава да изследвате още възможности с ESP8266 и MicroPython!