Categories

Creating a library

In this example we will create a basic library, a few examples on this site flash LEDs. We will create a library that will contain a couple of functions, we will then use these in our sample sketch.

You need at least two files for a library: a header file which has the exatension .h and the source file which has the extension cpp. The header file has definitions for the library this is simply a listing of everything inside like function declarations; the source file has the actual code.

In this example we will create a library called LedFlash it will contain an initialization function and 2 functions to switch on and off the LEDs.

The header file contains various requirements, first is the comments which simply contains a description and any other information you may want to include. The next 2 lines and the last line

#ifndef LedFlash_h
#define LedFlash_h

#endif

These are used in case someone was to accidently include the library twice, its a form of protection. You then need to have theĀ #include “Arduino.h”, this gives you access to standard types and constants of the Arduino language. We then create our LedFlash class .

LedFlash.h

/*
LedFlash.h - Library for flashing LEDs
*/
#ifndef LedFlash_h
#define LedFlash_h

#include "Arduino.h"

class LedFlash
{
public:
void Init();
void AllOn();
void AllOff();
};

#endif

LedFlash.cpp

#include "Arduino.h"
#include "LedFlash.h"

const int NumberLeds = 8;
const int LedPins[] = {2,3,4,5,6,7,8,9};

void LedFlash::Init()
{
for (int led = 0; led < NumberLeds; led++)
{
pinMode(LedPins[led], OUTPUT);
}
}

void LedFlash::AllOn()
{
for (int led = 0; led <= NumberLeds; led++)
{
digitalWrite(LedPins[led], HIGH);
//delay(500);
}
}

void LedFlash::AllOff()
{
for (int led = 0; led <= NumberLeds; led++)
{
digitalWrite(LedPins[led], LOW);
//delay(500);
}
}

Copy the library into your Arduino Library folder

Now for the Arduino code

#include "LedFlash.h"

LedFlash Leds = LedFlash();

void setup()
{
Leds.Init();
}

void loop()
{
Leds.AllOn();
delay(1000);
Leds.AllOff();
}
Share

Comments are closed.