Main Content

configurePin

Configure GPIO pin as digital input, digital output, or PWM output

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

    Description

    configurePin(mypi,pinNumber,mode) configures the GPIO pinNumber pin of a Raspberry Pi® device mypi as a digital input, digital output, or PWM output, depending on the specified mode.

    example

    pinMode = configurePin(mypi,pinNumber) returns the current configuration mode of the pin.

    Examples

    collapse all

    Configure a GPIO pin as digital input and read its logical value.

    Create a connection from MATLAB® 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.

    showPins(mypi)

    Display the AvailableDigitalPins.

    mypi.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 input.

    configurePin(mypi,4,'DigitalInput')

    Read the value from pin GPIO 4.

    readDigitalPin(mypi,4)
    ans =
    
      1

    The logical value of 1 indicates a positive voltage signal on the pin GPIO 4.

    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.

    showPins(mypi)

    Display the AvailableDigitalPins.

    mypi.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.

    configurePin(mypi,4,'DigitalOutput')   

    Write a logical value of 1 to pin GPIO 4.

    writeDigitalPin(mypi,4,1)

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

    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

    Mode used to configure the pin, specified as 'DigitalInput', 'DigitalOutput', 'PWM', 'Servo', 'ArduCam', or 'Unset'.

    Data Types: char

    Output Arguments

    collapse all

    Current configuration mode of pin, returned as 'DigitalInput', 'DigitalOutput', 'PWM', 'Servo', 'ArduCam', or 'Unset'.

    Extended Capabilities

    expand all

    Version History

    Introduced in R2015b