shiftOut()

Description

Emet un par un les bits d'un octet de données (8 bits). Démarre aussi bien par le bit de poids fort (càd le bit le plus à gauche) ou par le bit de poids faible (càd le bit le plus à droite). Chaque bit est mis à son tour sur une broche de donnée, après quoi une broche d'horloge est inversée pour indiquer que le bit est disponible.

Ceci est connu sous le nom de protocole de communication série synchrone et c'est une façon habituelle pour les microcontrôleurs de communiquer avec les capteurs et avec les autres microcontrôleurs. Les deux entités restent synchronisés, et communiquent à la vitesse maximale, dès lors qu'ils partagent la même ligne d'horloge. Ceci est souvent dénommé dans les documentations de composants par le terme d'Interface Périphérique Série (SPI).

Syntaxe

shiftOut(BrocheDonnées, BrocheHorloge, BitOrdre, Valeur)

Paramètres

  • BrocheDonnées: la broche sur laquelle sort chaque bit (int)
  • BrocheHorloge: la broche qui s'inverse une fois que la broche de donnée a été mise à la valeur voulue (int)
  • BitOrdre: fixe l'ordre dans lequel les bits doivent être émis; aussi bien MSBFIRST ou LSBFIRST. (pour Most Significant Bit First (Bit de poids fort en 1er), ou Least Significant Bit First (Bit de poids faible en 1er)
  • Valeur: la valeur à émettre. (octet = byte)

Valeurs Renvoyées

  • Aucune

※ Remarque:

La Broche de donnée et la broche d'horloge doivent toujours être configurées en SORTIE à l'aide de l'instruction pinMode().

L'instruction shiftOut est écrite pour émettre 1 octet (8 bits), et par conséquent, il est nécessaire d'émettre 2 octets pour des valeurs supérieures à 255.

// Emission série en mode "Bit de Poids fort en 1er" int data = 500; // émission de l'octet de poids fort (en 1er) shiftOut(dataPin, clock, MSBFIRST, (data >> 8)); // le décalage de 8 bits vers la droite isole les bits forts // émission de l'octet de poids faible shiftOut(data, clock, MSBFIRST, data); // Ou bien émission série en mode "Bit de Poids faible en 1er" data = 500; // émet le bit de poids faible en 1er shiftOut(dataPin, clock, LSBFIRST, data); // émet le bit de poids fort shiftOut(dataPin, clock, LSBFIRST, (data >> 8)); // le décalage de 8 bits vers la droite isole les bits forts

Exemple

Pour le circuit d'accompagnement, voir le tutoriel sur l'utilisation d'un 74HC595

//**************************************************************// // Name : shiftOutCode, Hello World // // Author : Carlyn Maw,Tom Igoe // // Date : 25 Oct, 2006 // // Version : 1.0 // // Notes : Code for utilisant un CI 74HC595 Registre à décalage // // : pour compter de 0 to 255 // //**************************************************************** //Broche connectée sur ST_CP du 74HC595 int latchPin = 8; //Broche connectée sur SH_CP du 74HC595 int clockPin = 12; ////Broche connectée sur DS of 74HC595 int dataPin = 11; void setup() { //Configure les broches en sortie pinMode(latchPin, OUTPUT); pinMode(clockPin, OUTPUT); pinMode(dataPin, OUTPUT); } void loop() { //séquence de comptage for (int j = 0; j < 256; j++) { //mise à 0 de la broche latchpin maintenue basse pour toute la durée de la transmission digitalWrite(latchPin, LOW); shiftOut(dataPin, clockPin, LSBFIRST, j); //remise à 1 de la broche latchpin pour signaler au CI //qu'il n'est plus nécessaire d'attendre de l'information digitalWrite(latchPin, HIGH); delay(1000); } }

ARDUINO BUY RECOMMENDATION

Arduino UNO R3
Arduino Starter Kit
Disclosure: Some links in this section are Amazon affiliate links. If you make a purchase through these links, we may earn a commission at no extra cost to you.
Additionally, some links direct to products from our own brand, DIYables.

※ OUR MESSAGES