Last active
December 6, 2018 13:44
-
-
Save affix/d95cd49c44e5ceec30bc to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/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