Los GPIOs son salidas digitales que admiten solo dos estados, HIGH (encendido o 1), y LOW (apagado o 0). Pueden ser configurados para entrada o para salida, permitiendo leer o escribir información respectivamente.
Los GPIOs disponen de varios modos,
- OUTPUT: De salida, permitirá enviar una señal de HIGH o LOW.
- INPUT: De entrada, permitirá leer el valor conectado al pin, si no está conectado a nada puede devolver cualquier valor.
- INPUT_PULLUP: De entrada, funciona igual que INPUT salvo que devolverá HIGH salvo que se conecte a una entrada LOW.
Para usar un GPIO lo primero será definir su modo, normalmente la función void setup()
mediante pinMode()
void setup() {
//Establecemos el pin 13 como salida
pinMode(13, OUTPUT);
//Establecemos el pin 10 como entrada
pinMode(10, INPUT);
}
Posteriormente podremos leer o escribir con las funciones digitalRead() y digitalWrite().
void loop() {
//Escribimos el valor HIGH en el pin 13
digitalWrite(13, HIGH);
//Leemos el valor del pin 10
int status = digitalRead(10);
}
Adicionalmente, los GPIOs pueden utilizarse para controlar dispositivos más avanzados mediante el uso de ciertas bbliotecas como veremos más tarde.