|

shiftIn()


Description :

Lit un octet (8 bits) de données, bit par bit, à partir d’une broche de données. L’opération commence par le bit de poids fort (le plus à gauche) ou le bit de poids faible (le plus à droite). Pour chaque bit, la broche d’horloge est mise à l’état haut, le bit suivant est lu sur la ligne de données, puis la broche d’horloge est mise à l’état bas.

Remarque : Si vous interagissez avec un périphérique cadencé par fronts montants, vous devez vous assurer que la broche d’horloge est à l’état bas avant le premier appel à shiftIn(), par exemple avec digitalWrite(clockPin, LOW).

Remarque : il s’agit d’une implémentation logicielle ; Arduino fournit également une bibliothèque SPI qui utilise l’implémentation matérielle, qui est plus rapide mais ne fonctionne que sur des broches spécifiques.

Syntaxe :

Utilisez la fonction suivante pour lire les données série de manière synchrone :

byte incoming = shiftIn(dataPin, clockPin, bitOrder)

Paramètres :

La fonction admet les paramètres suivants :

  • dataPin : broche de lecture des données. Types de données autorisés : int.
  • clockPin : broche fournissant le signal de synchronisation.
  • bitOrder : ordre de décalage des bits : MSBFIRST ou LSBFIRST (bit de poids fort en premier ou bit de poids faible en premier).

Retours :

La fonction renvoie un octet (0 – 255) représentant les 8 bits lus sur le périphérique. Type de données : byte.

Exemple de code :

#define DATA_PIN  4    // Broche connectée à la sortie de données série
#define CLOCK_PIN 5    // Broche connectée à l'entrée d'horloge (CLK)

void setup() {
  pinMode(DATA_PIN, INPUT);
  pinMode(CLOCK_PIN, OUTPUT);

  Serial.begin(9600);
}

void loop() {
  // Lire 8 bits de la ligne de données en utilisant shiftIn()
  byte dataByte = shiftIn(DATA_PIN, CLOCK_PIN, MSBFIRST);

  // Imprimer l'octet au format binaire
  Serial.print("Received Byte: ");
  Serial.println(dataByte, BIN);

  delay(1000); // Attendez avant la prochaine lecture
}


Source : https://docs.arduino.cc/language-reference/en/functions/advanced-io/shiftIn/

Publications similaires

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *