Пассивный буззер (PWM) ESP32 micropython
Пассивный буззер (PWM)
Мелодия Star Wars.
main.py
from machine import Pin, PWM
import time
buzzer = PWM(Pin(5))
def tone(freq, duration):
if freq == 0:
buzzer.duty(0)
time.sleep(duration)
else:
buzzer.freq(freq)
buzzer.duty(50)
time.sleep(duration)
buzzer.duty(0)
time.sleep(0.02)
# Ноты (частоты в Гц)
A4 = 440
A4S = 466
B4 = 494
C5 = 523
C5S = 554
D5 = 587
D5S = 622
E5 = 659
F5 = 698
F5S = 740
G5 = 784
G5S = 831
A5 = 880
# 🎵 Мелодия Star Wars (упрощённая)
melody = [
(A4, 0.5), (A4, 0.5), (F5, 0.35), (C5, 0.15),
(A4, 0.5), (F5, 0.35), (C5, 0.15), (A4, 1.0),
(E5, 0.5), (E5, 0.5), (E5, 0.5),
(F5, 0.35), (C5, 0.15), (A4, 0.5),
(F5, 0.35), (C5, 0.15), (A4, 1.0),
(A5, 0.5), (A4, 0.35), (A4, 0.15), (A5, 0.5),
(G5S, 0.25), (G5, 0.25), (F5S, 0.25), (F5, 0.25), (F5S, 0.5),
(0, 0.25),
(A4S, 0.25), (D5S, 0.5), (D5, 0.25), (C5S, 0.25), (C5, 0.25), (B4, 0.25), (C5, 0.5),
]
for note in melody:
tone(*note)
buzzer.deinit()
print("✅ Мелодия Star Wars завершена!")
Мелодия Super Mario.
main.py
from machine import Pin, PWM
import time
buzzer = PWM(Pin(5))
def tone(freq, duration):
if freq == 0:
buzzer.duty(0)
time.sleep(duration)
else:
buzzer.freq(freq)
buzzer.duty(512)
time.sleep(duration)
buzzer.duty(0)
time.sleep(0.02)
# Ноты (частоты в Гц)
C4 = 262
D4 = 294
E4 = 330
F4 = 349
G4 = 392
A4 = 440
B4 = 494
C5 = 523
D5 = 587
E5 = 659
F5 = 698
G5 = 784
A5 = 880
B5 = 988
# 🎵 Простая мелодия Super Mario
melody = [
(E5, 0.15), (E5, 0.15), (0, 0.1),
(E5, 0.15), (0, 0.1), (C5, 0.15), (E5, 0.15),
(0, 0.1), (G5, 0.3), (0, 0.3), (G4, 0.3),
(0, 0.2),
(C5, 0.15), (0, 0.1), (G4, 0.15), (0, 0.1),
(E4, 0.15), (0, 0.1),
(A4, 0.15), (B4, 0.15), (466, 0.15), (A4, 0.15), # Bb4 = 466 Гц
(G4, 0.1), (E5, 0.1), (G5, 0.1), (A5, 0.15),
(F5, 0.1), (G5, 0.1), (0, 0.2),
]
for note in melody:
tone(*note)
buzzer.deinit()
print("✅ Мелодия завершена!")


Комментарии
Отправить комментарий