在klipper固件中驱动蜂鸣器的方法

klipper虽然默认不支持蜂鸣器功能,但还有一个方法可以使用命令手动操作蜂鸣器,这个功能能够在打印机需要用户参与工作时起到作用,
原理是将控制蜂鸣器的针脚定义为一个用户可控的PWM针脚,将控制针脚的命令放在切片软件里需要的地方,这样就能够在打印机需要用户的时候提醒人们帮助他
蜂鸣器虽然过时,但仍然会有发挥用处的时候,特别是当具有网络功能的打印机无法与外界通讯的情况下
[output_pin BEEPER_Pin]
pin: PC0
#此引脚默认支持使用mega2560类主控的主板,如果您使用了别的主控,
#需要查询一下该板对应12864屏幕在exp引脚集内预留的蜂鸣器针脚名
pwm: True
value: 0
shutdown_value: 0
cycle_time: 0.001
scale: 1
[gcode_macro M300]
gcode:
{% set tones = [1000, 1500, 2000, 2500, 3000, 2500, 2000, 1500, 1000] %} ; S sets the tone frequency
{% for count in tones %}
{% set cytime = 1 / count %}
SET_PIN PIN=BEEPER_Pin VALUE={0.5} CYCLE_TIME={cytime} ;Play tone
G4 P50 ;tone duration
SET_PIN PIN=BEEPER_Pin VALUE=0
{% endfor %}
#这是一个让蜂鸣器演奏一小段旋律的G代码宏,当遇到需要使用蜂鸣器的时候您可以将"M300"
#这条命令加到需要的地方,比如加到切片软件的结束G代码内,每当打印任务完成时,“M300”这个命令就能让蜂鸣器播放提示音,打印机会告诉您可以出锅了
