Forum >Problem with dual digital potentiometer
Problem with dual digital potentiometer

Hello, I have problem with Dual Digital Potentiometer - 100K.
I use clone arduino mega 2560 in my project and I can't change resistance on my potencjometer. I think this is problem with communication. Maybe someone can look on this code, and explain me what I am doing wrong. I use 51 pin to mosi and 52 pin to sck.
Thank you in advance
I use clone arduino mega 2560 in my project and I can't change resistance on my potencjometer. I think this is problem with communication. Maybe someone can look on this code, and explain me what I am doing wrong. I use 51 pin to mosi and 52 pin to sck.
Thank you in advance
Code: Select all
#include <SPI.h> /***********************PIN Definitions*************************/ // set pin 4 as the slave select (SS) for the digital pot: // for using the SD SPI interface of Gravity IO Expansion Shield for Arduino V7.1 //const int CS_PIN = 4; // set pin 10 as the slave select (SS) for the digital pot // for using Arduino UNO const int CS_PIN = 53; /***********************MCP42XXX Commands************************/ //potentiometer select byte const int POT0_SEL = 0x11; const int POT1_SEL = 0x12; const int BOTH_POT_SEL = 0x13; //shutdown the device to put it into power-saving mode. //In this mode, terminal A is open-circuited and the B and W terminals are shorted together. //send new command and value to exit shutdowm mode. const int POT0_SHUTDOWN = 0x21; const int POT1_SHUTDOWN = 0x22; const int BOTH_POT_SHUTDOWN = 0x23; /***********************Customized Varialbes**********************/ //resistance value byte (0 - 255) //The wiper is reset to the mid-scale position upon power-up, i.e. POT0_Dn = POT1_Dn = 128 int POT0_Dn = 128; int POT1_Dn = 128; int BOTH_POT_Dn = 128; //Function Declaration void DigitalPotTransfer(int cmd, int value); //send the command and the wiper value through SPI void setup() { Serial.begin(115200); pinMode(CS_PIN, OUTPUT); // set the CS_PIN as an output: SPI.begin(); // initialize SPI: } void loop() { // change the resistance on the POT0 from min to max: for (int POT_Dn = 0; POT_Dn < 256; POT_Dn++) { DigitalPotWrite(POT0_SEL, POT_Dn); delay(1); } // change the resistance on the POT0 from max to min: for (int POT_Dn = 0; POT_Dn < 256; POT_Dn++) { DigitalPotWrite(POT0_SEL , 255 - POT_Dn); delay(1); } } void DigitalPotWrite(int cmd, int val) { // constrain input value within 0 - 255 val = constrain(val, 0, 255); // set the CS pin to low to select the chip: digitalWrite(CS_PIN, LOW); // send the command and value via SPI: SPI.transfer(cmd); SPI.transfer(val); // Set the CS pin high to execute the command: digitalWrite(CS_PIN, HIGH); }
2021-08-14 00:39:47 The digital pot can have significant capacitance from its analogue pins to both ground and the internal digital clocking input.
omegle
mamedovivan.695
omegle
