Class: Denko::DigitalIO::RotaryEncoder
Constant Summary
Behaviors::Lifecycle::CALLBACK_METHODS
Instance Attribute Summary
#pin, #pins, #proxies
#board, #params
Instance Method Summary
collapse
included
#add_callback, #callbacks, #remove_callback, #update
#convert_pins, #proxy_pin, #proxy_states, #require_pin, #require_pins
#initialize, #micro_delay
Instance Method Details
#angle ⇒ Object
75
76
77
|
# File 'lib/denko/digital_io/rotary_encoder.rb', line 75
def angle
state[:angle]
end
|
#count ⇒ Object
79
80
81
|
# File 'lib/denko/digital_io/rotary_encoder.rb', line 79
def count
state[:count]
end
|
#counts_per_revolution ⇒ Object
59
60
61
|
# File 'lib/denko/digital_io/rotary_encoder.rb', line 59
def counts_per_revolution
@counts_per_revolution ||= params[:counts_per_revolution] || params[:cpr] || 60
end
|
#debounce_time ⇒ Object
PiBoard will use GPIO alerts, default to 1 microsecond debounce time.
42
43
44
|
# File 'lib/denko/digital_io/rotary_encoder.rb', line 42
def debounce_time
@debounce_time ||= params[:debounce_time] || 1
end
|
#degrees_per_count ⇒ Object
63
64
65
|
# File 'lib/denko/digital_io/rotary_encoder.rb', line 63
def degrees_per_count
@degrees_per_count ||= (360 / counts_per_revolution.to_f)
end
|
#divider ⇒ Object
Board will default to 1ms digital listeners.
47
48
49
|
# File 'lib/denko/digital_io/rotary_encoder.rb', line 47
def divider
@divider ||= params[:divider] || 1
end
|
#initialize_pins(params = {}) ⇒ Object
23
24
25
26
|
# File 'lib/denko/digital_io/rotary_encoder.rb', line 23
def initialize_pins(params={})
proxy_pin :a, DigitalIO::Input
proxy_pin :b, DigitalIO::Input
end
|
#reading ⇒ Object
71
72
73
|
# File 'lib/denko/digital_io/rotary_encoder.rb', line 71
def reading
@reading ||= { count: 0, angle: 0, change: 0 }
end
|
#reset ⇒ Object
83
84
85
|
# File 'lib/denko/digital_io/rotary_encoder.rb', line 83
def reset
self.state = {count: 0, angle: 0}
end
|
#reverse ⇒ Object
55
56
57
|
# File 'lib/denko/digital_io/rotary_encoder.rb', line 55
def reverse
@reversed = !@reversed
end
|
#reversed ⇒ Object
51
52
53
|
# File 'lib/denko/digital_io/rotary_encoder.rb', line 51
def reversed
@reversed ||= false || params[:reversed] || params[:reverse]
end
|
#state ⇒ Object
67
68
69
|
# File 'lib/denko/digital_io/rotary_encoder.rb', line 67
def state
@state ||= { count: 0, angle: 0 }
end
|