Switch -> | 0 | switch -> | 2 | switch -> | 1 | |_ | < - Latch Data from Arduino
Parallel to serial converter. serial#
Switch -> | | switch -> | C | switch -> | D | switch -> | 4 | -> Serial Data to Arduino Tell the register the Arduino is ready to get the information serially (latch pin LOW)įor each of the inputs that are to be read, pulse the clockPin and check to see if the data pin is LOW or HIGH Make sure the register has the latest information from its parallel inputs (i.e.
Parallel to serial converter. code#
The pseudo code to coordinate this all looks something like this: That means every time the latch pin transitions from HIGH to LOW the shift register will start passing its most current switch information. When the latch pin is LOW, it listens to the clock pin and passes information serially. When the latch pin is HIGH the shift register is listening to its 8 parallel inputs. The third pin attached to the Arduino is a "Parallel to Serial Control" pin. Every time the Arduino changes the clock pin from LOW to HIGH the shift register changes the state of the Serial Output pin, indicating the value of the next switch. The clock pin is the metronome of the conversation between the shift register and the Arduino, it is what keeps the two systems synchronous. Synchronous Serial communication, either input or output, is heavily reliant on what is referred to as a clock pin. The transfer of information on the data pin is called "Synchronous Serial Output" because the shift register waits to deliver linear sequence of data to the Arduino until the Arduino asks for it. This pin should be connected to an input pin on your Arduino Board, referred to as the data pin. The 8 inputs are translated into a series of HIGH and LOW pulses on the serial-out pin of the shift register. "Asynchronous" because the CD4021B is doing all this data collection at its own pace without coordinating with the Arduino. "Parallel" because it is all at once, like hearing a musical cord. "Input" because you are collecting information. This is called Asynchronous Parallel Input. This means you can read the state of up to 8 digital inputs attached to the register all at once.
Using a parallel to serial shift register you can collect information from 8 or more switches while only using 3 of the pins on your Arduino.Īn example of a parallel to serial register is the CD4021B, sometimes referred to as an 8-Stage Static Shift Register.
Sometimes you'll end up needing more digital input than there are pins on your Arduino. Parallel to Serial Shifting-In with a CD4021BE Shifting In & the CD4021B