class Smalruby::Hardware::RgbLedCathode

RGB LED(カソード)を表現するクラス

Public Class Methods

new(options) click to toggle source
Calls superclass method
# File lib/smalruby/hardware/rgb_led_cathode.rb, line 7
def initialize(options)
  pin = Pin.smalruby_to_smalrubot(options[:pin])
  case pin
  when 3, 5, 6
    super(board: world.board, pin: [3, 5, 6])
  when 9..11
    super(board: world.board, pin: [9, 10, 11])
  else
    fail "RGB LED(anode)のピン番号が間違っています: {options[:pin]}"
  end
end

Public Instance Methods

color=(val) click to toggle source

RGB LEDを指定した色に光らせる

# File lib/smalruby/hardware/rgb_led_cathode.rb, line 20
def color=(val)
  color = Color.smalruby_to_dxruby(val)
  analog_write(pins[0], calc_value(color[0]))
  analog_write(pins[1], calc_value(color[1]))
  analog_write(pins[2], calc_value(color[2]))
end
stop() click to toggle source
# File lib/smalruby/hardware/rgb_led_cathode.rb, line 35
def stop
  turn_off
end
turn_off() click to toggle source

RGB LEDをオフにする

# File lib/smalruby/hardware/rgb_led_cathode.rb, line 28
def turn_off
  color = Color.smalruby_to_dxruby('black')
  analog_write(pins[0], calc_value(color[0]))
  analog_write(pins[1], calc_value(color[1]))
  analog_write(pins[2], calc_value(color[2]))
end

Private Instance Methods

after_initialize(_ = {}) click to toggle source
# File lib/smalruby/hardware/rgb_led_cathode.rb, line 41
def after_initialize(_ = {})
  turn_off
end
calc_value(value) click to toggle source
# File lib/smalruby/hardware/rgb_led_cathode.rb, line 45
def calc_value(value)
  if value < Smalrubot::Board::LOW
    Smalrubot::Board::LOW
  elsif value > Smalrubot::Board::HIGH
    Smalrubot::Board::HIGH
  else
    value
  end
end