Bourns ACE-128 Absolute Contacting Encoder - 128 positions - I2C interface - Arduino and Raspberry Pi supportDesigned by Red Hunter, Ships from United States of America
What is it? A digital control knob providing 128 unique results evenly spaced around a full circle. It is designed as a control panel knob and includes a nut and washer, but can be adopted for othe...Read More…
A digital control knob providing 128 unique results evenly spaced around a full circle. It is designed as a control panel knob and includes a nut and washer, but can be adopted for other uses. The module communicates via the I2C bus with choice of 16 addresses available.
This is an alternative to using a potentiometer and analog pin, allowing full-turn and multi-turn operation, and is not impacted by temperature variations. The software includes optional automatic saving of logical zero and multi-turn offsets so that the system will automatically remember these settings after power down or reset.
It differs from the more common incremental rotary encoder which has only two or four values in a rotation and is designed to measure full rotations and direction. This measures angles.
Until now, the choice of an absolute encoder meant an expensive, and larger sized product. Through the use of combinatorial mathematics, the absolute code pattern of the Bourns® Absolute Contacting Encoder (ACE™) is placed on a single track for a very economical, energy efficient and compact product. Bourns® ACE™ provides an absolute digital output that will also retain its last position in the event of a power failure. An intelligent alternative to incremental encoders and potentiometers, the Bourns® ACE™ is ideally suited for many industrial, automotive, medical and consumer product applications.
The product listed here combines this sensor with an I2C backpack and library so multiple of these little wonders can be included in your next Arduino or Raspberry Pi project.
NEW: Backpack only is available as an option. In case you already have the encoder itself.
You may prefer this to using a potentiometer and analog pin on Arduino in applications where:
You may prefer this to using a rotary encoder where:
The module includes:
The software includes
The following options are available:
The original prototypes were made for a head-following mechanism for my Dalek dome and eye, using hand-made pcbs.
Two were used to convert wiper motors into high powered servos
A third was used to detect the operator's head rotation in a motion control headset
To support the ACE128 I wrote an arduino library to handle the I2C communications and gray code translation. The device itself generates gray code which has to be converted to normal numbers before use, and that takes some binary math - especially if you connect the pins in a different order from the datasheet. This has now been ported to Python for the Raspberry Pi
My hobby is progressing to manufactured PCBs and SMD soldering, so I pulled this design out and made some up. The current units are made with lead-free solder using a steel stencil and Controleo2 derived reflow oven. Each unit is individually tested.
The ACE-128 is the smallest and cheapest absolute encoder available today. It uses some really ingenious mathematics in its design. This library and package are a unique solution for easily including precise digital knobs into Arduino and Raspberry Pi projects.
NEW INFO: The current library code uses EEPROM to remember the zero position and multi-turn offset between power cycles. Some of the new Arduino boards such as the Zero and the MKR use the SAMD21 chip which has no EEPROM memory, and therefore the current library code is not compatible with these boards. I welcome input from customers and observers as to how to work around this problem. Repeatedly writing to the SAMD21 flash instead via EEPROM emulation is generally not recommended due to the limited write cycles on that memory. I am considering tweaking the next version of the board to optionally have an I2C EEPROM or FRAM chip. Another idea I was working on was a design using an ATTiny841 instead of the pin expander, which would run all the code on-board.
We recognize our top users by making them a Tindarian. Tindarians have access to secret & unreleased features.
We look for the most active & best members of the Tindie community, and invite them to join. There isn't a selection process or form to fill out. The only way to become a Tindarian is by being a nice & active member of the Tindie community!