# ЛР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