Arduino X9C104
тел. +7(499)347-04-82
Описание Arduino X9C104
Отличный выбор! X9C104 — это популярный и доступный цифровой потенциометр (цифровой переменный резистор), который часто используется в проектах на Arduino для замены механических подстроечных резисторов и потенциометров.
Описание и принцип работы
X9C104 — это интегральная схема (ИС), которая эмулирует работу обычного потенциометра (например, на 100 кОм), но управляется цифровыми сигналами. Внутри находится массив из 99 резистивных элементов и 100 отводов (тайп-пойнтов). Микроконтроллер (например, Arduino) может с помощью 3-х проводов перемещать "движок" по этим отводам, меняя сопротивление между средним выводом и крайними.
Ключевая идея: Вы можете программно менять сопротивление, создавая регулируемые делители напряжения, настраивая усиление, яркость, частоту и т.д., без физического поворота ручки.
Основные преимущества при использовании с Arduino:
- Цифровое управление: Позволяет создавать системы с автоматической настройкой, удалённым управлением, сохранением положения в энергонезависимой памяти.
- Компактность и надежность: Отсутствие движущихся частей (кроме электронных ключей) повышает стойкость к вибрациям и износу.
- Повторяемость: Микроконтроллер всегда может установить точное, заранее известное положение.
Технические характеристики X9C104
| Параметр | Значение / Описание | | :--- | :--- | | Полное сопротивление (Rtotal) | 100 кОм (обозначение "104" = 10 * 10^4 Ом) | | Количество шагов | 99 резисторов, 100 позиций (включая крайние) | | Разрешение шага | ~1% от полного сопротивления (~1.01 кОм на шаг) | | Интерфейс управления | 3-проводной (Up/Down, Increment, Chip Select) — похож на SPI. | | Встроенная память | EEPROM (Non-Volatile Memory). Сохраняет последнее положение при выключении питания и автоматически восстанавливает его при включении. | | Напряжение питания (Vcc) | от +3В до +5.5В (идеально совместимо с 5V и 3.3V логикой Arduino) | | Диапазон сигнальных напряжений (Vh/Vl)| От -5В до +5В относительно Vss (может работать с биполярными сигналами в пределах). | | Стабильность при переключении | 0.2% (тип.) | | Срок сохранения данных в EEPROM | 100 лет (тип.) | | Количество циклов перезаписи EEPROM | 1,000,000 циклов (тип.) | | Типичное время инкремента | ~1 мс на шаг (важно для плавного изменения в коде) | | Температурный диапазон | Коммерческий (0°C to +70°C) | | Корпус | Обычно DIP-8 или SOIC-8 (удобно для макетных плат). |
Распиновка (DIP-8):
- INC (Increment) — Тактовый вход. Каждый спад импульса сдвигает движок на 1 шаг.
- U/D (Up/Down) — Направление. HIGH = увеличение сопротивления между Rw и RL, LOW = уменьшение.
- VH / Rw (Wiper) — Вывод "движка" потенциометра. Аналог среднего вывода.
- VSS (Ground) — Общий вывод ("земля"), нижний по схеме.
- RL (Low) — Нижний вывод резистора.
- RH (High) — Верхний вывод резистора.
- CS (Chip Select) — Активный низкий уровень. Чтобы начать изменение, нужно установить LOW, по окончании — HIGH (сохраняет положение).
- VCC (+5V) — Питание.
Парт-номера и совместимые модели
X9C104 — это конкретная модель из целого семейства цифровых потенциометров X9Cxxx. Различаются они только номиналом полного сопротивления.
Прямые аналоги (тот же корпус, интерфейс, характеристики, кроме Rtotal):
- X9C102 — 1 кОм
- X9C103 — 10 кОм (самый популярный аналог)
- X9C503 — 50 кОм
- X9C104 — 100 кОм
- X9C504 — 500 кОм (встречается реже)
Важно: Модели с одинаковым интерфейсом (X9Cxxx) являются полностью взаимозаменяемыми по выводам и управлению в вашем коде Arduino. Нужно только учитывать другое максимальное сопротивление в схеме.
Совместимые по выводам и логике управления (DIP-8, 3-проводной интерфейс):
- MCP41xxx / MCP42xxx от Microchip (например, MCP41010 — 10 кОм). Внимание: У них другой алгоритм управления (полноценный SPI), но физически они в том же корпусе. Код для X9C104 с ними не подойдет.
- AD5206 от Analog Devices (6-канальный, SPI). Не является прямой заменой, но выполняет ту же функцию.
Для поиска на маркетплейсах и в магазинах используйте:
- Основное название:
X9C104 - Ключевые слова:
цифровой потенциометр 100к,digital potentiometer 100k,X9C104 модуль - Поиск модулей: Чаще всего продается в виде готового модуля для Arduino с распаянной микросхемой, керамическими конденсаторами и удобной обвязкой. Ищите:
X9C104 module,модуль цифровой потенциометр.
Краткий пример подключения к Arduino
| X9C104 (модуль) | Arduino (пины) | | :--- | :--- | | VCC | 5V | | VSS (GND) | GND | | CS | D10 (любой цифровой) | | INC | D9 (любой цифровой) | | U/D | D8 (любой цифровой) | | RH | К источнику опорного напряжения | | RL | В GND (или отрицательный полюс) | | RW | Выход (подается на измеряемую цепь) |
Простейший скетч (шаблон):
// Определяем пины
#define CS_PIN 10
#define INC_PIN 9
#define UD_PIN 8
void setup() {
pinMode(CS_PIN, OUTPUT);
pinMode(INC_PIN, OUTPUT);
pinMode(UD_PIN, OUTPUT);
digitalWrite(CS_PIN, HIGH); // Деактивируем чип
}
void setResistance(int steps) {
// steps: от 0 (мин. сопротивление) до 99 (макс. сопротивление)
steps = constrain(steps, 0, 99);
digitalWrite(CS_PIN, LOW); // Начинаем сеанс изменения
digitalWrite(UD_PIN, (steps > 0) ? HIGH : LOW); // Задаем направление. Здесь упрощенно.
for (int i = 0; i < steps; i++) {
digitalWrite(INC_PIN, HIGH);
delayMicroseconds(10); // Короткая пауза
digitalWrite(INC_PIN, LOW);
delay(1); // Важно! Даем время на переключение (~1 мс)
}
digitalWrite(CS_PIN, HIGH); // Сохраняем положение в EEPROM
}
void loop() {
// Плавно меняем сопротивление от минимума до максимума
for (int i = 0; i < 100; i++) {
setResistance(i);
delay(50);
}
}
Вывод: X9C104 — это простое, эффективное и недорогое решение для цифрового управления аналоговыми сигналами в проектах Arduino. Его прямые аналоги (X9C103, X9C102) легко найти, и они подключаются идентично.