Go言語によるデータ制御」でブザーの音色を変更するためにPWM制御を使用しました。今回は、PWMのパラメータを変更するとどのように音色が変更されたかをデジタルオシロで確認します。

PWM制御ソフトの作成

PWM制御ソフトを次に示します。5秒間ブザーを鳴らします。

  • 19行目で、PWM1に対してPWM制御を設定します。
package main

import (
	"log"
	"time"

	"periph.io/x/periph/conn/gpio"
	"periph.io/x/periph/conn/gpio/gpioreg"
	"periph.io/x/periph/conn/physic"
	"periph.io/x/periph/host"
)

func main() {
	// Load all the drivers:
	if _, err := host.Init(); err != nil {
		log.Fatal(err)
	}

	pbuzzer := gpioreg.ByName("GPIO13")
	if pbuzzer == nil {
		log.Fatal("Failed to find buzzer")
	}

	if err := pbuzzer.PWM(gpio.DutyHalf, 500*physic.Hertz); err != nil {
		log.Fatal(err)
	}

	time.Sleep(5 * time.Second)

	if err := pbuzzer.Halt(); err != nil {
		log.Fatal(err)
	}
}

PWM制御ソフトの実行

PWM制御ソフトを実行すると、次のように500Hzのデータが出力されます。

PWM制御ソフトの24行目の「500」を「1000」に変更して実行すると、次のように1000Hzのデータが出力されます。