Hoe maak je een library aan

Hallo,

ik ben al een tijdje bezig om een Library aan te maken.
heb geprobeerd via deze site maar ik kom er niet meer uit.

libraryTutorial

De uitleg vindt ik nogal verwarrend.
Ik kan ook niet echt een tutorial in het nederlands vinden

Het programma:

#include <Morse.h>

Morse morse(13);

void setup()
{
}

void loop()
{
morse.dot(); morse.dot(); morse.dot();
morse.dash(); morse.dash(); morse.dash();
morse.dot(); morse.dot(); morse.dot();
delay(3000);
}

De Library Morse.h

//*
Morse.cpp - Library for flashing Morse code.
Created by David A. Mellis, November 2, 2007.
Released into the public domain.
*/

#include “Arduino.h”
#include “Morse.h”

Morse::Morse(int pin)
{
pinMode(pin, OUTPUT);
pin = 13;
}

void Morse::dot()
{
digitalWrite(pin, HIGH);
delay(250);
digitalWrite(pin, LOW);
delay(250);
}

void Morse::dash()
{
digitalWrite(pin, HIGH);
delay(1000);
digitalWrite(pin, LOW);
delay(250);
}

Keyword bestand:

Morse KEYWORD1
dash KEYWORD2
dot KEYWORD2

bij het verifiëren krijg ik al deze fouten:

Arduino: 1.6.5 (Windows 8.1), Board:“Arduino/Genuino Uno”

from D:\Arduino\libraries\Morse/Morse.h:8,

from Morse.ino:1:
D:\Arduino\libraries\Morse/Morse.h:16:6: error: ‘void dot()’ previously defined here
void Morse::dot()
^
In file included from Morse.ino:1:0:
D:\Arduino\libraries\Morse/Morse.h:18:16: error: ‘pin’ was not declared in this scope
digitalWrite(pin, HIGH);
^
D:\Arduino\libraries\Morse/Morse.h: At global scope:
D:\Arduino\libraries\Morse/Morse.h:24:6: error: ‘Morse’ has not been declared
void Morse::dash()
^
D:\Arduino\libraries\Morse/Morse.h: In function ‘void dash()’:
D:\Arduino\libraries\Morse/Morse.h:24:6: error: redefinition of ‘void dash()’
In file included from D:\Arduino\libraries\Morse/Morse.h:8:0,
from D:\Arduino\libraries\Morse/Morse.h:8,
,
from Morse.ino:1:
D:\Arduino\libraries\Morse/Morse.h:24:6: error: ‘void dash()’ previously defined here
void Morse::dash()
^
In file included from Morse.ino:1:0:
D:\Arduino\libraries\Morse/Morse.h:26:16: error: ‘pin’ was not declared in this scope
digitalWrite(pin, HIGH);
^
Morse.ino: At global scope:
Morse:3: error: ‘Morse’ does not name a type
Morse.ino: In function ‘void loop()’:
Morse:11: error: ‘morse’ was not declared in this scope
‘Morse’ does not name a type

Wat klopt er nou niet?

En is er evt een nederlandse uitleg hiervan?

je header file includes zichzelf en je hebt geen include gards

pin moet een global zijn en staat nu in morse.morse

je hebt al een morse gemaakt,
edit de file morse.h even met notepad ++.
En het resultaat werkt wel, heb dit jaren geleden ook gevolgd hoor.

Sorry inmiddels wat late reactie.

Het is opgelost.

ik heb de tutorial nog even rustig bekeken en heb de fouten kunnen vinden.

Bedankt voor de reacties.

En wat waren de fouten dan ?
Kan een ander ook van leren.

Dat is inderdaad wel handig voor anderen.
De fout was eigenlijk dat ik wat dingen door elkaar heb gehaald.
Alles stond wel beschreven op de site maar blijkbaar niet meteen duidelijk genoeg voor mij.
Maar nu wel een beter idee gekregen hoe een library werkt en hoe je het aan moet maken.

Programma zoals het is geworden:

morse.ino:

#include <Morse.h>

Morse morse(13);

void setup()
{
}

void loop()
{
morse.dot(); morse.dot(); morse.dot();
morse.dash(); morse.dash(); morse.dash();
morse.dot(); morse.dot(); morse.dot();
delay(3000);
}

Voor de library maak je 3 bestanden aan:

Morse.h
Morse.cpp
Keywords.txt

Zet de 3 files in een map genaamd “Morse”
En zet die map in de library van arduino.

Morse.h:

/*
Morse.h - Library for flashing Morse code.
*/
#ifndef Morse_h
#define Morse_h

#include “Arduino.h”

class Morse
{
public:
Morse(int pin);
void dot();
void dash();
private:
int _pin;
};

#endif

Morse.cpp:

/*
Morse.cpp - Library for flashing Morse code.
*/

#include “Arduino.h”
#include “Morse.h”

Morse::Morse(int pin)
{
pinMode(pin, OUTPUT);
_pin = pin;
}

void Morse::dot()
{
digitalWrite(_pin, HIGH);
delay(250);
digitalWrite(_pin, LOW);
delay(250);
}

void Morse::dash()
{
digitalWrite(_pin, HIGH);
delay(1000);
digitalWrite(_pin, LOW);
delay(250);
}

Keywords.txt

Morse KEYWORD1
dash KEYWORD2
dot KEYWORD2