Référence du Langage Arduino : Mini | Standard | Etendue | Librairies | Comparaison
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).
shiftOut(BrocheDonnées, BrocheHorloge, BitOrdre, Valeur)
Aucune
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
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);
}
}
Aucun commentaire
Page d'accueil de la référence Arduino en français
Corrections, suggestions et nouvelle documentation peuvent être postées sur le Forum Arduino.
Le texte original de la référence Arduino est sous licence Creative Commons Attribution-ShareAlike 3.0 . Les exemples de code dans la référence sont dans le domaine public.
La présente traduction française commentée a été réalisée par Xavier HINAULT (2010) (www.mon-club-elec.fr) et est sous licence Creative Commons Attribution-ShareAlike 3.0.