He desarrollado un código simple para aprender sobre SPI en Arduino Due. El código se está compilando correctamente y ahora me gustaría aprender el siguiente paso sobre cómo probar el código con la placa y hacer que el maestro se comunique con el esclavo. Aquí está el código:
#include"SPI.h"
int mosi = 75; //assigning variables to pins
int sck = 76;
int ss = 10;
int miso = 74;
void setup()
{
pinMode(mosi,OUTPUT); //Configuring pins as input and output
pinMode(sck,OUTPUT);
pinMode(ss,OUTPUT);
pinMode(miso,INPUT);
SPI.begin(10); // waking up SPI bus
SPI.setDataMode(10,SPI_MODE_0); //setting mode for clk phase & pol
SPI.setBitOrder(10, MSBFIRST); // setting bit order for transfer
SPI.setClockDivider(10,42); //setting clock to 2 MHz
digitalWrite(10,HIGH); //keeping slave device unactive
}
void set_value(int value);
{
digitalWrite(10,LOW); //activate slave select line
SPI.transfer(0);
SPI.transfer(value); // transfer values from 0 to 255
digitalWrite(10,HIGH); //deactivate slave line after transfer
}
void loop()
{
for(int i=0 ; i<256 ;i++) //values to transfer
{
set_value(i); //call function to transfer values
delay(100);
}
}
IDE utilizado: Arduino, Tablero utilizado: Arduino Due
Tengo algunas dudas con respecto a este código:
1) ¿Cómo probar este código con mi borad para comprobar si funciona correctamente?
2) ¿Por qué no se usan los pines mosi, sck y ss en ninguna parte del código, mientras que todas las operaciones / funciones se realizan con respecto a la línea esclava ss = 10? ¿El módulo SPI se encarga automáticamente de la transmisión y recepción de datos a través de MOSI y MISO?
3) ¿Cuáles son las posibles conexiones de hardware si estoy usando una placa como mi maestra y otra como mi esclava?
4) ¿Debo volcar este código en el maestro y en el esclavo para que funcione? O como el maestro tiene que transmitir y recibir datos de la placa esclava, ¿tengo que hacer algunos cambios en este código?
5) Si me estoy perdiendo algo o alguna dirección con respecto a esto sería útil. Soy novato en sistemas embebidos y estoy totalmente confundido & Llena de estúpidas dudas. Por favor, no te preocupes. ¡Gracias!