Diferencia entre revisiones de «shiftOut()»

De ArduWiki
Saltar a: navegación, buscar
(Vea tambien)
(Ejemplo)
Línea 19: Línea 19:
  
 
== Ejemplo ==
 
== Ejemplo ==
 +
En este ejemplo conectamos un 74x595 con 7 LED.
 +
 
<syntaxhighlight lang="c++">
 
<syntaxhighlight lang="c++">
int latchPin = 8;
+
const byte latchPin = 8;
int clockPin = 12;
+
const byte clockPin = 12;
int dataPin = 11;
+
const byte dataPin = 11;
 
void setup() {
 
void setup() {
  pinMode(latchPin, OUTPUT);
+
  pinMode(latchPin, OUTPUT);
  pinMode(clockPin, OUTPUT);
+
  pinMode(clockPin, OUTPUT);
  pinMode(dataPin, OUTPUT);
+
  pinMode(dataPin, OUTPUT);
 
}
 
}
 
void loop() {
 
void loop() {
  for (int j=0; j<256; j++) {
+
  for (byte j=0; j<256; j++) {
    digitalWrite(latchPin, LOW);
+
      digitalWrite(latchPin, LOW);
    shiftOut(dataPin, clockPin, LSBFIRST, j);   
+
      shiftOut(dataPin, clockPin, LSBFIRST, j);   
    //devuelve el latch pin a nivel alto indicando que ya no necesita escuchar la información
+
      //devuelve el latch pin a nivel alto indicando que ya no necesita escuchar la información
    digitalWrite(latchPin, HIGH);
+
      digitalWrite(latchPin, HIGH);
    delay(1000);
+
      delay(500);
 
   }
 
   }
 
}  
 
}  

Revisión del 13:03 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
clockPin
bitOrder

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