Main Content


Write logical value to GPIO output pin

Add-On Required: This feature requires the MATLAB Support Package for Raspberry Pi Hardware add-on.


writeDigitalPin(mypi,pinNumber,value) sets the logical value of a GPIO pin to 0 or 1.

This method configures an unconfigured pin as a GPIO output.

If the pin is a GPIO input, or if another interface (I2C, Serial, SPI) uses the pin, this method returns an error message.


Configure Pin as Output and Write Its Value

Configure a GPIO pin as a digital output and write its logical value.

Create a connection from the MATLAB® software to the Raspberry Pi® board.

mypi = raspi
mypi = 

  Raspi with Properties:

           DeviceAddress: 'raspberrypi-hysdu8X38o'
                    Port: 18725
               BoardName: 'Raspberry Pi Model B Rev 2'
           AvailableLEDs: {'led0'}
    AvailableDigitalPins: [4 7 8 9 10 11 14 15 17 18 22 23 24 25 27 30 31]
    AvailableSPIChannels: {}
       AvailableI2CBuses: {'i2c-0'  'i2c-1'}
             I2CBusSpeed: 100000

The AvailableDigitalPins property shows the list of available digital GPIO pins.

Show the location of all the GPIO pins on your device.


Display the AvailableDigitalPins.

ans =

  Columns 1 through 13

     4  7  8  9  10  11  14  15  17  18  22  23  24

  Columns 14 through 17

    25  27  30  31

Connect your digital device to the first GPIO pin available, for example GPIO 4.

Configure pin GPIO 4 as a digital output.


Write a logical value of 1 to pin GPIO 4.


The logical value of 1 sets the signal voltage on pin GPIO 4 to high.

Press a Button to Blink an LED

This example shows how to use a button to blink an LED attached to a GPIO pin.

When you press a button, this example rapidly blinks an LED. The button connects from positive voltage to pin 23. Pressing the button closes the circuit, raising the voltage. When readDigitalPin detects the positive voltage, if buttonPressed becomes true. The program toggles the voltages to pin 24 on and off 10 times. Pin 14 connects to an LED, which connects via a resistor to ground.

for ii = 1:100
    buttonPressed = readDigitalPin(mypi,23)
    if buttonPressed
        for jj = 1:10

Input Arguments

collapse all

Connection to the Raspberry Pi hardware board, specified as a raspi object.

GPIO pin number, specified as a scalar. This argument does not accept vectors because the hardware cannot access multiple pins simultaneously.

To get a list of valid pin numbers, enter mypi.AvailableDigitalPins.

Example: 12

Data Types: double

Logical value of the pin, specified as a scalar.

Example: 1

Data Types: double | logical

Extended Capabilities