shiftOut()
Descripción
Desplaza hacia la salida un byte de datos un bit a cada vez. Comienza a partir del bit más significativo (más a la izquierda) o menos significativo (más a la derecha). Cada bit se escribe a su vez en un pin de datos, después de lo cual un pulso de reloj se activa (pasa a nivel alto, y a continuación, a nivel bajo) para indicar que el bit está disponible.
Nota: si estamos conectados con un dispositivo que está sincronizado por flancos de subida, necesitamos asegurarnos de que el pin de reloj está a nivel bajo antes de llamar a shiftOut(), por ejemplo, con una llamada a digitalWrite (pinReloj, LOW).
Esta es una implementación de software; véase también la biblioteca SPI, que proporciona una implementación de hardware que es más rápida, pero sólo funciona en pines específicos.
Sintaxis
shiftOut(dataPin, clockPin, bitOrder, value)
Parámetros
- dataPin: el pin por el que sale cada bit (int)
- clockPin: el pin que cambia cada vez que dataPin ha sido establecido a su valor correcto (int)
- bitOrder: dirección de desplazamiento de los bits; MSBFIRST o LSBFIRST. (Primero el Bit Más Significativo, o, Primero el Bit Menos Significativo)
- value: los datos que se desplazan a la salida. (byte)
Retornos
- Ninguno
※ Nota:
Los dataPin y clockPin deben estar ya configurados como salida conto pinMode().
shiftOut actualmente escribe en la salida 1 byte (8 bits) por lo que requiere una operación de dos pasos para valores de salida mayores que 255.
// Hacer esto para MSBFIRST serieint data = 500;// desplaza a la salida el byte altoshiftOut(dataPin, clock, MSBFIRST, (data >> 8)); // desplaza a la salida el byte bajoshiftOut(dataPin, clock, MSBFIRST, data);// O hacer esto para LSBFIRST seriedata = 500;// desplaza a la salida el byte bajoshiftOut(dataPin, clock, LSBFIRST, data); // desplaza a la salida el byte altoshiftOut(dataPin, clock, LSBFIRST, (data >> 8));
Ejemplo
Para acompañamiento del circuito, ver el tutorial para control de un Registro de Desplazamiento 74HC595.
※ ARDUINO BUY RECOMMENDATION
Arduino UNO R3 | |
Arduino Starter Kit |