Crearea propriei biblioteci de control servo

Serie de articole: Arduino, utilizarea servo-drive-urilor # 6

Serie de articole: Crearea de biblioteci pentru Arduino # 1

Am creat o clasă pentru controlul servo-ului. Dar dacă vrem să o aplicăm în mai multe proiecte, atunci pentru fiecare dintre ele va trebui să copiem același cod. Prin urmare, este logic să selectăm tot codul repetat într-o bibliotecă separată, pe care o vom conecta la fel ca și bibliotecile standard Arduino







Primul fișier, ServoS.h, este fișierul de antet (din fișierul word hader), aici vor fi descrise clasa însăși, variabilele și funcțiile. Aici sunt disponibile doar lista de variabile și funcții și tipurile acestora, fără corpul funcțiilor.

Copiem clasa ServoClass în fișierul ServoS.h. mai precis, numai variabilele și numele funcțiilor:

Când creați o bibliotecă, puteți vedea câteva caracteristici:

Fișierul începe cu directiva #ifndef ServoS. care verifică dacă această bibliotecă a fost conectată anterior. Dacă nu l-am conectat nicăieri, atunci codul va fi adăugat între #define ServoS și #endif

În plus, definim câteva funcții cu același nume, dar diferite argumente. Acest lucru se datorează faptului că, atunci când se utilizează biblioteci, un apel funcțional cu un număr mai mic de argumente decât cel definit va duce la o eroare. Setați valorile implicite ale argumentelor nu va funcționa, mai exact pentru fiecare caz va trebui să descrieți o funcție separată. Prin urmare, avem două funcții, AttachServo și MoveTo

Acum rămâne să analizăm fișierul ServoS.cpp. Iată codul pentru funcțiile descrise în fișierul antet. În acest caz, trebuie să specificăm la ce clasă se referă funcțiile. Deoarece biblioteca noastră folosește clasa ServoClass. atunci toate funcțiile se vor referi la ea. În cazul unui constructor al cărui nume este același cu numele clasei, acesta va arăta ca ServoClass :: ServoClass (). funcțiile rămase sunt, respectiv, ServoClass :: FunctionName ();







Dacă în timpul creării bibliotecii noastre a fost inclus mediu Arduino IDE trebuie să fie opriți și reporniți din nou, așa cum se colectează date despre bibliotecile disponibile în timpul pornirii și va trebui să vadă noua noastră bibliotecă

De fapt, odată cu crearea bibliotecii, am terminat, rămâne să o conectăm la programul nostru. Pentru a face acest lucru, pur și simplu înlocuiți descrierea clasei noastre din exemplul anterior cu "#include" ServoS.h "" Conectați cele două servomecanisme și încărcați schița:

Crearea propriei biblioteci de control servo

Rezultatul programului nu sa modificat - primul servomotorul ia poziție spus odată, iar al doilea se va roti lent suficient (poziția sa inițială de 90 de grade, pentru a trece la o poziție de 150 de grade este necesară pentru a activa 60 Viteza gradusvo 0,5 rpm corespunde la trei grade pe secundă, adică. mutarea va dura 20 de secunde).

Rămâne să proiectăm biblioteca noastră pentru o utilizare mai convenabilă. Dacă folosiți IDE Arduino, atunci funcțiile bibliotecilor standard sunt evidențiate în culori, dar pentru biblioteca noastră - nr. Prin urmare, trebuie să spuneți programului care dintre funcții ar trebui evidențiate prin crearea unui fișier keywords.txt în dosarul bibliotecii noastre

Am pus acolo informații despre cuvintele cheie care trebuie evidențiate:

Cuvintele etichetate CUVÂNTCHEIE1 sunt evidențiate ca un tip de date, CUVÂNTCHEIE2 - ca funcție între cuvântul și tipul său este plasat pe o filă între rânduri - linie nouă.

Din nou, reporniți ID-ul Arduino, acum clasa noastră și funcțiile sale sunt evidențiate cu culoarea corespunzătoare







Trimiteți-le prietenilor: