MicroPython:Платы/ESP8266/Руководство по MicroPython для ESP8266/Управление питанием: различия между версиями
Myagkij (обсуждение | вклад) |
Нет описания правки |
||
Строка 11: | Строка 11: | ||
У модуля machine есть функция, позволяющая считывать и задавать частоту [[CPU]]. Чтобы прочесть частоту [[CPU]], используйте: | У модуля machine есть функция, позволяющая считывать и задавать частоту [[CPU]]. Чтобы прочесть частоту [[CPU]], используйте: | ||
<syntaxhighlight lang="python | <syntaxhighlight lang="python"> | ||
>>> import machine | >>> import machine | ||
>>> machine.freq() | >>> machine.freq() | ||
Строка 19: | Строка 19: | ||
По умолчанию [[CPU]] работает на ''80 МГц''. Если вам нужна более высокая вычислительная мощность, частоту можно поменять на ''160 МГц'', но это произойдет ценой увеличения нагрузки на питание: | По умолчанию [[CPU]] работает на ''80 МГц''. Если вам нужна более высокая вычислительная мощность, частоту можно поменять на ''160 МГц'', но это произойдет ценой увеличения нагрузки на питание: | ||
<syntaxhighlight lang="python | <syntaxhighlight lang="python"> | ||
>>> machine.freq(160000000) | >>> machine.freq(160000000) | ||
>>> machine.freq() | >>> machine.freq() | ||
Строка 33: | Строка 33: | ||
Чтобы использовать режим глубокого сна, вы должны подключить ''GPIO16'' к контакту сброса (на плате ''Adafruit Feather HUZZAH'' это ''RST''). Затем можно воспользоваться кодом ниже для перевода чипа в режим глубокого сна и выхода из него: | Чтобы использовать режим глубокого сна, вы должны подключить ''GPIO16'' к контакту сброса (на плате ''Adafruit Feather HUZZAH'' это ''RST''). Затем можно воспользоваться кодом ниже для перевода чипа в режим глубокого сна и выхода из него: | ||
<syntaxhighlight lang="python | <syntaxhighlight lang="python"> | ||
import machine | import machine | ||
Строка 50: | Строка 50: | ||
Помните, что когда устройство выходит из режима глубокого сна – это как если бы оно пробуждалось после сброса (включая сброс памяти). Скрипты в ''«boot.py»'' запустятся как обычно, и вы можете поместить в них код, который будет проверять, выходит ли устройство из режима глубокого сна, и если да, будет выполнять какие-то другие действия, чем если бы устройство просто включалось. Например, с помощью кода ниже можно напечатать или уведомление о выходе из режима глубокого сна, или уведомление о просто включении или включении после полной перезагрузки: | Помните, что когда устройство выходит из режима глубокого сна – это как если бы оно пробуждалось после сброса (включая сброс памяти). Скрипты в ''«boot.py»'' запустятся как обычно, и вы можете поместить в них код, который будет проверять, выходит ли устройство из режима глубокого сна, и если да, будет выполнять какие-то другие действия, чем если бы устройство просто включалось. Например, с помощью кода ниже можно напечатать или уведомление о выходе из режима глубокого сна, или уведомление о просто включении или включении после полной перезагрузки: | ||
<syntaxhighlight lang="python | <syntaxhighlight lang="python"> | ||
if machine.reset_cause() == machine.DEEPSLEEP_RESET: | if machine.reset_cause() == machine.DEEPSLEEP_RESET: | ||
print('пробуждение из режима глубокого сна') | print('пробуждение из режима глубокого сна') |
Текущая версия от 20:05, 23 мая 2023
Управление питанием[1]
ESP8266 позволяет на ходу менять частоту CPU, а также переходить в режим глубокого сна. Обе этих функции можно использовать для управления потреблением электроэнергии.
Изменение частоты CPU
У модуля machine есть функция, позволяющая считывать и задавать частоту CPU. Чтобы прочесть частоту CPU, используйте:
>>> import machine
>>> machine.freq()
80000000
По умолчанию CPU работает на 80 МГц. Если вам нужна более высокая вычислительная мощность, частоту можно поменять на 160 МГц, но это произойдет ценой увеличения нагрузки на питание:
>>> machine.freq(160000000)
>>> machine.freq()
160000000
То есть, если вашему коду надо выполнить какие-то сложные вычисления, вы можете задать более высокую частоту, а после этого вернуть ее обратно.
Режим глубокого сна
После перехода в режим глубокого сна ESP8266 выключится, включая всю его периферию, включая WiFi (кроме часов реального времени, которые используются для пробуждения чипа). Это серьезно снижает энергопотребление и хорошо подходит для проектов, работающих от батареи.
Чтобы использовать режим глубокого сна, вы должны подключить GPIO16 к контакту сброса (на плате Adafruit Feather HUZZAH это RST). Затем можно воспользоваться кодом ниже для перевода чипа в режим глубокого сна и выхода из него:
import machine
# настраиваем RTC.ALARM0 на пробуждение устройства:
rtc = machine.RTC()
rtc.irq(trigger=rtc.ALARM0, wake=machine.DEEPSLEEP)
# задаем RTC.ALARM0 на запуск
# через 10 секунд (пробуждение устройства):
rtc.alarm(rtc.ALARM0, 10000)
# переводим устройство в режим глубокого сна:
machine.deepsleep()
Помните, что когда устройство выходит из режима глубокого сна – это как если бы оно пробуждалось после сброса (включая сброс памяти). Скрипты в «boot.py» запустятся как обычно, и вы можете поместить в них код, который будет проверять, выходит ли устройство из режима глубокого сна, и если да, будет выполнять какие-то другие действия, чем если бы устройство просто включалось. Например, с помощью кода ниже можно напечатать или уведомление о выходе из режима глубокого сна, или уведомление о просто включении или включении после полной перезагрузки:
if machine.reset_cause() == machine.DEEPSLEEP_RESET:
print('пробуждение из режима глубокого сна')
else:
print('просто включение или включение после перезагрузки')