Изчитане на Аналогова Стойност с ESP8266 и MicroPython

Изчитане на Аналогова Стойност с ESP8266 и MicroPython

В тази статия ще разгледаме как да използваме ESP8266 и MicroPython за изчитане на аналогова стойност с помощта на потенциометър. Потенциометърът е аналогов сензор, който може да бъде използван за изменяне на напрежението (аналогова стойност), което ще прочетем с АЦП(ADC). В този пример ще изчетем стойността на потенциометъра и ще я принтираме в конзолата.

Необходими компоненти:

  • ESP8266 (D1 mini или друга версия)
  • Потенциометър
  • Кабели за свързване

Свързване на компонентите:

Изчитане на Аналогова Стойност с ESP8266 и MicroPython схема
  1. Свържете VCC на потенциометъра към 3.3V пина на ESP8266.
  2. Свържете GND на потенциометъра към GND пина на ESP8266.
  3. Свържете сигналния пин (средния пин) на потенциометъра към 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
  1. В началото на кода импортираме необходимите модули:
    • ADC: Този модул ни позволява да работим с аналоговите пинове на ESP8266.
    • sleep: Функцията sleep от модула time се използва за добавяне на пауза между всяко изчитане.

Създаване на обект за аналоговия пин:

# Създаване на обект за аналоговия пин
adc = ADC(0)
  1. Създаваме обект adc, който е свързан към пин A0 на ESP8266. Този пин е предназначен за изчитане на аналогови стойности и ще използваме този обект за извличане на данни от потенциометъра.

Главен цикъл:

while True:
  1. Главният цикъл while True: осигурява непрекъснато изпълнение на програмата, докато тя не бъде спряна. Вътре в този цикъл ще изчитаме стойността от потенциометъра и ще я принтираме.

Изчитане на стойността от потенциометъра:

# Четене на стойността от потенциометъра
    pot_value = adc.read()
  1. Функцията adc.read() връща цифрова стойност между 0 и 1023, която съответства на аналоговото напрежение на пина A0. Тази стойност се съхранява в променливата pot_value.

Принтиране на стойността в конзолата:

# Принтиране на стойността в конзолата
    print("Analog value:", pot_value)
  1. След като изчистим стойността, тя се принтира в конзолата с цел наблюдение. Това ни позволява да видим текущата стойност на потенциометъра.

Добавяне на забавяне между четенията:

# Забавяне от 0.5 секунди преди следващото четене
    sleep(0.5)
  1. За да избегнем прекалено бързото изчитане на стойности и да дадем време за реакция на потенциометъра, добавяме забавяне от 0.5 секунди между всяко изчитане. Това се прави чрез функцията sleep(0.5).

Как работи:

Когато завъртате потенциометъра, съпротивлението му се променя, което води до промяна на напрежението, подавано към пина A0 на ESP8266. Тази промяна се изчита като цифрова стойност и се принтира в конзолата. Стойността варира между 0 (при минимално съпротивление) и 1023 (при максимално съпротивление).

Заключение:

Този прост пример демонстрира как се изчита аналогова стойност с ESP8266 и MicroPython. Това е полезно за различни приложения, включително регулиране на светлина, скорост на мотори и други аналогови сензори. Надяваме се, че тази статия ви е била полезна и ви насърчава да изследвате още възможности с ESP8266 и MicroPython!