Diferencia entre revisiones de «shiftOut()»

De ArduWiki
Saltar a: navegación, buscar
(Parámetros)
(Parámetros)
Línea 9: Línea 9:
 
== Parámetros ==
 
== Parámetros ==
 
;dataPin: el pin en el que se muestra cada bit [[int]]
 
;dataPin: el pin en el que se muestra cada bit [[int]]
:clockPin: el pin para alternar una vez que el dataPin se ha establecido en el valor correcto [[int]]
+
;clockPin: el pin para alternar una vez que el dataPin se ha establecido en el valor correcto [[int]]
 
;bitOrder: qué orden desplazar los bits; ya sea MSBFIRST o LSBFIRST. (Bit más significativo primero, o, bit menos significativo primero)
 
;bitOrder: qué orden desplazar los bits; ya sea MSBFIRST o LSBFIRST. (Bit más significativo primero, o, bit menos significativo primero)
 
;value: los datos para desplazarse. [[byte]]
 
;value: los datos para desplazarse. [[byte]]

Revisión del 17:11 27 jul 2018

Descripción

Desplaza en 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.

Sintexis

shiftOut(dataPin, clockPin, bitOrder, valor);

Parámetros

dataPin
el pin en el que se muestra cada bit int
clockPin
el pin para alternar una vez que el dataPin se ha establecido en el valor correcto int
bitOrder
qué orden desplazar los bits; ya sea MSBFIRST o LSBFIRST. (Bit más significativo primero, o, bit menos significativo primero)
value
los datos para desplazarse. byte

Retorna

La función shiftOut() 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.

Advertencias

  • Los dataPin y clockPin deben estar ya configurados como salida con pinMode().

Ejemplo

En este ejemplo conectamos un 74x595 con 7 LED.

const byte latchPin = 8;
const byte clockPin = 12;
const byte dataPin = 11;
void setup() {
   pinMode(latchPin, OUTPUT);
   pinMode(clockPin, OUTPUT);
   pinMode(dataPin, OUTPUT);
}
void loop() {
   for (byte j=0; j<256; j++) {
      digitalWrite(latchPin, LOW);
      shiftOut(dataPin, clockPin, LSBFIRST, j);   
      //devuelve el latch pin a nivel alto indicando que ya no necesita escuchar la información
      digitalWrite(latchPin, HIGH);
      delay(500);
  }
}

Vea tambien

Referencias