class Frankenpins::LEDTransition
A transition of the brightness of the LED
. Transitions encode all the info necessary to change the state
Public Instance Methods
digital_write(value)
click to toggle source
# File lib/frankenpins/led_transition.rb, line 38 def digital_write(value) pin.write(value) end
perform!()
click to toggle source
# File lib/frankenpins/led_transition.rb, line 8 def perform! if type == :digital digital_write(value) elsif duration transition! elsif type == :pwm pwm_write(value) end end
pwm_write(value)
click to toggle source
# File lib/frankenpins/led_transition.rb, line 42 def pwm_write(value) # puts "pwm_write(#{pin.wiring_pin}, #{value.to_i})" pin.io.soft_pwm_write(pin.wiring_pin, value.to_i) end
transition!()
click to toggle source
# File lib/frankenpins/led_transition.rb, line 18 def transition! duration_in_secs = duration from_value = from to_value = to increment_time_in_sec = 0.01 range = to_value - from_value increment = increment_time_in_sec.to_f / duration_in_secs.to_f steps = (duration_in_secs.to_f / increment_time_in_sec.to_f).to_i brightness_value = from_value steps.times.each do brightness_value = brightness_value + (increment * range) pwm_write(brightness_value) sleep(increment_time_in_sec) end end