bibliotheken en Arduino

Eén van de sterke punten van de Arduino programmeeromgeving is het grote aanbod aan software bibliotheken. Het is mogelijk om grote stukken ingewikkelde code in een bibliotheek onder te brengen. Een andere gebruiker kan dan die bibliotheek integreren in zijn/haar programma en hoeft dus alleen maar de functies te kennen die de bibliotheek aanbiedt. We bekijken als voorbeeld de Wire bibliotheek, waarmee het mogelijk is om I²C elektronica aan te sturen.

bibliotheek toevoegen aan programma.

Om een bibliotheek te gebruiken moet deze eerst toegevoegd zijn aan de Arduino omgeving. De Wire bibliotheek is standaard al geïnstalleerd dus toevoegen is hier niet aan de orde. Om andere bibliotheken toe te voegen is de gemakkelijkste manier om gebruik te maken van de optie "bibiotheken beheren". Deze optie is te vinden via het menu: "Schets->Bibliotheek gebruiken". Via hetzelfde menu kunnen we de bibliotheek Wire kiezen.

In het programma zien we dan in het begin een regel toegevoegd:

#include <Wire.h>

Welke functies allemaal te vinden zijn in deze bibliotheek kan achterhaald worden via de officiële Arduino site. Via "Software->Reference" komen we op het overzicht van alle instructies. Onderaan deze pagina staat een link naar de libraries pagina, waar je een overzicht van de meeste bibliotheken terug kan vinden. Kiezen we daar de Wire bibliotheek, dan komen we op de specifieke pagina voor deze bibliotheek terecht, en zien we rechts een lijst van beschikbare functies.

bibliotheekfuncties gebruiken.

Door de #include instructie zijn al deze functies beschikbaar in ons eigen programma. Voor het aansturen van een PCF8574 is het bijvoorbeeld voldoende om in de setup een Wire.begin() functie op te nemen, en in de loop functie de combinatie

Wire.beginTransmission();
Wire.Write();
Wire.endTransmission();

op te nemen. Elk van deze functies moet natuurlijk nog de nodige parameters meekrijgen. Zo moet de functie beginTransmission() als parameter het adres van de chip meekrijgen waar men naar wil schrijven.

De Write() functie moet dan de waarde meekrijgen die moet geschreven worden.

De endTransmission() functie zorgt er voor dat de I²C-communicatie opgestart en uitgevoerd wordt.

voorbeeldprogramma's.

Elke goeie bibliotheek (ja, er zijn er ook slechte) bevat tevens een aantal voorbeeldprogramma's. Deze kunnen dikwijls als leidraad dienen om te zien hoe de functies best kunnen geïmplementeerd worden. Deze voorbeeldprogramma's zijn terug te vinden via "bestand->voorbeelden->naam van de bibliotheek".