亚洲天堂高清一二三,久久久久久久久久性生活,精品国产污污免费网站AⅤ,色橹橹欧美在线观看视频高清

Arduino教程(提高篇)——編寫(xiě)擴(kuò)展庫(kù) 

2017-01-06 11:26
Arduino教程.jpg
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. 1.        void run(char pin1,char pin2,char pwmpin,char state,int val)
  2. 2.        {
  3. 3.          pinMode(pin1,1);
  4. 4.          pinMode(pin2,1);
  5. 5.           pinMode(pwmpin,1);
  6. 6.        if(state)
  7. 7.        {  
  8. 8.          analogWrite(pwmpin,val);
  9. 9.          digitalWrite(pin1,1);
  10. 10.          digitalWrite(pin2,0);
  11. 11.        }
  12. 12.        else
  13. 13.        {  
  14. 14.          analogWrite(pwmpin,val);
  15. 15.          digitalWrite(pin1,0);
  16. 16.          digitalWrite(pin2,1);
  17. 17.        }
  18. 18.        }
  19. 19.        
  20. 20.        void setup()
  21. 21.        {
  22. 22.        }
  23. 23.        void loop()
  24. 24.        {
  25. 25.          run(12,13,11,1,150);
  26. 26.          run(8,9,7,1,150);
  27. 27.          delay(2000);
  28. 28.          run(12,13,11,0,150);
  29. 29.          run(8,9,7,0,150);
  30. 30.          delay(2000);
  31. 31.        }
復(fù)制代碼
好吧,我們這就開(kāi)始擴(kuò)展庫(kù)的編寫(xiě),第一步用記事本新建一個(gè)cpp主文件,命名為Motor1.cpp  
  1. 1.        #include <WProgram.h>   
  2. 2.        #include "motor1.h"    //include后面加空格(注意這些小細(xì)節(jié))
  3. 3.        
  4. 4.        motor1::motor1()
  5. 5.        {
  6. 6.        }                            //建一個(gè)構(gòu)造函數(shù),當(dāng)然也可以帶參數(shù)
  7. 7.        void motor1::run(char pin1,char pin2,char pwmpin,char state,int val)    //建一個(gè)帶參數(shù)的子函數(shù) pin1 pin2輸入高低電平引腳
  8. 8.        {                                                                                          //pwmpin為PWM輸入引腳,state為正反轉(zhuǎn),va為l輸入調(diào)速值0~255
  9. 9.          pinMode(pin1,1);
  10. 10.          pinMode(pin2,1);
  11. 11.           pinMode(pwmpin,1);
  12. 12.        if(state)
  13. 13.        {  
  14. 14.          analogWrite(pwmpin,val);
  15. 15.          digitalWrite(pin1,1);
  16. 16.          digitalWrite(pin2,0);
  17. 17.        }
  18. 18.        else
  19. 19.        {  
  20. 20.          analogWrite(pwmpin,val);
  21. 21.          digitalWrite(pin1,0);
  22. 22.          digitalWrite(pin2,1);
  23. 23.        }
  24. 24.        }
復(fù)制代碼
第二步,編寫(xiě).h文件   同樣用記事本新建一個(gè).h文件命名為Motor1.h
  1. 1.        [mw_shl_code=cpp,true]#ifndef  MOTOR1_H_
  2. 2.        #define MOTOR1_H_   //防止重復(fù)包含
  3. 3.        class motor1
  4. 4.        {
  5. 5.        public:                      //共有部分
  6. 6.              motor1();
  7. 7.              void run(char pin1,char pin2,char pwmpin,char state,int val);     //假如motor1()或run()里定義了變量,就得寫(xiě)出私有部分                                
  8. 8.        };                                                                                                     //private:相應(yīng)的變量。所謂私有,就是不能給用戶(hù)調(diào)用的。
  9. 9.        #endif[/mw_shl_code]
復(fù)制代碼
第三步 建個(gè)keywords.txt文件  里面寫(xiě)出關(guān)鍵字  就是里面的公有部分函數(shù)等··
  1. 1.        motor1        KEYWORD1
  2. 2.        run        KEYWORD2
復(fù)制代碼
記得KEYWORD與motor之間用tab,不是空格。

完成這三步后,就將Motor1.cpp  Motor.h  keywords.txt三個(gè)文件放在一個(gè)新建文件夾Motor1里面,再將Motor1文件夾放在Arduino根目錄libraries目錄下面。這樣你就可以重啟arduino的IDE,使用你的擴(kuò)展庫(kù)了。
  1. 1.        #include <Motor1.h>
  2. 2.        void setup()
  3. 3.        {}
  4. 4.        void loop()
  5. 5.        {
  6. 6.        motor1 c;
  7. 7.        c.run(12,13,11,1,150);
  8. 8.          c.run(8,9,7,1,150);
  9. 9.        delay(2000);
  10. 10.        c.run(12,13,11,0,150);
  11. 11.          c.run(8,9,7,0,150);
  12. 12.          delay(2000);
  13. 13.        
  14. 14.        }
復(fù)制代碼
之前遇到過(guò)的困難就是:如果擴(kuò)展庫(kù)里包含得有其他擴(kuò)展庫(kù),例如我擴(kuò)展庫(kù)里面用到了軟串口庫(kù)SoftwareSerial就一定要在你使用之前,在arduino的IDE里面不僅要包含你自己編的擴(kuò)展庫(kù),還得包含軟串口庫(kù)(就假如會(huì)在#include <Motor1.h>下面加一句#include <SoftwareSerial.h>)
聲明:3D打印資源庫(kù)(3dzyk)內(nèi)網(wǎng)友所發(fā)表的所有內(nèi)容及言論僅代表其本人,并不代表3D打印資源庫(kù)(3dzyk)觀點(diǎn)和立場(chǎng);如對(duì)文章有異議或投訴,請(qǐng)联系kefu@3dzyk.cn。
標(biāo)簽:
Arduino教程(提高篇)——編寫(xiě)擴(kuò)展庫(kù) 
快速回復(fù) 返回頂部 返回列表
雅安市| 九龙坡区| 民乐县| 潜山县| 石门县| 双峰县| 峨边| 永胜县| 尼玛县| 米脂县| 唐海县| 弥渡县| 泰安市| 青海省| 双流县| 巴东县| 洪湖市| 河间市| 准格尔旗| 金华市| 肇东市| 措美县| 哈密市| 汉沽区| 大竹县| 景洪市| 师宗县| 色达县| 拜泉县| 玉树县| 新丰县| 城固县| 永清县| 平和县| 从江县| 龙山县| 芦溪县| 台湾省| 德昌县| 洪江市| 古田县|