Sha256: 8d16b7db3f8f7b69a5fc0f3b0f9283e7c471aade053771f31e1bfeadeca5c071

Contents?: true

Size: 905 Bytes

Versions: 7

Compression:

Stored size: 905 Bytes

Contents

#
# Example of a smiple rotary encoder polling at ~1ms.
#
# WARNING: This method is not precise at all. Please do not use it for anything
# that requires all steps to be read for precise positioning or high speed.
#
require 'bundler/setup'
require 'denko'

board = Denko::Board.new(Denko::Connection::Serial.new)
encoder = Denko::DigitalIO::RotaryEncoder.new  board: board,
                                              pins: { clock: 4, data: 5 },
                                              divider: 1,                 # default, reads each pin every 1ms
                                              steps_per_revolution: 30    # default

# Reverse direction if needed.
# encoder.reverse

# Reset angle and steps to 0.
encoder.reset

encoder.add_callback do |state|
  puts "Encoder moved #{state[:change]} steps | CW step count: #{state[:steps]} | Current angle: #{state[:angle]}\xC2\xB0"
end

sleep

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
denko-0.13.6 examples/digital_io/rotary_encoder.rb
denko-0.13.5 examples/digital_io/rotary_encoder.rb
denko-0.13.4 examples/digital_io/rotary_encoder.rb
denko-0.13.3 examples/digital_io/rotary_encoder.rb
denko-0.13.2 examples/digital_io/rotary_encoder.rb
denko-0.13.1 examples/digital_io/rotary_encoder.rb
denko-0.13.0 examples/digital_io/rotary_encoder.rb