Compte tenu de la hierarchie de classe que j'ai expliqué plus haut (TwoWire -> Stream -> Print) je t'invite a regarder l'API de Stream dont toute classe dérivée hérite :
http://arduino.cc/en/Reference/StreamAinsi que celle de Print qui n'est pas documenté sur le site mais tu trouveras Print.h dans arduino/hardware/arduino/core
C'est le cas de Serial, LiquidCrystal (et les classes LCD dérivées), EthernetClient, ....
D'ailleurs pour piloter ton LCD, je t'invite a implémenter une classe similaire à LiquidCrystal et LiquidCrystalI2C.
Le principe est de respecter une API standardisée pour les LCD caratères tout en héritant des méthodes de Stream/Print. Ainsi n'importe quel code qui utilise cette API peut passer d'un modèle de LCD a un autre juste en changeant le module (bibliothèque) d'interface.