Per prima cosa bisogna realizzare due file: il primo consiste nella vera e propria libreria che chiameremo LibreriaFF.h (modificheremo quella presentata nel seguente articolo) mentre il secondo contiene il codice completo di funzioni, procedure, costruttori delle classi ed altro (come da figura sovrastante).
Il listato della LibreriaFF.h è il seguente:
#ifndef LibreriaFF_h
#define LibreriaFF_h
// definiamo la libreria e includiamo la libreria Arduino.h
#include "Arduino.h"
/* dichiariamo degli insiemi che riutilizzeremo per tutti i progressivi listati e
creiamo un tipo Ipositivo, Stringa e Reale che ci serviranno successivamente */
typedef unsigned int Ipositivo;
typedef float Reale;
typedef char Stringa[20];
enum Posizione_Ciclo {INIZIO,FINE,SUCC}; // per eventuali posizioni su vettori e cicli
enum Valore_Booleano {FALSO = 0,VERO}; // utili nel mondo della logica
enum Tipo_Uso {BASSO=0,ALTO=1}; // modo di utilizzo di un interruttore
enum Stati {SOSPESO= -1,PASSIVO=0,ATTIVO}; // modo di utilizzo di un interruttore
enum pin_Modo {uscita=0,ingresso=1};
enum Luce_Semaforo {Rosso,ROSSO,rosso=8,Giallo,GIALLO,giallo=9, Verde,verde,VERDE};
// definiamo le costanti che avranno valori costanti nei nostri sorgenti/sketch
const Ipositivo PIN_LED_Uscita=13; // impostiamo lo standard Pin LED di Arduino
const Ipositivo Velocita_scambio_Dati=9600; // per la comunicazione seriale
// dichiariamo i valori interi corrispondenti ai colori dei semafori
const Ipositivo r=8;
const Ipositivo g=9;
const Ipositivo v=10;
//dichiaro una variabile intera che contenga 8, al pin cui collegherò il LED rosso
//stesso discorso per il pin 9 (LED giallo) e il 10 (LED verde)
Tipo_Uso T;
Luce_Semaforo Colore;
pin_Modo pinm;
// definiamo le procedure e le eventuali funzioni che utilizzeremo nei nostri sketch
void Avvio_Comunicazione_Seriale ();
void Scriviamo_Su_Seriale (Stringa s[]);
void IlluminaPin (Stati T, Ipositivo c);
void Modo(pin_Modo pinm, Ipositivo c);
void Attendi(Ipositivo secondi);
// terminiamo la libreria
#endif