This example shows how to use the MATLAB® Support Package for Arduino® Hardware to control multiple LEDs with two 74HC595 8-bit serial-in-parallel-out shift registers.
Arduino board
Sixteen LEDs
Two 74HC595 8-bit serial-in-parallel-out shift registers
Sixteen 300-1K ohm resistors
Breadboard and wires
Connect LEDs and 74HC595 shift registers to Arduino hardware:
Connect Vcc pin on 74HC595 to 5V pin on Arduino hardware.
Connect GND and OE pins on 74HC595 to GND pin on Arduino hardware.
Connect DS or SER pin on 74HC595 to digital pin 8 on Arduino hardware.
Connect SHCP or SRCLK pin on 74HC595 to digital pin 9 on Arduino hardware.
Connect STCP or RCLK pin on 74HC595 to digital pin 10 on Arduino hardware.
Connect MR or SRCLR pin on 74HC595 to digital pin 11 on Arduino hardware.
Connect an LED through a resistor to each output of Q0-Q7 or QA-QH pins on the two 74HC595 shift registers.

Create an arduino object, and include the ShiftRegister library.
a = arduino('COM4','Uno','Libraries','ShiftRegister')
a =
arduino with properties:
Port: 'COM4'
Board: 'Uno'
AvailablePins: {'D2-D13', 'A0-A5'}
AvailableDigitalPins: {'D2-D13', 'A0-A5'}
AvailablePWMPins: {'D3', 'D5-D6', 'D9-D11'}
AvailableAnalogPins: {'A0-A5'}
AvailableI2CBusIDs: [0]
Libraries: {'ShiftRegister'}
Create shift register object, specifying the connected data pin, clock pin, latch pin, and reset pin.
dataPin = 'D8'; clockPin = 'D9'; latchPin = 'D10'; resetPin = 'D11'; register = shiftRegister(a,'74HC595',dataPin,clockPin,latchPin,resetPin)
register =
ShiftRegister with properties:
Model: '74HC595'
DataPin: 'D8'
ClockPin: 'D9'
LatchPin: 'D10'
ResetPin: 'D11'
To turn on the LEDs one after another, run the following command,
sequenceTable = tril(ones(16)); for count = 1:16 write(register,sequenceTable(count,:),'uint16'); pause(0.5); end
To turn off all LEDs at once, call reset on the shift register object,
reset(register);
When the connection is no longer needed, clear the shift register and arduino object.
clear register a