цифровая электроника
вычислительная техника
встраиваемые системы

 

Arduino и цифровой потенциометр

Автор: Mike(admin) от 4-05-2017, 18:55

Резистор – это электрическое устройство, которое сопротивляется потоку электрического тока. Существуют как обычные (постоянные) резисторы с неизменным сопротивлением, так и переменные, сопротивление которых можно задавать в определенном пределе. Такие резисторы еще называют потенциометрами. Благодаря прогрессу сегодня мы можем использовать не только аналоговые потенциометры, сопротивление которых задается ручкой или ползунком, но и цифровые, в которых сопротивление определяется цифровым кодом.


Arduino и цифровой потенциометр

Цифровые потенциометры являются довольно простыми устройствами, которые можно без проблем использовать в проектах с Arduino.


В основе цифрового потенциометра лежит резистивная лестница с электронными переключателями на каждом шаге. В один момент времени закрывается только один электронный выключатель, и, таким образом, закрытый переключатель определяет положение цифрового «ползунка» и величину сопротивления. Количество шагов в лестнице, в свою очередь, определяет разрешение цифрового потенциометра. Цифровые потенциометры, как правило, представляют собой интегральные схемы с начальным положением цифрового «ползунка» в середине шкалы. Однако некоторые варианты имеют встроенную (энергонезависимую) память, которая запоминает последнее положение цифрового «ползунка» и может восстановить это положение при последующем включении. Когда вы начнете работать с цифровыми потенциометрами, следует учесть два момента: большинство из них имеют номинал 5 , а 10 КОм – самое популярное значение.


Одним из самых популярных цифровых потенциометров на сегодняшний день является микросхема MCP41010. MPC41010 – это одноканальный 256-позиционный цифровой потенциометр компании Microchip с максимальным сопротивлением 10 кОм (минимальное значение 100 Ом). Он доступен в 8-выводном корпусе PDIP или SOIC. Ниже представлен внешний вид и приведена распиновка MPC41010.


цифровой потенциометр MPC41010



PA0: вывод A потенциометра
PB0: вывод B потенциометра
PW0: контакт цифрового «ползунка» потенциометра
CS: линия выбора микросхемы
SCK: тактовый сигнал SPI
SI: линия входных последовательных данных SPI
VDD и VSS: линии питания 2.7 В-5.5 В (плюс и ноль соответственно)


Подключение цифрового потенциометра к Arduino осуществляется с использованием порта SPI. Ниже представлена схема подключения Arduino и MCP41010.


Arduino и цифровой потенциометр

Ниже приведен достаточно простой код (скетч), который циклически проходит через все 256 положений (около 39 Ом на шаг), Напряжение на аналоговом выводе затем считывается и отображается в последовательном мониторе.



#include <SPI.h>	// подключаем библиотеку SPI
const int CS = 10;
int PotWiperVoltage = 1;
int RawVoltage = 0;
float Voltage = 0;
void setup() {
   pinMode (CS, OUTPUT);
   Serial.begin(9600);
   SPI.begin(); // инициализация SPI
}
void loop() {
   // move the wiper in one direction
   for (int level = 0; level < 255; level++)
   {
      MCP41010Write(level);
      delay(100);
      RawVoltage = analogRead(PotWiperVoltage);
      Voltage = (RawVoltage * 5.0 )/ 1024.0;
      Serial.print("Level = " );
      Serial.print(level);
      Serial.print("\t Voltage = ");
      Serial.println(Voltage,3);
   }
   delay(2000); // задержка
   // перемещаем цифровой ползунок в новое положение
   for (int level = 255; level > 0; level--)
   {
      MCP41010Write(level);
      delay(100);
      RawVoltage = analogRead(PotWiperVoltage);
      Voltage = (RawVoltage * 5.0 )/ 1024.0;
      Serial.print("Level = " );
      Serial.print(level);
      Serial.print("\t Voltage = ");
      Serial.println(Voltage,3);
   }
   delay(2000);
}
void MCP41010Write(byte value)
{
   digitalWrite(CS,LOW); // выбор микросхемы
   SPI.transfer(B00010001); // командный байт
   SPI.transfer(value); // байт данных 
   digitalWrite(CS,HIGH); // снимаем выбор с микросхемы
}



Теги: Arduino, цифровой потенциометр, MPC41010



Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Комментарии:

Оставить комментарий