C'est assez simple
Une lib est un fichier ou ensemble de fichiers .cpp et .h
Pour la mise au point tu va commencer par travailler dans le même répertoire que ton sktech de test.
Par exemple
+- test_ma_lib\ repertoire pour tester ta lib
+- test_ma_lib.ino sketch de test/demo
+- ma_lib.cpp le coeur de ta lib
+- ma_lib.h l'interface de ta lib
Comme je n'ai pas encore trouvé facilement comment créer un fichier source cpp depuis l'IDE sans créer un nouveau sketech indépendant il faut commencer par créer le répertoire et les fichiers à la main (ils peuvent être vide) AVANT de lancer l'IDE.
Ensuite quand tu va lancer l'IDE, les 3 fichiers vont s'ouvrir tous seuls.
Les fichiers doivent contenir :
- ma_lib.h
Les déclarations de tout ce que ta lib veut rendre accessibles, ce qui comprend :
- les #include qui sont nécessaire dans l'interface ci-dessous
- Les macros (#define) qui définissent des constantes utiles généralement
- les prototypes des fonctions exportées s'il s'agit d'un LIB à interface "C"
- les extern des variables globales exportées s'il y en a (bah, crapouet

)
- la définition des types et classes exportés
- ma_lib.cpp
On commence toujours par #include "Arduino.h" ou un peu plus compliqué si tu veux une lib compatible IDE 002x/1.0
Puis #include "ma_lib.h"
Puis les autres #include complémentaire que tu peux avoir besoin dans l'implémentation de ta lib
Finalement l'implémentation du code, des variables etc ...
Exemple ci-joint ma lib pour le PCF8574, extension I/O I2C
Tu développe et debugge ta lib comme cela.
Ensuite quand viens le moment de la passer dans arduino/librraies, tu copie de la façon suivante :
+- arduino\libraries
+- ma_lib\
+- ma_lib.cpp
+- ma_lib.h
+- keywords
+- examples
+- test_ma_lib
+- test_ma_lib.ino
Le fichier keywords sert à définir la coloration syntaxique dans l'IDE Arduino.
Regarde un fichier existant pour la syntaxe