Модуль цифрового потенциометра TZT X9C103 (X9C103 Digital Potentiometer Board Module)
Характеристики цифрового потенциометра TZT X9C103
Цифровой потенциометр реализован с помощью резисторной матрицы, состоящей из 99 резисторов и переключателей. Положение контактов может храниться в энергонезависимой памяти.
X9C102 = 1kОм
X9C103 = 10kОм
X9C503 = 50kОм
X9C104 = 100kОм
Количество резисторов 99;
Напряжение сигнала на выходе, ±5 В (или X9C103, X9C503, X9C104 0-10 V, X9C102 0-4V);
Напряжение питания VCC 5 В;
Ток потребления в режиме работы, не более 3 мА;
Ток в режиме ожидания, не более 750 мкА;
Срок хранение данных, 100 лет.
Чип управляется с помощью SPI интерфейса.
Распиновка
VH High Terminal
VW Wiper Terminal
VL Low Terminal
VSS Ground
VCC Supply Voltage
U/D Up/Down Input (увеличение напряжения при HIGH или уменьшение напряжения при LOW)
INC Increment Input Изменение сопротивления выхода (отрицательные импульсы)
CS Chip Select Input Выбор устройства (при LOW активно)
Скетч для проверки работы модуля цифрового потенциометра X9C103S в Arduino
const int pin_CS=10; const int pin_INC=9; const int pin_UD=8; const int pin_wiper=A0; void setup() { pinMode (pin_CS, OUTPUT); pinMode (pin_INC, OUTPUT); pinMode (pin_UD, OUTPUT); pinMode (pin_wiper, INPUT); digitalWrite(pin_CS,HIGH); // off //digitalWrite(pin_INC,HIGH); //digitalWrite(pin_UD,HIGH); digitalWrite(pin_wiper,HIGH); Serial.begin(9600); } void loop() { up(); print_wiper(pin_wiper); delay(500); down(); print_wiper(pin_wiper); delay(500); } /*********** вниз **********/ void down(){ digitalWrite(pin_UD, LOW); digitalWrite(pin_INC, HIGH); digitalWrite(pin_CS, LOW); delayMicroseconds(1); digitalWrite(pin_INC, LOW); delayMicroseconds(1); digitalWrite(pin_INC, HIGH); delayMicroseconds(1); digitalWrite(pin_CS, HIGH); // сохранение значения } /*********** вверх **********/ void up(){ digitalWrite(pin_UD, HIGH); digitalWrite(pin_INC, HIGH); digitalWrite(pin_CS, LOW); delayMicroseconds(1); digitalWrite(pin_INC, LOW); delayMicroseconds(1); digitalWrite(pin_INC, HIGH); delayMicroseconds(1); digitalWrite(pin_CS, HIGH); // сохранение значения } void print_wiper(byte pin_analog) { int analog_signal = analogRead(pin_analog); float voltage = (analog_signal * 5.0)/ 1023.0; Serial.print("Аналоговый сигнал = "); Serial.print(analog_signal); Serial.print("\tНапряжение = "); Serial.println(voltage,3); }
Результат работы программы