Questa pagina l'ho scritta molto tempo fa e contiene materiale obsoleto
L'uso è sconsigliato e non posso più fornire alcun supporto
Un classico: scrivere un programma che fa lampeggiare un LED! Ed il seguito (quando la fantasia domina!): accendere un LED quando si preme un pulsante. Verrà qui descritto come ottenere questo risultato usando il compilatore C e, opzionalmente, le librerie wirngPi (nota 1)
Le procedure preliminari necessarie e lo schema elettrico sono descritti in questa pagina. Se volete utilizzare NetBeans leggere inoltre questa pagina.
Un modo per interagire con GPIO è semplicemente l'inserimento delle opportune chiamate di sistema all'interno del codice C. Di seguito la "traduzione" del programma blink.sh.
pi@raspberrypi:~ $ nano blink.c
#include <unistd.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
system ("echo 17 > /sys/class/gpio/export");
usleep(200000);
system ("echo out > /sys/class/gpio/gpio17/direction");
while(1)
{
system ("echo 0 > /sys/class/gpio/gpio17/value"); usleep(500000);
system ("echo 1 > /sys/class/gpio/gpio17/value"); usleep(500000);
}
return 0;
}
pi@raspberrypi:~ $ gcc -Wall -o blink blink.c
pi@raspberrypi:~ $ ./blink
In alternativa, è possibile l'uso delle librerie wiringPi, in particolare delle funzioni pinMode() e digitalWrite() dall'ovvio significato. La documentazione è disponibile sul sito ufficiale.
pi@raspberrypi:~/wiringpi $ nano blink.c
#include <wiringPi.h>
int main (void)
{
wiringPiSetup () ;
pinMode (0, OUTPUT) ;
for (;;)
{
digitalWrite (0, HIGH) ; delay (500) ;
digitalWrite (0, LOW) ; delay (500) ;
}
return 0 ;
}
pi@raspberrypi:~/wiringpi $ gcc -Wall -o blink blink.c -lwiringPi
L'esecuzione del codice come utente normale potrebbe produrre su macchine non aggiornate un errore:
pi@raspberrypi:~/wiringpi $ ./blink
wiringPiSetup: Must be root. (Did you forget sudo?)
Per evitare ciò, solo se viene mostrato l'errore precedente, è necessario impostare la variabile d'ambiente WIRINGPI_GPIOMEM:
pi@raspberrypi:~/wiringpi $ export WIRINGPI_GPIOMEM=1
pi@raspberrypi:~/wiringpi $ ./blink
L'alternativa (sconsigliata) è quella di eseguire il codice come root, suggerimento presente nel messaggio di errore:
pi@raspberrypi:~/wiringpi $ sudo ./blink
Prima di creazione di questa pagina: gennaio 2016
Ultima
modifica: 15 gennaio 2018
Raspberry Pi: note di hardware - Versione 1.31 - Luglio
2019
Copyright 2013-2019, Vincenzo Villa (https://www.vincenzov.net)
Quest'opera è stata rilasciata con licenza Creative Commons | Attribuzione-Condividi allo stesso modo 3.0 Unported.