Una libreria comunemente usata è la libreria DallasTemperature, utilizzata per accedere ai sensori DS18B20 su un bus 1-Wire. Quando crei un oggetto DallasTemperature, passi un riferimento a un oggetto OneWire. OneWire può creare un bus 1-Wire praticamente su qualsiasi porta di un Arduino.
Un esempio di questo è così:
// Configura un'istanza oneWire per comunicare con qualsiasi dispositivo OneWire (non solo IC di temperatura Maxim / Dallas) OneWire oneWire (ONE_WIRE_BUS); // Passa il nostro riferimento oneWire ai sensori Dallas Temperature.DallasTemperature (&oneWire);
Tuttavia, ci sono alcuni problemi con l'utilizzo di OneWire per guidare un bus 1-Wire, principalmente per guidare lunghezze di bus più lunghe, gestire cortocircuiti e altri errori.
Esiste un chip comunemente disponibile chiamato DS2482-100 che può pilotare bus più lunghi (centinaia di piedi), gestire cortocircuiti e altri errori. È anche meno pesante della CPU e si occupa di una serie di aspetti più lenti di 1-Wire.
Per questo motivo, vorrei essere in grado di passare un riferimento a una libreria che ho creato invece . Attualmente, lo sto facendo:
- Chiamando la libreria OneWire
- Replicando tutti i metodi chiamati dalla libreria DallasTemperature
- Sostituendo la libreria OneWire per il mio
Questo è relativamente complicato. Idealmente vorrei poter passare un riferimento alla mia libreria o una libreria 1-Wire, in modo che le persone possano scegliere quale interfaccia utilizzare.
Come dovrei fare per farlo?