Allgemein
Der AD5231 eist ein Digitaler Potentiometer mit 1024-Positionen. Den IC gibt es mit folgenden Widerstandswerten: 10k, 50k und 100k. Die Kommunikation erfolgt per SPI Interface. Der AD5231 ist in ein 16-lead TSSOP Gehäuse verpackt.
Aufbau
Verbindungen
AD5231BRUZ100 – PINs | Arduino Micro – PINs | |
2 | CK | |
3 | MO | |
5,6,7 | GND | |
11,12,13 | +5V | |
14 | 10 |
Steckbrett
Arduino Code
// Erste Tests mit einem Digitalen Potentiometer // des Types: AD5231 mit SPI-Schnittstelle #include <SPI.h> const int slaveSelect = 10; // Zur Aktivierung es aktiven Slaves verwendeter Pin void setup() { SPI.begin(); SPI.setDataMode (SPI_MODE3); //Mode 3: CPOL=1, CPHA=1 / (1,1) pinMode(slaveSelect, OUTPUT); } void loop() { digitalWrite(slaveSelect,LOW); // Slave waehlen SPI.transfer(176); // 0xB0 MSB SPI.transfer(0); // 0x00 SPI.transfer(11); // 0x11 LSB digitalWrite(slaveSelect,HIGH); // Slave deaktivieren delay(1000); }
// Erste Tests mit einem Digitalen Potentiometer
// des Types: AD5231 mit SPI-Schnittstelle
#include <SPI.h>
const int slaveSelect = 10; // Zur Aktivierung es aktiven Slaves verwendeter Pin
void setup()
{
SPI.begin();
SPI.setDataMode (SPI_MODE3); //Mode 3: CPOL=1, CPHA=1 / (1,1)
pinMode(slaveSelect, OUTPUT);
}
void loop()
{
digitalWrite(slaveSelect,LOW); // Slave waehlen
SPI.transfer(176); // 0xB0 MSB
SPI.transfer(0); // 0x00
SPI.transfer(11); // 0x11 LSB
digitalWrite(slaveSelect,HIGH); // Slave deaktivieren
delay(1000);
}
Messergebnisse und Erkentnisse
Blau: Clock
Rot: Daten
Grün: Chipselect
Da sich die Widerstandstoleranz des AD5231 zwischen -40 % … +20 % bewegt, ist der „Full Scale Wert“ von 77kOhm noch in der Toleranz.
Full Scale = 77,0 kOhm
Bei DEC: 10 = 0,811 kOhm
Bei DEC: 11 = 0,886 kOhm
=> Pro Step (1Bit) 0,075 kOhm
77 kOhm/1024 = 0,75 kOhm (kleinster Widerstandswert)