meta data for this page
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| sensor:digipot [2026/04/11 15:24] – [Renesas X9C series] vamsan | sensor:digipot [2026/04/11 16:29] (current) – [Renesas X9C series] vamsan | ||
|---|---|---|---|
| Line 11: | Line 11: | ||
| The device can be used as a three-terminal potentiometer or a two-terminal variable resistor in a wide variety of applications, | The device can be used as a three-terminal potentiometer or a two-terminal variable resistor in a wide variety of applications, | ||
| - | ^Model^Total Resistance (R < | + | |< 100%>| |
| + | ^Model^Total Resistance | ||
| |X9C102|1 KΩ|10.1 Ω|+600 ppm/°C|4 V| | |X9C102|1 KΩ|10.1 Ω|+600 ppm/°C|4 V| | ||
| |X9C103|10 KΩ|101 Ω|+300 ppm/°C|10 V| | |X9C103|10 KΩ|101 Ω|+300 ppm/°C|10 V| | ||
| Line 23: | Line 24: | ||
| * **Resistance Tolerance: | * **Resistance Tolerance: | ||
| * **Typical Wiper Resistance: | * **Typical Wiper Resistance: | ||
| + | |||
| + | {{page>: | ||
| {{ : | {{ : | ||
| Line 29: | Line 32: | ||
| - | ===== Wiring ===== | + | ==== Pinout for the Renesas X9C series module board ==== |
| + | The Renesas X9C series module board, commonly known as the X9C103S module, organizes the chip's pins into two separate header rows, making it more convenient to connect with breadboards and microcontrollers such as Arduino. Usually, it includes a 5-pin control header on one side and a 3-pin potentiometer header on the opposite side. | ||
| + | |< 100%>| | ||
| + | ^Header^Pin Label^Name^Function| | ||
| + | ^Control|VCC|Power|Connects to +5V supply.| | ||
| + | ^Control|GND|Ground|Circuit common ground.| | ||
| + | ^Control|CS|Chip Select|Active LOW. Must be pulled low to enable control.| | ||
| + | ^Control|INC|Increment|Negative-edge triggered. Pulses move the wiper.| | ||
| + | ^Control|U/ | ||
| + | ^Potentiometer|VH (or H)|High|High-end terminal of the pot (max +5V).| | ||
| + | ^Potentiometer|VW (or W)|Wiper|The adjustable " | ||
| + | ^Potentiometer|VL (or L)|Low|Low-end terminal of the pot (min -5V).| | ||
| + | **Quick Wiring Guide** | ||
| + | |||
| + | * **For 0-5V Voltage Divider:** Connect VH to 5V, VL to GND, and read the output from VW. | ||
| + | * **Control Interface: | ||
| + | * **Saving Settings:** To save the current resistance so it persists after power-off, you must pull CS HIGH while INC is already HIGH. | ||
| + | |||
| + | ==== Arduino example code ==== | ||
| + | To operate a Renesas X9C series digital potentiometer (such as the X9C103S) with an Arduino, you can either utilise a dedicated library like **DigiPotX9Cxxx** or manually control the pins. Here is a straightforward example that gradually varies the resistance from minimum to maximum without requiring any external library. | ||
| + | |||
| + | **Wiring Diagram** | ||
| + | |||
| + | |< 100%>| | ||
| + | ^X9C Module Pin^Arduino Pin^Description| | ||
| + | ^VCC|5V|Power Supply| | ||
| + | ^GND|GND|Ground| | ||
| + | ^CS|Pin 10|Chip Select (Active LOW)| | ||
| + | ^INC|Pin 9|Increment (Pulse to move)| | ||
| + | ^U/D|Pin 8|Up/Down (HIGH = Up, LOW = Down)| | ||
| + | ^VH / VL|5V / GND|To use as a 0-5V voltage divider| | ||
| + | ^VW|A0|Connect to Analogue Pin 0 to see results| | ||
| <code c> | <code c> | ||
| + | // Pin Definitions | ||
| + | const int CS_PIN = 10; | ||
| + | const int INC_PIN = 9; | ||
| + | const int UD_PIN = 8; | ||
| + | void setup() { | ||
| + | Serial.begin(9600); | ||
| + | | ||
| + | // Set control pins as outputs | ||
| + | pinMode(CS_PIN, | ||
| + | pinMode(INC_PIN, | ||
| + | pinMode(UD_PIN, | ||
| + | |||
| + | // Initial state: deselect chip and set high idle | ||
| + | digitalWrite(CS_PIN, | ||
| + | digitalWrite(INC_PIN, | ||
| + | | ||
| + | Serial.println(" | ||
| + | } | ||
| + | |||
| + | // Function to move the wiper 1 step | ||
| + | void moveWiper(bool up) { | ||
| + | digitalWrite(UD_PIN, | ||
| + | digitalWrite(CS_PIN, | ||
| + | delayMicroseconds(1); | ||
| + | | ||
| + | digitalWrite(INC_PIN, | ||
| + | delayMicroseconds(1); | ||
| + | digitalWrite(INC_PIN, | ||
| + | | ||
| + | digitalWrite(CS_PIN, | ||
| + | } | ||
| + | |||
| + | // Function to reset the wiper to 0 (by moving down 100 times) | ||
| + | void resetToZero() { | ||
| + | for (int i = 0; i < 100; i++) { | ||
| + | moveWiper(false); | ||
| + | } | ||
| + | } | ||
| + | |||
| + | void loop() { | ||
| + | resetToZero(); | ||
| + | Serial.println(" | ||
| + | delay(2000); | ||
| + | |||
| + | // Gradually increase resistance | ||
| + | for (int i = 0; i < 100; i++) { | ||
| + | moveWiper(true); | ||
| + | int value = analogRead(A0); | ||
| + | Serial.print(" | ||
| + | Serial.print(" | ||
| + | delay(50); | ||
| + | } | ||
| + | |||
| + | Serial.println(" | ||
| + | delay(2000); | ||
| + | } | ||
| </ | </ | ||
| - | ===== Communication | + | **Key Logic Steps** |
| - | {{topic>communication}} | + | |
| + | * **Selection: | ||
| + | * **Direction: | ||
| + | * **The " | ||
| + | * **No Feedback:** These chips cannot tell the Arduino their current position. The // | ||
| + | |||
| + | ===== Sensor | ||
| + | {{topic>sensor}} | ||
| - | {{tag>BMP280 AHT20 temperature humidity pressure | + | {{tag> |
| This page has been accessed for: Today: {{counter|today}}, | This page has been accessed for: Today: {{counter|today}}, | ||