Control Surface main
MIDI Control Surface library for Arduino
Loading...
Searching...
No Matches
Classes | Typedefs | Functions
Extended Input/Output

Detailed Description

All Elements that extend the number of IO pins of the Arduino: Includes shift registers (e.g. 74HC595), multiplexers (e.g. 74HC4067, 74HC4051), port expanders (e.g. MCP23017), LED drivers (e.g. MAX7219), etc.

GPIO pins of port expanders are represented by the pin_t struct (internally, this is just an integer). Overloads of the standard Arduino IO functions such as pinMode, digitalRead, digitalWrite etc. are provided for pin_t to allow these “extended” pins to be used transparently.

See ExtendedIOElement for details.

+ Collaboration diagram for Extended Input/Output:

Classes

class  AnalogMultiplex< N >
 A class for reading multiplexed analog inputs. More...
 
class  MAX7219< NumChips, SPIDriver >
 A class for LED outputs using the MAX7219 LED display driver. More...
 
class  MCP23017< WireType >
 Class for MCP23017 I²C I/O expanders. More...
 
class  ShiftRegisterOut< N >
 A class for serial-in/parallel-out shift registers, like the 74HC595. More...
 
class  ShiftRegisterOutBase< N >
 A class for serial-in/parallel-out shift registers, like the 74HC595. More...
 
class  SPIShiftRegisterOut< N, SPIDriver >
 A class for serial-in/parallel-out shift registers, like the 74HC595 that are connected to the SPI bus. More...
 

Typedefs

using CD74HC4067 = AnalogMultiplex<4>
 An alias for AnalogMultiplex<4> to use with CD74HC4067 analog multiplexers.
 
using CD74HC4051 = AnalogMultiplex<3>
 An alias for AnalogMultiplex<3> to use with CD74HC4051 analog multiplexers.
 

Functions

bool isNativePin (pin_t pin)
 Check if the given pin number is a real Arduino pin number, and not an ExtIO pin number.
 
ExtendedIOElementgetIOElementOfPinOrNull (pin_t pin)
 Find the IO element of a given extended IO pin number.
 
ExtendedIOElementgetIOElementOfPin (pin_t pin)
 Find the IO element of a given extended IO pin number.
 
void pinMode (pin_t pin, PinMode_t mode)
 An ExtIO version of the Arduino function.
 
void digitalWrite (pin_t pin, PinStatus_t val)
 An ExtIO version of the Arduino function.
 
PinStatus_t digitalRead (pin_t pin)
 An ExtIO version of the Arduino function.
 
analog_t analogRead (pin_t pin)
 An ExtIO version of the Arduino function.
 
void analogWrite (pin_t pin, analog_t val)
 An ExtIO version of the Arduino function.
 
void analogWrite (pin_t pin, int val)
 An ExtIO version of the Arduino function.
 
void shiftOut (pin_t dataPin, pin_t clockPin, BitOrder_t bitOrder, uint8_t val)
 An ExtIO version of the Arduino function.
 
void pinModeBuffered (pin_t pin, PinMode_t mode)
 A buffered ExtIO version of the Arduino function.
 
void digitalWriteBuffered (pin_t pin, PinStatus_t val)
 A buffered ExtIO version of the Arduino function.
 
PinStatus_t digitalReadBuffered (pin_t pin)
 A buffered ExtIO version of the Arduino function.
 
analog_t analogReadBuffered (pin_t pin)
 A buffered ExtIO version of the Arduino function.
 
void analogWriteBuffered (pin_t pin, analog_t val)
 A buffered ExtIO version of the Arduino function.
 
void analogWriteBuffered (pin_t pin, int val)
 A buffered ExtIO version of the Arduino function.
 

Typedef Documentation

◆ CD74HC4067

An alias for AnalogMultiplex<4> to use with CD74HC4067 analog multiplexers.

Definition at line 185 of file AnalogMultiplex.hpp.

◆ CD74HC4051

An alias for AnalogMultiplex<3> to use with CD74HC4051 analog multiplexers.

Definition at line 193 of file AnalogMultiplex.hpp.

Function Documentation

◆ isNativePin()

bool isNativePin ( pin_t pin)
inline

Check if the given pin number is a real Arduino pin number, and not an ExtIO pin number.

Definition at line 24 of file ExtendedInputOutput.hpp.

◆ getIOElementOfPinOrNull()

ExtendedIOElement * getIOElementOfPinOrNull ( pin_t pin)

Find the IO element of a given extended IO pin number.

Parameters
pinThe extended IO pin number to find the IO element of.
Returns
A pointer to the extended IO element that the given pin belongs to.

Definition at line 14 of file ExtendedInputOutput.cpp.

◆ getIOElementOfPin()

ExtendedIOElement * getIOElementOfPin ( pin_t pin)

Find the IO element of a given extended IO pin number.

Parameters
pinThe extended IO pin number to find the IO element of.
Returns
A pointer to the extended IO element that the given pin belongs to. Throws an error if the element was not found.

Definition at line 23 of file ExtendedInputOutput.cpp.

◆ pinMode()

void pinMode ( pin_t pin,
PinMode_t mode )

An ExtIO version of the Arduino function.

See also
ExtendedIOElement::pinMode

Definition at line 32 of file ExtendedInputOutput.cpp.

◆ digitalWrite()

void digitalWrite ( pin_t pin,
PinStatus_t val )

An ExtIO version of the Arduino function.

See also
ExtendedIOElement::digitalWrite

Definition at line 43 of file ExtendedInputOutput.cpp.

◆ digitalRead()

PinStatus_t digitalRead ( pin_t pin)

An ExtIO version of the Arduino function.

See also
ExtendedIOElement::digitalRead

Definition at line 54 of file ExtendedInputOutput.cpp.

◆ analogRead()

analog_t analogRead ( pin_t pin)

An ExtIO version of the Arduino function.

See also
ExtendedIOElement::analogRead

Definition at line 65 of file ExtendedInputOutput.cpp.

◆ analogWrite() [1/2]

void analogWrite ( pin_t pin,
analog_t val )

An ExtIO version of the Arduino function.

See also
ExtendedIOElement::analogWrite

Definition at line 76 of file ExtendedInputOutput.cpp.

◆ analogWrite() [2/2]

void analogWrite ( pin_t pin,
int val )

An ExtIO version of the Arduino function.

See also
ExtendedIOElement::analogWrite

Definition at line 88 of file ExtendedInputOutput.cpp.

◆ shiftOut()

void shiftOut ( pin_t dataPin,
pin_t clockPin,
BitOrder_t bitOrder,
uint8_t val )

An ExtIO version of the Arduino function.

Definition at line 151 of file ExtendedInputOutput.cpp.

◆ pinModeBuffered()

void pinModeBuffered ( pin_t pin,
PinMode_t mode )

A buffered ExtIO version of the Arduino function.

See also
ExtendedIOElement::pinModeBuffered

Definition at line 90 of file ExtendedInputOutput.cpp.

◆ digitalWriteBuffered()

void digitalWriteBuffered ( pin_t pin,
PinStatus_t val )

A buffered ExtIO version of the Arduino function.

See also
ExtendedIOElement::digitalWriteBuffered

Definition at line 101 of file ExtendedInputOutput.cpp.

◆ digitalReadBuffered()

PinStatus_t digitalReadBuffered ( pin_t pin)

A buffered ExtIO version of the Arduino function.

See also
ExtendedIOElement::digitalReadBuffered

Definition at line 112 of file ExtendedInputOutput.cpp.

◆ analogReadBuffered()

analog_t analogReadBuffered ( pin_t pin)

A buffered ExtIO version of the Arduino function.

See also
ExtendedIOElement::analogReadBuffered

Definition at line 123 of file ExtendedInputOutput.cpp.

◆ analogWriteBuffered() [1/2]

void analogWriteBuffered ( pin_t pin,
analog_t val )

A buffered ExtIO version of the Arduino function.

See also
ExtendedIOElement::analogWriteBuffered

Definition at line 135 of file ExtendedInputOutput.cpp.

◆ analogWriteBuffered() [2/2]

void analogWriteBuffered ( pin_t pin,
int val )

A buffered ExtIO version of the Arduino function.

See also
ExtendedIOElement::analogWriteBuffered

Definition at line 147 of file ExtendedInputOutput.cpp.