This commit is contained in:
dboyarov
2026-09-24 18:31:50 +03:00
parent 787d33d7ea
commit 6d53a2451e
24 changed files with 8106 additions and 25 deletions

View File

@@ -0,0 +1,38 @@
# ЛР2601, п. 3 порядка выполнения: меандр 20 кГц на выводе микроконтроллера
# Плата: ESP32-C3 Super Mini, MicroPython.
# Сигнал снимается с GPIO6 (разъём J1, контакт 8) и подаётся на вход первого инвертора.
#
# Используется аппаратный ШИМ: частота выдерживается точно
# и не зависит от скорости интерпретатора Python.
from machine import Pin, PWM
OUT_PIN = 6 # номер GPIO, при необходимости поменять
FREQ = 20_000 # 20 кГц -> период 50 мкс
pwm = PWM(Pin(OUT_PIN, Pin.OUT), freq=FREQ, duty_u16=32768) # скважность 50 %
# Программа ничего больше не делает: ШИМ работает сам по себе.
# Остановить: pwm.deinit()
# ---------------------------------------------------------------------------
# Вариант только на классе Pin (как в Приложении 3 методички).
# Частота получится НЕ ровно 20 кГц: каждая команда Python на ESP32-C3
# выполняется несколько микросекунд. Используйте, если преподаватель
# требует решение именно через Pin.on()/Pin.off().
#
# from machine import Pin
# import time
# p = Pin(OUT_PIN, Pin.OUT)
# half = 25 # полпериода 25 мкс
# t = time.ticks_us()
# while True:
# p.on()
# t = time.ticks_add(t, half)
# while time.ticks_diff(t, time.ticks_us()) > 0:
# pass
# p.off()
# t = time.ticks_add(t, half)
# while time.ticks_diff(t, time.ticks_us()) > 0:
# pass