Merge pull request #16 from Drahoslav7/improve-pwm-example

Improve pwm example
This commit is contained in:
Stian Eikeland 2018-01-12 15:44:00 +01:00 committed by GitHub
commit 636800e482
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1,6 +1,6 @@
/* /*
A PWM example by @Drahoslav7, using the go-rpio library A PWM example by @Drahoslav7, using the go-rpio library
Toggles a LED on physical pin 19 (mcu pin 10) Toggles a LED on physical pin 19 (mcu pin 10)
Connect a LED with resistor from pin 19 to ground. Connect a LED with resistor from pin 19 to ground.
@ -24,15 +24,18 @@ func main() {
pin := rpio.Pin(19) pin := rpio.Pin(19)
pin.Mode(rpio.Pwm) pin.Mode(rpio.Pwm)
pin.Freq(60000) pin.Freq(64000)
pin.DutyCycle(0, 32) pin.DutyCycle(0, 32)
// the LED will be blinking at 2000Hz
// (source frequency divided by cycle length => 64000/32 = 2000)
// five times smoothly fade in and out
for i := 0; i < 5; i++ { for i := 0; i < 5; i++ {
for i := uint32(0); i < 32; i++ { // increasing brightness for i := uint32(0); i < 32; i++ { // increasing brightness
pin.DutyCycle(i, 32) pin.DutyCycle(i, 32)
time.Sleep(time.Second/32) time.Sleep(time.Second/32)
} }
for i := uint32(32); i != 0; i-- { // decreasing brightness for i := uint32(32); i > 0; i-- { // decreasing brightness
pin.DutyCycle(i, 32) pin.DutyCycle(i, 32)
time.Sleep(time.Second/32) time.Sleep(time.Second/32)
} }