arduino教程(提高篇)——編寫(xiě)擴(kuò)展庫(kù)
鑒于很多童鞋對(duì)擴(kuò)展庫(kù)的喜好,并對(duì)它不清楚,作者談?wù)勛约旱膶W(xué)習(xí)心得,望大家一起學(xué)習(xí),共同進(jìn)步。首先以自己之前編寫(xiě)的小車(chē)的程序?yàn)槔樱海▊€(gè)人不喜歡像寫(xiě)arduino程序那樣,每種參數(shù)都在最前面來(lái)個(gè)宏定義什么的,呵呵~~~) - 1. void run(char pin1,char pin2,char pwmpin,char state,int val)
- 2. {
- 3. pinMode(pin1,1);
- 4. pinMode(pin2,1);
- 5. pinMode(pwmpin,1);
- 6. if(state)
- 7. {
- 8. analogWrite(pwmpin,val);
- 9. digitalWrite(pin1,1);
- 10. digitalWrite(pin2,0);
- 11. }
- 12. else
- 13. {
- 14. analogWrite(pwmpin,val);
- 15. digitalWrite(pin1,0);
- 16. digitalWrite(pin2,1);
- 17. }
- 18. }
- 19.
- 20. void setup()
- 21. {
- 22. }
- 23. void loop()
- 24. {
- 25. run(12,13,11,1,150);
- 26. run(8,9,7,1,150);
- 27. delay(2000);
- 28. run(12,13,11,0,150);
- 29. run(8,9,7,0,150);
- 30. delay(2000);
- 31. }
復(fù)制代碼好吧,我們這就開(kāi)始擴(kuò)展庫(kù)的編寫(xiě),第一步用記事本新建一個(gè)cpp主文件,命名為Motor1.cpp - 1. #include <WProgram.h>
- 2. #include "motor1.h" //include后面加空格(注意這些小細(xì)節(jié))
- 3.
- 4. motor1::motor1()
- 5. {
- 6. } //建一個(gè)構(gòu)造函數(shù),當(dāng)然也可以帶參數(shù)
- 7. void motor1::run(char pin1,char pin2,char pwmpin,char state,int val) //建一個(gè)帶參數(shù)的子函數(shù) pin1 pin2輸入高低電平引腳
- 8. { //pwmpin為PWM輸入引腳,state為正反轉(zhuǎn),va為l輸入調(diào)速值0~255
- 9. pinMode(pin1,1);
- 10. pinMode(pin2,1);
- 11. pinMode(pwmpin,1);
- 12. if(state)
- 13. {
- 14. analogWrite(pwmpin,val);
- 15. digitalWrite(pin1,1);
- 16. digitalWrite(pin2,0);
- 17. }
- 18. else
- 19. {
- 20. analogWrite(pwmpin,val);
- 21. digitalWrite(pin1,0);
- 22. digitalWrite(pin2,1);
- 23. }
- 24. }
復(fù)制代碼 第二步,編寫(xiě).h文件 同樣用記事本新建一個(gè).h文件命名為Motor1.h
- 1. [mw_shl_code=cpp,true]#ifndef MOTOR1_H_
- 2. #define MOTOR1_H_ //防止重復(fù)包含
- 3. class motor1
- 4. {
- 5. public: //共有部分
- 6. motor1();
- 7. void run(char pin1,char pin2,char pwmpin,char state,int val); //假如motor1()或run()里定義了變量,就得寫(xiě)出私有部分
- 8. }; //private:相應(yīng)的變量。所謂私有,就是不能給用戶(hù)調(diào)用的。
- 9. #endif[/mw_shl_code]
復(fù)制代碼第三步 建個(gè)keywords.txt文件 里面寫(xiě)出關(guān)鍵字 就是里面的公有部分函數(shù)等·· - 1. motor1 KEYWORD1
- 2. run KEYWORD2
復(fù)制代碼記得KEYWORD與motor之間用tab,不是空格。
完成這三步后,就將Motor1.cpp Motor.h keywords.txt三個(gè)文件放在一個(gè)新建文件夾Motor1里面,再將Motor1文件夾放在Arduino根目錄libraries目錄下面。這樣你就可以重啟arduino的IDE,使用你的擴(kuò)展庫(kù)了。 - 1. #include <Motor1.h>
- 2. void setup()
- 3. {}
- 4. void loop()
- 5. {
- 6. motor1 c;
- 7. c.run(12,13,11,1,150);
- 8. c.run(8,9,7,1,150);
- 9. delay(2000);
- 10. c.run(12,13,11,0,150);
- 11. c.run(8,9,7,0,150);
- 12. delay(2000);
- 13.
- 14. }
復(fù)制代碼之前遇到過(guò)的困難就是:如果擴(kuò)展庫(kù)里包含得有其他擴(kuò)展庫(kù),例如我擴(kuò)展庫(kù)里面用到了軟串口庫(kù)SoftwareSerial就一定要在你使用之前,在arduino的IDE里面不僅要包含你自己編的擴(kuò)展庫(kù),還得包含軟串口庫(kù)(就假如會(huì)在#include <Motor1.h>下面加一句#include <SoftwareSerial.h>) |
你可能喜歡
開(kāi)源3D建模軟件FreeCAD 1.0正式發(fā)布,支持W
人工智能與3D打印技術(shù)結(jié)合,實(shí)現(xiàn)小型核反應(yīng)
最新《Nature》:動(dòng)態(tài)界面3D打印
石墨烯增強(qiáng)混凝土能否推動(dòng)可持續(xù)建筑? UVA
推薦課程
神奇的3D打印
SLA3D打印工藝全套培訓(xùn)課程 - 軟件篇
3D打印月球燈視頻教程 包括完整貼圖建模流
【原創(chuàng)發(fā)布】Cura軟件修改二次開(kāi)發(fā)定制視頻