J'ai un petit problème avec le MCP4261 (double potentiomètre électronique), j'arrive à faire fonctionner le premier, mais le deuxième reste désactivé...
Je suppose qu'il faut changer un bit dans ceux que l'on envoie au CI pour l'activer, mais je n'arrive pas à déterminer lequel, et la datasheet m'embrouille...
... J'avais la flemme de lire la datasheet hier ^^' c'est dingue comment je connais rien en électronique --"...
Euh... a priori si je comprend bien t'essaye de faire monter puis descendre la résistance de chacun des deux potentiomètre les uns après les autres...
=> page 47 figure 7-1
+ p47 figure 7-2
Tu veras que W_CMD doit être à 0x00000000 donc c'est bon... je pense que le bout de programme est correct pour faire marcher les deux pento ^^'
val à envoyer : aaaa ccdd dddd dddd =>
- a = adresse (sur 4 bit) - c = commande : 00 = écrire / 11 = lire - d = data , les registres étant des registres de 9 bits le Msb est ignoré (cf datasheet)
Perso ce que je ferai c'est que je créerai ma propre fonction que devrait ressembler à un truc comme ça :
void putRes(int pot, int val)//pot le potentiomètre (1 ou 0) , val la val de la resistance
{
int cmd=0; // cmd est la commande que l'on va envoyer.
cmd = pot<<12; // 000x 0000 0000 0000 cf figure 7-2
val = val&255; // ainsi val <= 255
cmd |= val; // 000x 0000 dddd dddd (d=data)(x=pot)
digitalWrite(SS_PIN, LOW); // protocole de base
SPI.transfer(cmd); // r1 sert à rien à mon avis... peut être pour les erreur... doc à regarder
digitalWrite(SS_PIN, HIGH);
}
... est ce que tu vois la résistance changer sur ton premier potentiomètre ?
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.