MCP4131 – digitaler Potenziometer

Der MCP4131 digitaler Potenziometer wird mittels der SPI Schnittstellen angesteuert. Es gibt Ausführungen als Einzel (MCP41x1) und Dual (MCP42x1) Potenziometer, aber wir beschäftigen uns hier mit dem Single Poti.

Es gibt den Potenziometer mit 7-bit Auflösung, was 128 Widerstände und 129 Schritte entspricht und eine 8-bit Auflösung, mit 256 Widerstände und 257 Schritte.

MCP4131 - Pin-out

Der CS Pin (Chip Select) Pin oder auch SS (Slave select) genannt im SPI interface, ist aktiv, wenn er auf LOW gezogen wird. Der Serial Clock Pin ist mit SCK beschriftet und für das Empfangen der Daten wird der SDI/SDO Pin verwendet. Der IC wird bei  VSS (GND) und VDD mit Spannung versorgt. Auf den Pin P0B wird GND gelegt und auf Pin P0A die Spannung. Am P0W Pin kann jetzt die eingestellte Spannung abgenommen werden, die wir über SPI eingestellt haben.

Praktisches Beispiel

Der Sketch

				
					#include <SPI.h>

const byte CSPin = 4;
const byte analogInPin = 17;  //A0
const byte maxPotiSteps = 128;  // 0 - 128 or 0 - 255 Steps
byte address = 0x00;

void setup() {
  Serial.begin(115200);
  pinMode (CSPin, OUTPUT);
  pinMode (analogInPin, INPUT);
  SPI.begin();
}

void loop() {
  setPotValue(5);
  readPotValue();
  delay(1000);
  setPotValue(80);
  readPotValue();
  delay(1000);
  setPotValue(maxPotiSteps);
  readPotValue();
  delay(1000);
  setPotValue(50);
  readPotValue();
  delay(1000);
}

void setPotValue(int value) {
  digitalWrite(CSPin, LOW);
  delay(20);
  SPI.transfer(address);
  SPI.transfer(value);
  delay(100);
  digitalWrite(CSPin, HIGH);
}

void readPotValue() {
  int sensorValue = analogRead(analogInPin);
  Serial.println(sensorValue);
  delay(100);
}
				
			

Hier gehts zu den Sketches auf Github

Zum Video

★☆★ Wenn ihr den Kanal unterstützen wollt über ★☆★

oder über

Twint Spenden Code