spi ss

buongiorno,

stavo tentando una comunicazione spi tra tre hw, soltanto che l'unico pin che mi fa funzionare la trasmissione è il 53 (arduino mega) gli altri due niente da fare!! suggerimenti?

PixySPI_SS pixy0(53);
PixySPI_SS pixy1(22);
PixySPI_SS pixy1(24);

La connessione SPI può avvenire con due modalità, diretta da master a slave oppure in daisy chain con gli slave collegati in serie. Però la selezione dello slave ricevente è sempre univoca qualunque sia la tipologia di collegamento. Il pin SS serve per selezionare lo slave. Anche nel caso lo slave sia Arduino stesso. Se imposti il pin SS di Arduino in INPUT automaticamente l'Arduino diventa uno slave, se lo lasci in OUTPUT Arduino funziona da master. Se hai più slave SPI collegati dovrai avere più pin SS ognuno per uno slave e azionarne solo uno alla volta. Vuol dire che quando attivi uno gli altri (due nel tuo caso) vanno disattivati. Non è obbligatorio usare il pin SS dell'Arduino per comandare gli slave, puoi usare dei pin qualunque.

Dal pezzo di codice inserito non si capisce granché. Come hai fatto i collegamenti?

intanto grazie x la risposta Paolo, mi sono accorto di aver fatto un errore madornale, avevo dichiarato IN invece che OUT le uscite,

#include <SPI.h>
#include <PixySPI_SS.h>


PixySPI_SS pixy0(47);
PixySPI_SS pixy1(49);
PixySPI_SS pixy2(48);

void setup() {
  
  Serial.begin(9600);
  Serial.print("Starting...\n");
  pinMode(47, OUTPUT);
  pinMode(48, OUTPUT);
  pinMode(49, OUTPUT);



[\code]


solo che ora mi legge tutto e ok, però tra le letture mi piazza in mezzo un: cs error,  da cosa può dipendere ? 

per quanto riguarda il collegamento, ho messo in parallelo MISO MOSI E SCK

Intanto aggiungi tre digitalwrite HIGH per disabilitare le periferiche all'avvio. La selezione del singolo slave (LOW e HIGH) la dovrebbe fare la libreria.

Riguardo al CS non so dirti.