Knihovny jsou normálně někde u tebe na disku, u mě například v
/home/gilhad/Arduino/libraries, u tebe budou jinde.
Kód: Vybrat vše
#include "RTClib.h"
#include "SparkFunHTU21D.h"
říká, že se v tom místě má vložit obsah těch souborů.
Tudíž někde budou soubory "
RTClib.h" a "
SparkFunHTU21D.h" (asi v adresářích "
RTClib" a "
SparkFunHTU21D", nebo jejich podadresářích) a to jsou normální Cčkové hlavičkové soubory (no dobře spíš C++ nebo g++ ale to teď není tak podstatné)
Někde poblíž těchto hlaviček budou i těla s koncovkou
.cpp a možná i další zajímavé soubory.
(A možná budou mít v sobě nějaká další
#include a tak dál a tak dál. A když si v IDE spustíš překlad (a máš v
Preferencies nastaveno/zašktnuto "Show verbose output during: compilation" a "Compiler warnings: All") tak uvidíš, jak to kompiluje a někde tam budou strašně dlouhé řádky s něčím jako blablabla/
avr-g++ blablabla
-Icesta_ke_knihovne -Icesta_ke_knihovne ... blablabla - tak ty všechny cesty nějak prohledává kvůli těm knihovnám)
Jinak *.ino soubory jsou to samé, co *.cpp, akorát v tom Arduino ještě čachruje s hlavičkama a deklaracema, aby z toho to *.cpp udělalo.
No a v těch knihovnách je přesně co se má dělat s těma datalogerama, když po nich něco chceš.
Jenže to je stejně spíš jen
jak, nikoli
proč.
Proč se dočteš v datasheetu k dané součástce například když si vygooglíš
"DS1307 datasheet" (kde to DS.. je to, co je na tom integráči, co je po něm ten modul pojmenovaný a pak je po něm pojmenovaný i objekt v té knihovně a tvoje proměnná, ale to už je jen taková šikovná shoda okolností)
Tam se taky dočteš, že alarm jde nastavit jen na daný den v týdnu, nebo jen na každý den, nebo ... ale nejde nastavit zcela libovolně.
Takže je často jednodušší si prostě zajímavé věci s tím dělat sám.
A samozřejmě tu knihovnu nemusíš vůbec použít a můžeš si to udělat po svém.
Já si to právě tak pro různé RTC čipy udělal, teď mám vlastní knihovny, které používají jednoduché vlastní API a když někde změním RTC čip, tak jen změním knihovnu a pořád mi to dělá to samé tak, jak je mi to pohodlné (třeba formátování data a času) a nedělá to věci, které nepotřebuju.
A samozřejmě bych to mohl prostě napsat do programu, kdybych to nechtěl používat ve víc projektech a mít přehledný kód.
Dost pomůže, pokud se naučíš aspoň základy C/C++ a prokoukneš, že Arduino to jen přelakovalo na růžovo, aby se toho nebáli humanitně zaměření studenti, ale všechny ty skeče a ina a tak je vlastně jen to C/C++ s několika knihovnama a hlavně to nakonec překládá stejný překladač.
Takže v *.ino můžeš použít i cokoli z toho C/C++ bez rozpaků, i když to arduino tutoriál neobsahuje