Comment créer sa propre librairire en fonction d'une autre

Bonjour à tous,
Je me replonge dans Arduino :stuck_out_tongue: :slight_smile:
J'ai utilisé une grande librarire qui consiste en plusieurs fichiers. Il est bien mais beaucoup de code est inutile et prend de la mémoire. En plus c'est un peu le cheni.

J'aimerais refaire "la mienne" en reprennant uniquement ce que j'ai besoin, et j'aimerais avoir tout dans un fichier .cpp et .h.

Auriez-vous un tutorial qui explique comme on crée une librarie?
Auriez-vous des info à me donner?

Merci beaucoup

Il suffit de commenter les fonctions qui ne te conviennent pas :slight_smile:

Voilà, j'ai lu le tuto, mais je penne à faire marcher un truc qui semble bien etre simple

J'ai créé deux fichiers sous
/libraries/Sim908/Sim908.h

/*
  Sim908.h - Library 
*/

#ifndef Sim908_h
#define Sim908_h

#include "Arduino.h"

class Sim908{
	public:
		Sim908();
		void blinkLed(int lPin, int nBlink, int msec);
	
	private:
};

#endif

/libraries/Sim908/Sim908.cpp

#include "Arduino.h"
#include "Sim908.h"

Sim908::Sim908(){

}

void Sim908::blinkLed(int lPin, int nBlink, int msec) {
   if (nBlink) {
     for (int i = 0; i < nBlink; i++) {
       digitalWrite(lPin, HIGH);
       delay(msec);
       digitalWrite(lPin, LOW);
       delay(msec);
     }
   }
 }

Et j'ai aussi fait un fichier Sim908.ino

#include <Sim908.h>

Sim908 sim908;

int green = 12;


void setup()
{
  pinMode(green, OUTPUT);
}


void loop()
{
  sim908.blinkLed(green,1,1000);
  delay(3000);
}

Quand je compile j'ai ce message d'erreur:

sim908_v6.cpp.o: In function __static_initialization_and_destruction_0': /Applications/sim908_v6.ino:3: undefined reference to Sim908::Sim908()'
sim908_v6.cpp.o: In function loop': /Applications/sim908_v6.ino:16: undefined reference to Sim908::blinkLed(int, int, int)'

Je ne comprends pas la premiere erreur, ou ai-je manqué une chose __static_initialization_and_destruction_0
et aussi la deuxième :
undefined reference to `Sim908::blinkLed(int, int, int)

Pourriez-vous me dire l'erreur(s) commises?

sur quel os tourne tu?
quel version de l'ide utilise tu?
dans Fichiers/preferences, coche "afficher les resultats détaillés pendant la compilation"

Hello,
Je suis sur OS 10.9
L'IDE est Arduino 1.0.5 . Es-ce qu'il y autre chose de mieux, pour Mac?
Je ne trouve pas Fichier/preference, mais ca c'est peut être parce que je suis sous Mac..

Merci

Salut!

Bizzard le message d'erreur mais tu as néanmoin fait une erreur. j'ai tester ton code et ca compile.

Dans ton .INO en tete tu as écris:
#include <Sim908.h>

C'est faux!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! On utilise les <> pour dire au compilateur d'aller chercher la libraire dans les includes du compilateur lui même. si c'est toi qui a fait la librairie utilise les " " . De même tu range le .cpp et le .h dans le meme dossier que le .ino

Donc dans ton .ino tu met en tete:
#include <Arduino.h>
#include "Sim908.h"

Avec les GUILLEMET!

Sinon chez moi ca compile...