Diferencia entre revisiones de «shiftOut()»
De ArduWiki
(→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++"> | ||
− | + | const byte latchPin = 8; | |
− | + | const byte clockPin = 12; | |
− | + | const byte dataPin = 11; | |
void setup() { | void setup() { | ||
− | + | pinMode(latchPin, OUTPUT); | |
− | + | pinMode(clockPin, OUTPUT); | |
− | + | pinMode(dataPin, OUTPUT); | |
} | } | ||
void loop() { | 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); | |
} | } | ||
} | } |
Revisión del 17:03 27 jul 2018
Contenido
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);
}
}