KAKO NAPISATI VLASTITI ARDUINO LIBRARY

UVOD
U prijašnjoj lekciji upoznali smo se s 7-segmentnim displayima. Između ostalog, naučili smo zašto je library dobra stvar. Na redu je i da napišemo svoj prvi library. Lekciju ćemo podjeliti prema datotekama, fileovima, koje trebamo izraditi da bi biblioteka, library bio funkcionalan i pregledan.
Ono što želimo, i hoćemo napraviti, su funkcije za pisanje brojeva od 0 do 9, funkcija kojom ćemo ugasiti sve segmente na displayu i funkcija koja će paliti/gasiti točku. Krenimo…
HEADER .H
Header file, spremamo ga s ekstenzijom .h, je jedan od dva nužna file za funkcioniranje librarya. S obzirom da Arduino to ne radi sam, ovdje ćemo definirati sve što koristimo u libraryu. Kreiramo klasu, koju kasnije možemo pozvati u Arduino IDEu, sa svim varijablama i funkcijama koje želimo da budu dostupne korisniku librarya (public) i onim internima koje ćemo koristiti kako bi library bio funkcionalan (private.
Što je klasa?
Ako se do sada niste susreli s pojmom klasa, ona je zapravo skup svih funkcija i varijabli za određeni objekt. Npr. gledajmo na muškarca kao na objekt. Svaki muškarac ima, ili nema, određene karakteristike kao što su IQ, visina, masa ili brkovi. Gledano iz očiju programera IQ je cijelobrojna varijabla int, visina i masa mogu biti float, a brkove imaš ili nemaš pa je logično boolean.
No dobro, vratimo se na izradu librarya. Otvorimo najdraži tekst editor i krenimo:
// kreiramo klasu koju ćemo pozivati u Arduino IDE
class Segment
{
// funkcije koje koristi korisnik librarya
public:
// ovdje cemo postaviti konekciju Dasduina i displaya
Segment(uint8_t pin1, uint8_t pin2, uint8_t pin3, uint8_t pin4, uint8_t pin5, uint8_t pin6, uint8_t pin7, uint8_t pin8);
void Broj(int n); // funkcija “broj” imati će jedan parametar, broj “n” koji zelimo prikazati
void Tocka(); // funkcija “tocka” ce paliti/gasiti tocku
void Ocisti(); // funkcija ocisti gasi preostale segmente
// interne varijable
private:
uint8_t _pin1;
uint8_t _pin2;
uint8_t _pin3;
uint8_t _pin4;
uint8_t _pin5;
uint8_t _pin6;
uint8_t _pin7;
uint8_t _pin8;
bool b;
};
Bez brige ako nešto nije jasno, glavni dio nalazi se u source fileu kojeg ćemo obraditi za tren. Osim navedenog, Header file mora imati još neke dijelove. Svakako je potrebno implementirati Arduino.h, koji se automatski dodaje pri kompajlanju koda, ali ne i u pisanju librarya.
Ovaj dio uvelike ovisi o verziji Arduino IDEa kojeg krisnik ima instaliran. Tako da ovom djelu treba posvetiti puno više pažnje, međutim za sada će ovo biti dovoljno.
Običaj je u Header file dodati i mali dio koda koji provjerava da je library samo jednom dodan u sketch. On izgleda ovako:
#ifndef Segment_h
#define Segment_h
// dio za kod
#endif
Konačno naš Header izgleda ovako:
SOURCE .CPP
Source file je dio gdje se nalazi sav naš kod/logika, a pišemo ga u C++ jeziku. Iako smo već objasnili logiku koju želimo napisati, slobodno škicnite na 7 segmentni display tutorial i podsjetimo se kako radi.
Za početak moramo includati Arduino.h i Segment.h koji smo kreirali upravo. Ponovno, naravno, pišemo u tekst editoru.
#include "Arduino.h"
"include "
Segment.h"
Odlično. Vrijeme je da napišemo logiku za konstruktore kreirane u Headeru.
KEYWORDS
Keywords je .txt file koji omogućuje Arduino IDE da prepozna ključne riječi iz našeg librarya i promjeni im boju u editoru kao bi kod bio pregledniji. Izgledao bi otprilike ovako:
ARDUINO IDE I PRIMJER KODA
Ako želimo da se primjer korištenja libraya pojavi u Arduino IDE File-Examples trebamo kreirati subfolder s nazivom examples. Ovako to izgleda u Windows OS:
U subfolder examples spremiti ćemo primjer korištenja ovog librarya. Možemo ga pisati u Arduino IDE softwareu, a za primjer ćemo napisati odbrojavanje displaya.
Korišteni proizvodi
No products found