Introduction: How to Write a Library the Easy Way

Picture of How to Write a Library the Easy Way

First thing is first I am not a programmer or have a lot of experience programming I am just a beginner. there are a lot of ways of doing things this is my way maybe is the wrong way but it works for me. This is for beginners like my self, if you have any questions about anything just let me know and i will try to help. it is hard for me to explain some things with out going in to detail but ill try my best to answer. with that being said lets get started...

Step 1: The Intro

I have been working in a project that uses a Pt2322 6 channel audio processor that uses i2c protocol, there is only one library written by oddwires and its a bit hard to use. I was having some problems understanding all the functions so I started to study the library and after some research it all made sense, so I decided to write my own blink library .

This library consist of 3 files

*.cpp

*.h

keywords.txt

Step 2: The Header File

Picture of The Header File

the code:

#include "Arduino.h"

class Blinker //we define our class

{

public: //public declared variables & functions, accessible outside of the class

Blinker (int pin, int duration); //default constructor of Blinker class

void blink (int times); //we define our function

private : //private declared variables & functions, accessible inside the class

int _pin;

int _d;

}; //end of class definition

looking at the above code we can see how we have created a class object named Blinker, and we see our function

blink we have set up are variables public and private. this is our header file or *.h now our.....

Step 3: Our Cpp File

Picture of Our Cpp File

#include "Arduino.h"

#include "Diylibrary.h" //include our header file

Blinker::Blinker (int pin, int duration) //calling constructor

{ pinMode(pin, OUTPUT); // make pin an output

_pin = pin; //pin

_d = duration / 2; //wait halft of the wanted period

}

void Blinker::blink(int times) //we define our blink fuction

{

for (int i = 0; i< times; i++)

{

digitalWrite(_pin, HIGH);

delay(_d);

digitalWrite(_pin, LOW);

} }

if you look at the code you see that this is our main function first we include our header file in this case "diylibrary.h"

all the lines are well commented so i wont go into much detail. the constructor in this case Blinker assigns all the parameters to the variables. the blink fucntions does all our work for us.

Step 4: Our Keywords File

Picture of Our Keywords File

with out the keywords file nothing from our library would be recognized by the environment and highlighted in color. Each line has the name of the keyword, followed by a tab followed by the kind of keyword. Classes should be KEYWORD1 and are colored orange; functions should be KEYWORD2 and will be brown.

so we add these to our keywords file ans save it as a *.txt

Blinker KEYWORD1
Blink KEYWORD2

Step 5: Using the Library

Picture of Using the Library

#include <Diylibrary> // we include our library

int ledPin =11; // green led pin

int ledPin1 = 12; //white led pin

int Duration=500; //our duration

Blinker BlinkWhite (ledPin, Duration); //our new created object will blink pin 11 for the value on our duration variable

Blinker BlinkGreen (ledPin1, Duration); //another new created object will blink pin 12 for value on our duration variable

void setup(){ }

void loop()

{

BlinkWhite.blink (3); // our class is blink it takes a single argument of the number of times to flash

delay(2000);

BlinkGreen.blink(3); // blink our white led the wait 2 seconds blink our green led and wait 2 seconds repeat (3) times delay(2000);

}

really simple code we define our pins and the duration. we create two objects BlinkWhite and BlinkGreen we add this to our loop and declare the number of times to flash with only 3 lines of codes we can keep adding more and more leds.

add the library to the arduino library folder and to make it work just connect two leds one on pin 11 and the other one on pin 12 and run the sketch

Comments

verdelj (author)2014-10-27

I will update this instructable with more details and definitions of constructors destructors, methods, classes, fucntion etc.. ect.. and will add a new class and Fader fuctions to the library so it is easier to understand and follow.

MsSweetSatisfaction (author)2014-10-26

Nice informational based instructable! Very useful for those that are new to coding concepts.

About This Instructable

1,726views

42favorites

License:

Bio: Master Diesel Tech, in California. I love electronics and everything science .
Add instructable to: