Control Surface master
MIDI Control Surface library for Arduino
Classes | Typedefs | Functions
Extended Input/Output

Detailed Description

All Elements that extend the number of IO pins of the Arduino: Currently only shift registers and multiplexers.

+ Collaboration diagram for Extended Input/Output:

Classes

class  AnalogMultiplex< N >
 A class for reading multiplexed analog inputs. 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. More...
 
using CD74HC4051 = AnalogMultiplex< 3 >
 An alias for AnalogMultiplex<3> to use with CD74HC4051 analog multiplexers. More...
 

Functions

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

Typedef Documentation

◆ CD74HC4067

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

Examples
1.AnalogReadSerial.ino, 2.DigitalReadSerial.ino, 3.FilteredAnalogReadSerial.ino, and Toggle-LEDs.ino.

Definition at line 188 of file AnalogMultiplex.hpp.

◆ CD74HC4051

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

Examples
1.First-Output.ino.

Definition at line 196 of file AnalogMultiplex.hpp.

Function Documentation

◆ isNativePin()

bool AH::ExtIO::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 27 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 17 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 26 of file ExtendedInputOutput.cpp.

◆ pinMode() [1/2]

void pinMode ( pin_t  pin,
PinMode_t  mode 
)

◆ pinMode() [2/2]

void pinMode ( int  pin,
PinMode_t  mode 
)

Overload to Arduino pinMode function.

Definition at line 50 of file ExtendedInputOutput.cpp.

◆ digitalWrite() [1/2]

void digitalWrite ( pin_t  pin,
PinStatus_t  val 
)

◆ digitalWrite() [2/2]

void digitalWrite ( int  pin,
PinStatus_t  val 
)

Overload to Arduino digitalWrite function.

Definition at line 64 of file ExtendedInputOutput.cpp.

◆ digitalRead() [1/2]

PinStatus_t digitalRead ( pin_t  pin)

◆ digitalRead() [2/2]

PinStatus_t digitalRead ( int  pin)

Overload to Arduino digitalRead function.

Definition at line 78 of file ExtendedInputOutput.cpp.

◆ analogRead() [1/2]

analog_t analogRead ( pin_t  pin)

An ExtIO version of the Arduino function.

See also
ExtendedIOElement::analogRead
Examples
1.AnalogReadSerial.ino.

Definition at line 82 of file ExtendedInputOutput.cpp.

◆ analogRead() [2/2]

analog_t analogRead ( int  pin)

Overload to Arduino analogRead function.

Definition at line 92 of file ExtendedInputOutput.cpp.

◆ analogWrite() [1/4]

void analogWrite ( pin_t  pin,
analog_t  val 
)

An ExtIO version of the Arduino function.

See also
ExtendedIOElement::analogWrite
Examples
Custom-Note-LED-Input-Element-Callback.ino.

Definition at line 94 of file ExtendedInputOutput.cpp.

◆ analogWrite() [2/4]

void analogWrite ( pin_t  pin,
int  val 
)

An ExtIO version of the Arduino function.

See also
ExtendedIOElement::analogWrite

Definition at line 106 of file ExtendedInputOutput.cpp.

◆ analogWrite() [3/4]

void analogWrite ( int  pin,
analog_t  val 
)

Overload to Arduino analogWrite function.

Definition at line 108 of file ExtendedInputOutput.cpp.

◆ analogWrite() [4/4]

void analogWrite ( int  pin,
int  val 
)

Overload to Arduino analogWrite function.

Definition at line 111 of file ExtendedInputOutput.cpp.

◆ shiftOut() [1/2]

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

An ExtIO version of the Arduino function.

Definition at line 177 of file ExtendedInputOutput.cpp.

◆ shiftOut() [2/2]

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

Overload to Arduino shiftOut function.

Definition at line 207 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 116 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 127 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 138 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 149 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 161 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 173 of file ExtendedInputOutput.cpp.