AI

The **ENC1J-B16-R00064L** is a high-quality optical incremental encoder manufactured by **Bourns**. It is part of the EN series, designed for applications requiring high reliability and long cycle life where traditional mechanical contact encoders might fail.
---
## 1. Technical Specifications
| Parameter | Specification |
|:---|:---|
| **Manufacturer** | Bourns |
| **Encoder Type** | Optical Incremental |
| **Output Type** | Quadrature (2-bit) |
| **Pulses Per Revolution (PPR)** | 64 |
| **Power Supply (VCC)** | 5.0 VDC ±5% |
| **Supply Current** | 26 mA (Maximum) |
| **Mounting Type** | Panel Mount (Bushings) |
| **Termination Style** | Radial PC Pins |
| **Rotational Life** | Up to 10,000,000 cycles |
| **Shaft Diameter** | 1/4" (6.35mm) |
---
## 2. Key Components and Features
### A. Optical Sensing Technology
Unlike mechanical encoders that use metal brushes, the ENC1J uses an internal LED and a phototransistor array. A slotted disk rotates between them, breaking the light beam to create pulses.
* **Advantage:** No "contact bounce," meaning cleaner signals and a significantly longer lifespan.
### B. Quadrature Output
The device outputs two signals (Channel A and Channel B) shifted 90 degrees out of phase.
* **Direction Sensing:** By checking which channel leads (A before B or B before A), the microcontroller determines if the knob is turning clockwise or counter-clockwise.
* **Resolution:** 64 PPR translates to 256 states per revolution if decoded using X4 logic.
### C. Construction
* **B16:** Refers to the physical housing and bushing dimensions (typically a 1/4" diameter bushing).
* **R00064L:** Indicates the resolution (64 pulses) and that it is RoHS compliant (**L**).
---
## 3. Typical Wiring Pinout
| Pin Number | Function | Description |
|:---|:---|:---|
| **1** | B | Channel B Output |
| **2** | 5V | Power Supply Input |
| **3** | GND | Ground |
| **4** | A | Channel A Output |
---
## 4. Application Logic (Example)
When interfacing this part with an Arduino or Microcontroller, you typically use an interrupt-driven approach to ensure no pulses are missed.
```cpp
// Basic Arduino Logic for ENC1J
const int pinA = 2; // Channel A
const int pinB = 3; // Channel B
volatile int position = 0;
void setup() {
pinMode(pinA, INPUT);
pinMode(pinB, INPUT);
attachInterrupt(digitalPinToInterrupt(pinA), updateEncoder, RISING);
}
void updateEncoder() {
if (digitalRead(pinB) == LOW) {
position++;
} else {
position--;
}
}
```
- ⤷
What are the main differences between this optical encoder and a cheaper mechanical encoder like the PEC11R?
- ⤷ How do I calculate the RPM of a motor using the ENC1J-B16-R00064L?
- ⤷ Does this model support a momentary push-button switch feature?