{"product_id":"absolute-encoder-module-for-arduino-03616","title":"Absolute Encoder Module for Arduino","description":"\u003cp\u003eBourns ACE-128 Absolute Contacting Encoder\u003cbr\u003e\n - 128 positions\u003cbr\u003e\n - I2C interface\u003cbr\u003e\n - Arduino and Raspberry Pi support\u003c\/p\u003e\n\u003cp\u003e#### What is it?\u003cbr\u003e\nA 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.\u003c\/p\u003e\n\u003cp\u003eThis is an alternative to using a potentiometer and analog pin, allowing full-turn and multi-turn operation, and is not impacted by temperature variations.\u003c\/p\u003e\n\u003cp\u003eThe 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.\u003c\/p\u003e\n\u003cp\u003eIt 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*.\u003c\/p\u003e\n\u003cp\u003eThe Bourns ACE-128 Absolute Contacting Encoder is, as far as I know, the smallest and cheapest [gray code](https:\/\/en.wikipedia.org\/wiki\/Gray_code) absolute encoder available today.\u003cbr\u003e\nFrom the [datasheet](https:\/\/www.bourns.com\/pdfs\/ace.pdf) \u003c\/p\u003e\n\u003cp\u003e\u0026gt; Until now, the choice of an absolute\u003cbr\u003e\nencoder meant an expensive, and larger sized\u003cbr\u003e\nproduct. Through the use of\u003cbr\u003e\ncombinatorial mathematics, the absolute\u003cbr\u003e\ncode pattern of the Bourns® Absolute\u003cbr\u003e\nContacting Encoder (ACE™) is placed on a\u003cbr\u003e\nsingle track for a very economical, energy efficient\u003cbr\u003e\nand compact product. Bourns®\u003cbr\u003e\nACE™ provides an absolute digital output\u003cbr\u003e\nthat will also retain its last position in the\u003cbr\u003e\nevent of a power failure.\u003cbr\u003e\nAn intelligent alternative to incremental\u003cbr\u003e\nencoders and potentiometers, the Bourns®\u003cbr\u003e\nACE™ is ideally suited for many industrial,\u003cbr\u003e\nautomotive, medical and consumer product\u003cbr\u003e\napplications.\u003c\/p\u003e\n\u003cp\u003eThe 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.\u003c\/p\u003e\n\u003cp\u003eYou may prefer this to using a potentiometer and analog pin on Arduino in applications where:\u003c\/p\u003e\n\u003cp\u003e- temperature sensitivity of the potentiometer is causing the value to drift. As the device uses mechanical contacts it is not susceptible to environmental variations and will retain its value when powered down.\u003cbr\u003e\n- you need full turn angular measurement\u003cbr\u003e\n- you need multiple turns for a wider range\u003cbr\u003e\n- you need precise control - with approx. 3 degrees between positions and a very slight tactile feedback you can get the number you want without overshoot.\u003cbr\u003e\n- you need this on the Raspberry Pi *which doesn't have analog pins*. \u003c\/p\u003e\n\u003cp\u003eYou may prefer this to using a rotary encoder where:\u003c\/p\u003e\n\u003cp\u003e- absolute position is important (rotary encoders sense relative movement - typically full rotations and direction only)\u003cbr\u003e\n- you need the system to remember the position when powered down\u003cbr\u003e\n- you need finer resolution than incremental rotary encoders (most measure 90 degree increments)\u003c\/p\u003e\n\u003cp\u003eThe module includes:\u003c\/p\u003e\n\u003cp\u003e- Bourns ACE-128 Absolute Contacting Encoder EAW0J-B24-AE0128L soldered to the pcb\u003cbr\u003e\n- nut and washer (9mm mounting hole)\u003cbr\u003e\n- PCF8574A chip (3.3V and 5V compatible)\u003cbr\u003e\n- solder jumpers to change the address. Address pins have pull-down resistors\u003cbr\u003e\n- locations for through-hole resistors for I2C pullup (resistors not included)\u003cbr\u003e\n- shaft is 1\/4\" round (slotted end)\u003cbr\u003e\n- optional 24CW160T-I\/OT 2kB I2C EEPROM\u003c\/p\u003e\n\u003cp\u003eThe software includes\u003c\/p\u003e\n\u003cp\u003e- the ability to automatically save the logical zero position and multi-turn offset, so it remembers where it is when powered off\u003cbr\u003e\n- read the values out as 0 -\u0026gt; 127, -64 -\u0026gt; 63 or -32768 -\u0026gt; +32767 (multi-turn - 512 turns)\u003cbr\u003e\n- [Arduino library](https:\/\/github.com\/arielnh56\/ace128) - install this from the library manager.\u003cbr\u003e\n- [Raspberry Pi Module](https:\/\/github.com\/arielnh56\/ace128-rpi)\u003c\/p\u003e\n\u003cp\u003eThe following options are available:\u003c\/p\u003e\n\u003cp\u003e- address range 0x38-0x3F (ships with the base value) (0x20 available while stocks last)\u003cbr\u003e\n- backpack only or assembled with the sensor\u003cbr\u003e\n- with or without a 2kB I2C EEPROM (for saving state on SAMD21\/MKR Arduinos)\u003cbr\u003e\n- connector options\u003cbr\u003e\n - two Sparkfun QWIIC compatible connectors OR\u003cbr\u003e\n - 0.1\" header and Grove header locations\u003c\/p\u003e\n\u003cp\u003eThe units are made with lead-free solder using a steel stencil and [Controleo2 derived reflow oven](http:\/\/redhunter.com\/blog\/2017\/01\/23\/smd-toaster-reflow-oven-build\/). Each unit is individually tested.\u003c\/p\u003e\n\u003cp\u003e#### What makes it special?\u003c\/p\u003e\n\u003cp\u003eThe 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.\u003c\/p\u003e\n\u003cp\u003e#### About state storage and MKR Arduinos\u003cbr\u003e\nBy default Arduinos with AVR controllers e.g. Arduino Uno will use the internal EEPROM. SAMD21 controllers e.g. Arduino MKR do not have state storage available by default as they do not have internal EEPROM. An I2C EEPROM can be used on either type by enabling it with a flag in the library. \u003c\/p\u003e\n\u003cp\u003eRaspberry Pi saves to disk - I2C EEPROM support coming soon.\u003c\/p\u003e\n\u003cp\u003eIf using I2C EEPROM you only need one EEPROM per project, not one per module. If you already have an I2C EEPROM in your project you can use that, likewise you can use the chip in the encoder module to store other data, not just the module state. Storage uses 3 bytes per module, and there are 2048 bytes available in the optional EEPROM chip.\u003c\/p\u003e\n\u003cp\u003e#### Where are the instructions?\u003cbr\u003e\n- Please see the GitHub Readme pages for instructions for use of the software.\u003cbr\u003e\n- For wiring details - these modules are standard I2C devices. A good tutorial on this protocol is at [Sparkfun](https:\/\/learn.sparkfun.com\/tutorials\/i2c\/all)\u003c\/p\u003e","brand":"Red Hunter Store","offers":[{"title":"Complete Module \/ 0.1\" 0x20","offer_id":43965890461756,"sku":"RHS-ABSENMODC-COM010-NPDS","price":26.95,"currency_code":"USD","in_stock":false},{"title":"Complete Module \/ 0.1\" 0x38","offer_id":43965890494524,"sku":"RHS-ABSENMODC-COM010-NPDS-2","price":26.95,"currency_code":"USD","in_stock":true},{"title":"Complete Module \/ 0.1\" 0x20 EEPROM","offer_id":43965890527292,"sku":"RHS-ABSENMODC-COM010-NPDS-3","price":27.95,"currency_code":"USD","in_stock":true},{"title":"Complete Module \/ 0.1\" 0x38 EEPROM","offer_id":43965890560060,"sku":"RHS-ABSENMODC-COM010-NPDS-4","price":27.95,"currency_code":"USD","in_stock":false},{"title":"Complete Module \/ QWIIC 0x20","offer_id":43965890592828,"sku":"RHS-ABSENMODC-COMQWI-NPDS","price":26.95,"currency_code":"USD","in_stock":false},{"title":"Complete Module \/ QWIIC 0x38","offer_id":43965890625596,"sku":"RHS-ABSENMODC-COMQWI-NPDS-2","price":27.95,"currency_code":"USD","in_stock":true},{"title":"Complete Module \/ QWIIC 0x20 EEPROM","offer_id":43965890658364,"sku":"RHS-ABSENMODC-COMQWI-NPDS-3","price":27.95,"currency_code":"USD","in_stock":false},{"title":"Complete Module \/ QWIIC 0x38 EEPROM","offer_id":43965890691132,"sku":"RHS-ABSENMODC-COMQWI-NPDS-4","price":28.95,"currency_code":"USD","in_stock":true},{"title":"Backpack Only \/ 0.1\" 0x20","offer_id":43965890723900,"sku":"RHS-ABSENMODC-BAC010-NPDS","price":11.95,"currency_code":"USD","in_stock":false},{"title":"Backpack Only \/ 0.1\" 0x38","offer_id":43965890756668,"sku":"RHS-ABSENMODC-BAC010-NPDS-2","price":11.95,"currency_code":"USD","in_stock":false},{"title":"Backpack Only \/ 0.1\" 0x20 EEPROM","offer_id":43965890789436,"sku":"RHS-ABSENMODC-BAC010-NPDS-3","price":12.95,"currency_code":"USD","in_stock":true},{"title":"Backpack Only \/ 0.1\" 0x38 EEPROM","offer_id":43965890822204,"sku":"RHS-ABSENMODC-BAC010-NPDS-4","price":12.95,"currency_code":"USD","in_stock":false},{"title":"Backpack Only \/ QWIIC 0x20","offer_id":43965890854972,"sku":"RHS-ABSENMODC-BACQWI-NPDS","price":12.95,"currency_code":"USD","in_stock":false},{"title":"Backpack Only \/ QWIIC 0x38","offer_id":43965890887740,"sku":"RHS-ABSENMODC-BACQWI-NPDS-2","price":13.95,"currency_code":"USD","in_stock":true},{"title":"Backpack Only \/ QWIIC 0x20 EEPROM","offer_id":43965890920508,"sku":"RHS-ABSENMODC-BACQWI-NPDS-3","price":13.95,"currency_code":"USD","in_stock":false},{"title":"Backpack Only \/ QWIIC 0x38 EEPROM","offer_id":43965890953276,"sku":"RHS-ABSENMODC-BACQWI-NPDS-4","price":14.95,"currency_code":"USD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0708\/1810\/3356\/files\/il_fullxfull.3621323872_ou19.jpg?v=1770533948","url":"https:\/\/store.redhunter.com\/products\/absolute-encoder-module-for-arduino-03616","provider":"Red Hunter Store","version":"1.0","type":"link"}