Управление цифровым потенциометром MCP41HV31
Мне нужно управлять цифровым потенциометром 10 кОм в режиме реостата в 256 шагов. Я нашел учебник по Arduino, который работает с MCP41010 (я добавил сопротивление гадюки в соответствии с таблицей данных). Это прекрасно работает — я могу отправлять значения от 0 до 255 на контакт CS, а сопротивление между выходными контактами A и B изменяется от 0 до 10 кОм. Проблема в том, что мое приложение требует 16 В, чтобы пройти через это сопротивление, с чем MCP41010 не справляется.
Я попытался использовать MCP41HVX1 высоковольтный цифровой потенциометр (который я припаял к плату TSSOP-to-DIP Breakout) и предположил, что это будет работать так же. Оказывается, нет... Мои связи:
Ардуино нано -> MCP41HVX1
- 10 -> СС
- 11 -> ИПД
- 13 -> SCK
- 5В -> ВН
- Заземление -> Заземление
С помощью MCP41010 я подключаю резистор Viper на 115 Ом между выходным контактом A и клеммой стеклоочистителя и измеряю сопротивление между выходными контактами A и B (розовые разъемы). Я заметил, что MCP41HVX1 имеет другое описание режима реостата, но я тоже не могу заставить его работать.
Это моя схема, которая работает с MCP41010.
А вот соответствующий код (который устанавливает для MCP41010 значение 255, т.е. 10 кОм)
#include <SPI.h>
byte address = 0x11;
int CS= 10;
void setup()
{
pinMode (CS, OUTPUT);
SPI.begin();
}
void loop()
{
digitalPotWrite(255, CS);
}
int digitalPotWrite(int value, char Port)
{
digitalWrite(Port, LOW);
SPI.transfer(address);
SPI.transfer(value);
digitalWrite(Port, HIGH);
}
Кто-нибудь когда-нибудь делал это или знает, что происходит?
@Delf, 👍0
Обсуждение2 ответа
Одна вещь, которую я обнаружил после того, как несколько раз вернулся в Интернет за подсказками, заключается в том, что этот контакт SHDN на MCP41HVX1 должен быть привязан к ВЫСОКОМУ ВЫСОКОМУ уровню.
Если нет, вы можете попробовать увеличивать, уменьшать или записывать значения в свое удовольствие, и дело не сдвинется с места.
Я привязал SHDN к уровню VL через резистор 10k и могу писать и инкрементировать без проблем.
Я думаю, что это должно было быть помечено в таблице данных, в таблице описания выводов.
Я понимаю, что эта тема устарела. Я даю ответ всем, кто может оказаться здесь, как и я некоторое время назад, пытаясь решить эту проблему.
Я создал библиотеку Arduino на Github (https://github.com/gregsrabian/MCP41HVX1), которая позволяет управлять этого семейства микросхем. README.md в рамках проекта github документирует все API, а также предоставляет схему подключения. Также включены примеры скетчей.
Я создал статью об Instructables (https://www.instructables.com/ id/MCP41HVX1-Digital-Potentiometer-for-Arduino/), в котором пошагово показано, как управлять этим семейством микросхем. Также есть пояснение, как паять микросхему TSSOP.
- Как добавить потенциометр и дополнительные кнопки к пользовательскому игровому контроллеру?
- Цифровой горшок с Arduino
- Есть ли способ воспроизводить звуки с Arduino без использования звукового экрана?
- В чем разница между analogWrite и digitalWrite?
- Как эмулировать аналоговый потенциометр с помощью ШИМ
- Что означает “LSB на градус в секунду” (LSB per degree per second)?
- Потенциометр 10 кОм против резистора 10 кОм на ЖК-дисплее
- Как настроить ADC7 на Arduino Pro Mini в качестве цифрового выхода?
Мне не разрешили размещать все необходимые ссылки в исходном сообщении. Вот руководство для [MCP41010](http://www.instructables.com/id/Digital-Potentiometer-MCP41100-and-Arduino/) и его [техническое описание](http://ww1.microchip.com/downloads). /en/DeviceDoc/11195c.pdf)., @Delf
Ну, во-первых, у тебя неправильная проводка. Посмотрите на распиновку версии HV. Вы не подключаетесь к контактам потенциометра с помощью своих потенциометрических проводов (или не ко всем из них) и не обеспечиваете правильные напряжения V + и V-., @Majenko
Контакт 14 должен подключаться к +16 В, контакт 10 — к GND, а контакты 11-13 — контакты потенциометра., @Majenko
Извините, я ошибся на графике, конечно, выходы - это контакты 11 и 13. Подключение контакта 14 к + 16 В мало что изменило. Прямо сейчас я даже не пытаюсь пропустить 16 В через сопротивление, а измеряю его осциллографом., @Delf