Re-Definition PIN Arduino en SPI

Bonjour,

D’abord je tiens a préciser que j’utilise un Arduino Guenuino MICRO.

Je voudrais avoir une tension en sortie commandé, et j’utilise donc le DAC MCP4901
http://www.mouser.com/ds/2/268/22248a-14037.pdf

J’ai trouver un exemple mais celui ci utilise un Arduino Uno et indique le pinout mais pour la Mega.

Premier question concernant la déclaration des sorties en commentaires on trouve mes questions.

 Pins used: 
 * Arduino pin 11 (for Uno; for Mega: 51) to device SDI (pin 4) - fixed pin  // Est-ce pour Micro pin 11 "MOSI"  ???
 * Arduino pin 13 (for Uno; for Mega: 52) to device SCK (pin 3) - fixed pin // Est-ce pour Micro pin 15 "SCK" ???
 * Any digital pin to device LDAC (DAC pin 5)  (except with PortWrite, see README)    // Je ne compte pas l'utiliser (mettre a la masse pour commuter directement la sortie)
 * Any digital pin to device CS   (DAC pin 2)  (as above)    // Est-ce pour Micro pin "SS"  ???
 *

Ou modifier le code pour changer/déclarer les pins ?

A quoi correspond SS pin ?

Voici mon câblage SPI:

Coté DAC MCP4901 ----> Coté Arduino (connecteur ICSP)

Pin 2 CS/ ----> Pin SS (pin 13)
Pin 3 SCK ----> Pin SCLK
Pin 4 SDI ----> Pin MOSI

Comment déclarer les PIN 14 (MISO), 15 (SCK), 16 (MOSI) et 13 (SS) dans le Programme ?

Coté Electrique DAC :

  • Pin 1: VDD, to +5 V
  • Pin 5: LDAC ground to update vout automatically
  • Pin 6: VREF, to +5 V (or some other reference voltage 0 < VREF <= VDD)
  • Pin 7: VSS, to ground
  • Pin 8: vout

Après cablage et utilisation direct du code ca marche pas, la sortir Vout reste figer sur la premier valeur entrée dans dac.output(valeur);

DAC_MCP49xx dac(DAC_MCP49xx::MCP4901,13,-1); // DAC model, SS pin, LDAC pin

Je ne comprend pas car il disent bien dans la datasheet de mettre Pin 5: LDAC ground to update vout automatically.
Et donc de mettre -1, pour ne rien envoyer.

Si quelqu’un peux m’aider :slight_smile:

merci d’avance

Bonjour,

Après plusieurs tests, j’ai trouvé l’erreur maintenant reste a comprendre les motifs à faire.

La librairie fonctionne sur la pin SS_PIN a 10, si je la change par la pin 11 dans le prog sa suffit pas.

#define SS_PIN 10

on ne peut pas car dans la librairie

Dans la lib :

PORTB &= 0xfb; // Clear PORTB pin 2 = arduino pin 10


PORTB |= (1 << 2); // set PORTB pin 2 = arduino pin 10

comment modifier ses deux lignes pour arduino pin 11 par exemple.

Je ne peux pas rester sur la pin 10 car j’utilise déjà

ps : comme mon probleme avance, j’ai donc changé le titre du topic pour qu’il soit plus clair.

Excellent ca fonctionne très bien MERCI BCP !!!

juste pour comprendre a quoi correspond se "Set PORTB pin 0" ?

j'avais bien compris que // c'est des commentaires, mais ma question est que le pin 0 pour moi sur arduino micro c'est le Rx. De plus a quoi correspond PORTB, un registre ?