Digital I/O
The Quarto has eight digital input and output pins, which can be utilized using standard Arduino™ functions:
pinMode
void pinMode(uint8_t pin, uint8_t mode);
This function configures the input or output characteristics of a digital pin. By default, all pins are inputs. The function takes the following arguments:
pinPin should be an integer between 1 and 8, corresponding pins D1 through D8.modesets the input or output mode. Valid options are:OUTPUT: Standard output pin (3.3 V CMOS push-pull)OUTPUT_OPENDRAIN: Open drain outputINPUT: Standard input (floating)INPUT_PULLUP: Input with 22 k pull-up resistorINPUT_PULLDOWN: Input with 100 k pull-down resistor
Example
pinMode(1,OUTPUT);
pinMode(2,INPUT);
digitalWrite
void digitalWrite(uint8_t pin, uint8_t value);
This function sets a digital output pin HIGH or LOW. Unlike in many Arduino™ systems, there is no need to use digitalWriteFast() for better speed performance as digitalWrite() has already been optimized for speed. The function takes the following arguments:
pinShould be an integer between 1 and 8, corresponding to pins D1 through D8.valueSets the pin to 0 or 1. Valid options are:LOWHIGH
Example
void setup() {
pinMode(1,OUTPUT);
pinMode(2,OUTPUT);
}
void loop() {
digitalWrite(1,HIGH);
digitalWrite(2,1); // same as digitalWrite(2,HIGH)
digitalWrite(1,LOW);
digitalWrite(2,0); // same as digitalWrite(2,LOW)
}
digitalToggle
void digitalToggle(uint8_t pin);
This function toggles the state of a digital output pin HIGH or LOW. Unlike in many Arduino™ systems, there is no need to use digitalToggleFast() for better speed performance as digitalToggle() has already been optimized for speed. The function takes the following argument:
pinShould be an integer between 1 and 8, corresponding pins D1 through D8.
Example
void setup() {
pinMode(1,OUTPUT);
pinMode(2,OUTPUT);
}
void loop() {
digitalToggle(1);
digitalToggle(2);
}
digitalRead
uint8_t digitalRead(uint8_t pin);
This function returns 0 if the digital input pin is low and returns 1 if the digital input pin is high. Unlike in many Arduino™ systems, there is no need to use digitalReadFast() for better speed performance as digitalRead() has already been optimized for speed. The function takes the following arguments:
pinShould be an integer between 1 and 8, corresponding pins D1 through D8.
Example
void setup() {
pinMode(1,INPUT);
pinMode(2,INPUT);
pinMode(3,OUTPUT);
pinMode(4,OUTPUT);
}
void loop() {
if ( digitalRead(1) ) {
//D1 is high
digitalWrite(3,LOW);
} else {
if (digitalRead(2) == LOW) {
//D1 and D2 low
digitalWrite(4,HIGH);
} else {
//D1 low, D2 high
digitalWrite(4,LOW);
}
}
}