Skip to content

Instantly share code, notes, and snippets.

@affix
Last active December 6, 2018 13:44
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save affix/d95cd49c44e5ceec30bc to your computer and use it in GitHub Desktop.
Save affix/d95cd49c44e5ceec30bc to your computer and use it in GitHub Desktop.
#!/usr/bin/env ruby
# GNU/GPL V3+
# Lights used are George Home 20 String Lights
# ASDA LED-20-BO (coloured) LED-20-BO-W (White/Clear)
require 'wiringpi'
puts "Pi Christmas Lights"
puts "Written by Affix"
puts "Created using ASDA George home 20 Battery string lights"
puts "Cut the battery packs off and use pi pins"
gpio = WiringPi::GPIO.new
led = 1 # Coloured LEDs
wled = 4 # White LEDs
# Set pins as output
gpio.pin_mode wled, WiringPi::OUTPUT
gpio.pin_mode led, WiringPi::OUTPUT
# setup pwm
gpio.soft_pwm_create(wled, 0, 50)
gpio.soft_pwm_create(led, 0, 50)
# Set Initial States
gpio.soft_pwm_write led, 0
gpio.soft_pwm_write wled, 50
def flashing1(gpio, led, wled)
puts "Slow Flashing"
gpio.soft_pwm_write led, 50
gpio.soft_pwm_write wled, 0
sleep 1
gpio.soft_pwm_write led, 0
gpio.soft_pwm_write wled, 50
sleep 1
end
def flashing2(gpio, led, wled)
puts "Rapid Flashing"
gpio.soft_pwm_write led, 50
gpio.soft_pwm_write wled, 0
sleep 0.3
gpio.soft_pwm_write led, 0
gpio.soft_pwm_write wled, 50
sleep 0.3
end
def fade(gpio, led, wled)
puts "Fading"
gpio.soft_pwm_write led, 0
gpio.soft_pwm_write wled, 0
ledval = 0
wledval = 0
while ledval != 50
ledval = ledval + 1
gpio.soft_pwm_write led, ledval
sleep 0.1
end
while ledval != wledval
ledval = ledval - 1
gpio.soft_pwm_write led, ledval
sleep 0.1
end
while wledval != 50
wledval = wledval + 1
gpio.soft_pwm_write wled, wledval
sleep 0.1
end
while wledval != ledval
wledval = wledval - 1
gpio.soft_pwm_write wled, wledval
sleep 0.1
end
end
# Loop through modes
loop do
10.times do
flashing1(gpio, led, wled)
end
10.times do
flashing2(gpio, led, wled)
end
10.times do
fade(gpio, led, wled)
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment