La carte "Grove PI+" dispose de sept ports digitaux (D2, D3, D4, D5, D6, D7 et D8) tandis que la carte "Grove PI zero" dispose seulement d'un port digital (D3). Ces ports étant configurables en lecture ou en écriture, il faut leur spécifier le mode de fonctionnement désiré. C'est l'ATmega328p (µContrôsleur figurant sur la carte et communiquant avec le Raspberry PI via un Bus I2C) qui va, en fait, piloter ces ports en fonction des ordres qu'il reçoit.
Depuis le µContrôleur, on spécifie la direction de fonctionnement d'un port en lecture via la fonction C :
int pin = 3; /* pour le port D3 */ pinMode(pin, OUTPUT);
Toujours depuis le µContrôleur, on écrit l'état d'un port digital via la fonction C :
int pin = 3; /* pour le port D3 */ int state = 0 ; /* valeur 0 ou 1 pour l'état du port en sortie */ digitalWrite(pin,state);
Le firmware du "Grove PI" contient un programme qui, sur réception via l'I2C d'un ordre d'écriture sur un port digital, affecte l'état demandé à ce port.
La blibliothèque Python du "Grove PI" contient également deux fonctions :
Sur le Raspberry PI, on effectuera donc la lecture d'un port digital de la manière suivante :
pin = 3 grovepi.pinMode(pin,"OUTPUT") state = 0 grovepi.adigitalgWrite(pin,state)
Remarque : Il n'est pas nécessaire de repréciser, à chaque écriture digitale, le sens de fonctionnement du port.