Una libreria non è altro che un file in C++, con la sua intestazione .h ed alcuni file di corredo che contengono informazioni per l'IDE
Una libreria può anche contenere altri file .cpp o .h.
Comunque tutti i file di una libreria devono stare all'interno di una directory con il nome del file .cpp o .h principali, senza estensione.
Questa directory dovrà essere all'interno della directory libraries, che si trova nella directory dei nostri sketch, in genere sketchbook
Librerie
Per installare le nostre librerie occorrerà quindi scompattarle, creare una directory con il nome corretto, copiarvi i file e inserire questa directory in libraries
Esempio con il termometro
Nell'immagine a sinistra si vede come collegare il sensore di temperatura.
Dato che abbiamo una basetta di breakout con già il sensore, la resistenza e un connettore a tre piedini, collegheremo questa basetta alla breadboard ed elimineremo la resistenza.
Ora, dato che abbiamo installato le nostre librerie, potremo iniziare il nostro sketch richiamandole: #include <OneWire.h> #include <DallasTemperature.h>
Esempio con il termometro
Ora dovremo creare un'istanza della classe che gestisce il bus 1-Wire: OneWire oneWire(ONE_WIRE_BUS);
E della classe che gestisce il sensore: DallasTemperature dm18b20(&oneWire);
Nella funzione setup, dopo aver inizializzato alla solita maniera la seriale, inizializzeremo anche il sensore: dm18b20.begin();
Nella funzione loop quindi richiederemo la lettura delle temperature: dm18b20.requestTemperatures();
Esempio con il termometro
E per finire leggeremo il valore della temperatura che sarà ritornato dalla funzione: dm18b20.getTempCByIndex(0)
Faccio notare che 1-wire è un bus, quindi possono essere connessi più sensori di temperatura (o altri sensori 1-wire) che potranno essere letti variando l'indice (0 nel nostro caso) tra parentesi.
Bus I2C
Il Bus I2C (I Quadro Ci o I Due Ci - Inter Integrated Circuit) dal 1992 è un bus seriale standard di connessione tra circuiti integrati
Elettricamente prevede due soli segnali: un dato ed un clock.
Logicamente prevede uno o più master ed uno o più slave che comunicano
Una volta acquisito il bus, un master seleziona uno slave utilizzando il suo ID a 7 bit, questo consente di avere sino a 127 slave su un bus
Bus I2C
Arduino prevede la gestione hardware della comunicazione I2C, utilizzando i piedini A4 (SDA) e A5 (SDL).
La gestione software del bus I2C è fatta tramite la libreria wire, che è una libreria standard che non va installata, ma va comunque richiamata.
Bussola
La bussola scelta monta un integrato HMC5883L che utilizza I2C per comunicare.