shiftOut()
Descrição
Transfere um byte de dados um bit de cada vez. Começa com ou o bit mais significante (o mais à esquerda) ou o menos significante (mais à direita). Cada bit é escrito em sequência em um pino data, logo após o pino clock é pulsado (colocado em HIGH, depois LOW) para indicar que aquele bit está disponível.
Nota - se você está conectando um dispositivo que é sincronizado pela borda de subida do clock, irá precisar fazer com que o pino clock seja low antes de chamar shiftOut(), ex. com digitalWrite(clockPin, LOW).
Essa é uma implementação por software; O Arduino também provê uma biblioteca SPI que faz a implementação em hardware, que é mais rápida, mas apenas funciona em pinos específicos.
Sintaxe
shiftOut(dataPin, clockPin, bitOrder, value)
Parâmetros
- dataPin: o pino no qual transferir cada bit (int)
- clockPin: o pino a ser pulsado uma vez que o pino data estiver com o bit a ser trasnferido (int)
- bitOrder: em que ordem receber os bits; pode ser MSBFIRST ou LSBFIRST. Respectivamente, primeiro o bit mais significativo (Most Significant Bit First), ou o primeiro o bit menos significativo (Least Significant Bit First)
- value: o valor a ser transferido. (byte)
Retorna
Nada
Código de Exemplo
Para o circuito, ver o tutorial sobre o controle de um registrador de deslocamento 74HC595 (Em Inglês).
※ Notas e Advertências:
Os pinos data e clock devem ser configurados como saídas com uma chamada de pinMode().
A função shiftOut() atualmente funciona para transferir apenas 1 byte (8 bits) então requer uma operação em dois passos para transferir valores maiores que 255.
Ver Também
- Linguagem : noTone()
- Linguagem : pulseIn()
- Linguagem : pulseInLong()
- Linguagem : shiftIn()
- Linguagem : tone()
※ ARDUINO BUY RECOMMENDATION
Arduino UNO R3 | |
Arduino Starter Kit |