library maken

ik heb even een kort vraagje.

is er iemand die mijn kan helpen om een library te maken? ben bezig om een zelf rijdende robot te maken dus dan is het handig als je gewoon de basic/veel gebruikte commands snel in kan vullen en niet elke keer alles te moeten uittypen. heb al wel een poging gedaan maar kom er zelf niet uit.
de bijgevoegde bestanden zijn wat ik tot nu toe heb. de belangrijkste dingen die er in moeten zijn: voouit, achteruit, draaien naar links, draaien naar rechts en remmen.

alvast bedankt voor de moeite :slight_smile: :slight_smile: :slight_smile: :slight_smile: :slight_smile:

robotcar_v2.h (315 Bytes)

robotcar_v2.cpp (884 Bytes)

Hoi Jappiedoedelzak, welkom !

Als je wil uitvinden hoe een lirbary werkt en-of ermee wil oefenen is dat prima hoor.
Maar ik snap het probleem bij de oplossing niet zo goed.

Je kunt gewoon functies gebruiken.
Die functies kun je in een eigen, verder lege sketch zetten en openen wanneer je iets nieuws wil gaan doen met je robotcar.
Als je wil voorkomen dat je deze sketch per ongeluk bewerkt en opslaat met dezelfde naam, kun je de map en alle onderliggende bestanden (zoals Windows dat noemt) read only / alleen lezen maken.
Je kunt 'm dan nog gewoon openen met de IDE, maar niet meer per ongeluk opslaan.
De IDE zal bij zo'n poging melden dat er ergens iets read only is, en je aanraden om het met een andere naam op te slaan.

Ik ben geen C++ guru

    void forwards;
    void backwards;
    void brake;

Dit zijn functie prototypes en moeten dus () aan het eind hebbn.

    brakeA (int pin);
    brakeB (int pin);
    pwmA (int pin);
    pwmB (int pin);
    dirA (int pin);
    dirB (int pin);

Ook weer functie prototypes; in dit geval moet je wel aangeven wat ze retourneren; bv void. Dit geldt ook voor de functie implementatie in de cpp file.

Verder vermoed ik dat je deze niet zult willen aanroepen vanuit de hoofd sketch; indien dat inderdaad het geval is, horen ze 'private' te zijn.

Je mist ook nog een punt-komma in de h file.

In the cpp file gebruik je brakeA etc als een variabele in je digitalWrites etc (zie stukje van je programma hieronder). Echter, het zijn functies. Je zult moeten besluiten wat brakeA etc is, een functie of een variabele.

void robotcar_v2::brake() {
  digitalWrite(brakeA, HIGH);
  digitalWrite (brakeB, HIGH);

}

Er zijn nog wat meer problemen, maar daar heb ik niet direct een oplossing voor :wink: