¿Por qué SCK, MISO y MOSI no aparecen en el sketch?

Estoy utilizando un lector de micro SD como el siguiente

con las conexiones

con el siguiente código (sacado de aquí)

#include <SD.h>
 
File dataFile;
 
void setup(){
  Serial.begin(9600);
  Serial.print(F("Iniciando SD ..."));

  if (!SD.begin(9))  {
    Serial.println(F("Error al iniciar"));
    return;
  }

  Serial.println(F("Iniciado correctamente"));
 
  // Abrir fichero y mostrar el resultado
  dataFile = SD.open("datalog.txt"); 

  if (dataLine){   string dataLine;
    while (dataFile.available()){
      dataLine = dataFile.read(); 
       Serial.write(dataLine);  // En un caso real se realizarían las acciones oportunas
    }

    dataFile.close();

  }else {
    Serial.println(F("Error al abrir el archivo"));
  }
}
 
void loop(){
}

me funciona correctamente pero, no acabo de entender por qué en el código sólo se hace referencia al pin 9 (CS) y no al resto: SCK, MISO y MOSI. ¿Acaso lo hace la librería SD.h? Si es así, ¿no podría utilizar diferentes pines?

Gracias.

Si, la libreía llama a la librería SPI que contiene SCK, MOSI y MISO.

Lo que me temía.

Entonces si necesito usar 2 sensores, cada uno con su libraría diferente y usan el mismo pin... ¿no puedo? ¿elijo librerías en función de los pins que utilizan? no tiene mucho sentido.

2 sensores de que tipo. se mas específico porque partes de un SD y ahora hablas de Sensores.
Sensores y SD no son lo mismo.

Si tienes que usar varios dispositivos via SPI todos van conectados a los mismos pines salvo los CS (Chip Select).
Cada dispositivo tendra su CS y cuando este en LOW se hará el read/write que corresponda.

Esta muy debatido el tema en este foro.

Me puse a montar una estación meteorológica que grabase los datos en micro SD. Comencé por la parte de la tarjeta y ví la posible problemática si tuviese que utilizar otro módulo sensor con los mismos pines.

Leeré más sobre SPI.

¡Gracias!