<li id="8g3ty"><tbody id="8g3ty"><th id="8g3ty"></th></tbody></li>
    <label id="8g3ty"><samp id="8g3ty"></samp></label>
  • <span id="8g3ty"></span>

    1. <center id="8g3ty"><optgroup id="8g3ty"></optgroup></center>
    2. <bdo id="8g3ty"><meter id="8g3ty"><bdo id="8g3ty"></bdo></meter></bdo><center id="8g3ty"><optgroup id="8g3ty"></optgroup></center>
      <label id="8g3ty"><samp id="8g3ty"></samp></label>

    3. 電子開發網

      電子開發網電子設計 | 電子開發網Rss 2.0 會員中心 會員注冊
      搜索: 您現在的位置: 電子開發網 >> 基礎入門 >> Arduino開發學習 >> 正文

      Arduino編程語言教程,Arduino和單片機的區別

      作者:佚名    文章來源:本站原創    點擊數:    更新時間:2022/5/7

      眾所周知,Arduino是一個開放性源碼電子平臺,擁有靈活、易用的硬件和軟件。Arduino作為知名度很高的微控制器,已經融入到好多領域。現在很多中小學生、老師、創客們、設計師、藝術家等都在玩arduino。

      Arduino可以接受各種傳感器的輸入信號從而檢測出運行環境,并通過控制光源,電機以及其他驅動器來影響其周圍環境。板上的微控制器使用Arduino編程語言和Arduino開發環境,Arduino可以獨立運行也可以與計算機進行通信。

      那Arduino編程語言入門難嗎?很多朋友會問,其實如果你會編程語言C或者C++的話那一點都不難,如果您是小白用戶那估計要費點功夫學習了。

      Arduino使用C/C++編寫程序,雖然C++兼容C語言,但這是兩種語言,C語言是一種面向過程的編程語言,C++是一種面向對象的編程語言。早期的Arduino核心庫使用C語言編寫,后來引進了面向對象的思想,目前最新的Arduino核心庫采用C與C++混合編寫而成。


      通常我們說的Arduino語言,是指Arduino核心庫文件提供的各種應用程序編程接口(Application Programming Interface,簡稱API)的集合。這些API是對更底層的單片機支持庫進行二次封裝所形成的。例如,使用AVR單片機的Arduino的核心庫是對AVR-Libc(基于GCC的AVR支持庫)的二次封裝。
      這些封裝好的API,使得程序中的語句更容易被理解,我們不用理會單片機中繁雜的寄存器配置,就能直觀的控制Arduino,增強程序的可讀性的同時,也提高了開發效率,這也是arduino與單片機的最大區別,使用更簡單,效率更高。


      下面我們就來學習下arduino編程語言入門教程:


      1. 關鍵字
      語法符號:
      ;
      ;是一條語句結束的標志,供編譯器識別,必須得有。


      {}
      {}將多條語句合成一個復合語句,能劃分語句的作用域,增強整體整體的可讀性。
      //
      //行注釋,該行//后的所有語句,文字將不被編譯器所編譯、執行。相似的,還有,在中的所有語句,文字將不被編譯器所編譯、執行。


      if(表達式)
      {
      語句A;
      }

      if(表達式1)
      {
      語句1;
      }
      else if(表達式2)
      {
      語句2;
      }
      ...
      else if(表達式n)
      {
      語句n;
      }
      else
      {
      語句n+1;
      }


      for(初始表達式;條件表達式;循環變量表達式)
      {
      循環體語句;
      }


      switch(表達式)
      {
      case 表達式常量1:語句序列1;
      case 表達式常量2:語句序列2;
      ...
      case 表達式常量i:語句序列i;
      case 表達式常量n:語句序列n;
      default:語句序列n+1;
      }


      while(條件表達式)
      {
      循環語句;
      循環變量表達式;
      }


      do
      {
      循環體語句;
      }while(條件表達式);


      break;


      continue;


      return x;


      goto 語句標號;


      2. 數據類型:

      Arduino編程語言數據類型 

      3. 常量
      HIGH | LOW 表示數字IO口的高低電平。HIGH 表示高電(1),LOW 表示低電平(0)。
      INPUT | OUTPUT 表示數字IO口的方向,INPUT 表示輸入(高阻態),OUTPUT 表示輸出(AVR單片機能提供5V電壓 40mA電流)。
      true | false true 表示真(1),false表示假(0)。


      4. 程序結構
      聲明變量及接口名稱(例如:int i;int ledPin=13;)。
      void setup() 函數在程序開始時使用,初始化變量,管腳模式,調用庫函數等(例如:pinMode(ledPin,OUTUPT);)。
      void loop() 在void setup()函數之后,即初始化之后,loop() 讓你的程序循環地被執行。使用它來運轉Arduino。


      5. 數字 I/O
      以下型號為UNO
      pinMode(pin, mode);
      數字IO口輸入輸出模式定義函數,pin表示為0~13, mode表示INPUT或OUTPUT。
      digitalWrite(pin, value) ;
      數字IO口輸出電平定義函數,pin表示為0~13,value表示為HIGH或LOW。
      必須先定義為輸入或輸出模式digitalWrite才能生效。
      int digitalRead(pin);
      數字IO口讀輸入電平函數,pin表示為0~13,value表示為HIGH或LOW。比如可以讀數
      字傳感器。


      6. 模擬IO
      int analogRead(pin);
      模擬IO口讀函數,pin表示為0~5(ArduinoDiecimila為0~5,Arduino nano為0~7)。比如可以讀模擬傳感器(10位AD,0~5V表示為0~1023)。
      analogWrite(pin, value) - PWM
      數字IO口PWM輸出函數,Arduino數字IO口標注了PWM的IO口可使用該函數通常在引腳的旁邊標注~,pin表示3, 5, 6, 9,10, 11,value表示為0~255。比如可用于電機PWM調速或音樂播放。


      7. 擴展 I/O
      shiftOut(dataPin, clockPin, bitOrder,value);
      SPI外部IO擴展函數,通常使用帶SPI接口的74HC595做8個IO擴展,dataPin為數據口,clockPin為時鐘口,bitOrder為數據傳輸方向(MSBFIRST高位在前,LSBFIRST低位在前),value表示所要傳送的數據(0~255),另外還需要一個IO口做74HC595的使能控制。


      unsigned long pulseIn(pin, value);脈沖長度記錄函數,返回時間參數(us),pin表示為0~13,value為HIGH或LOW。比如value為HIGH,那么當pin輸入為高電平時,開始計時,當pin輸入為低電平時,停止計時,然后返回該時間。


      8. 時間函數
      unsigned long millis();返回時間函數(單位ms),該函數是指,當程序運行就開始計時并返回記錄的參數,該參數溢出大概需要50天時間。
      delay(ms);延時函數(單位ms)。
      delayMicroseconds(us);延時函數(單位us)。


      9. 數學函數
      min(x, y) ;求最小值。
      max(x, y) ;求最大值。
      abs(x) ; 計算絕對值。
      constrain(x, a, b) ; 約束函數,下限a,上限b,x必須在ab之間才能返回。
      map(value, fromLow, fromHigh, toLow,toHigh);約束函數,value必須在fromLow與toLow之間和fromHigh與toHigh之間。
      pow(base, exponent);開方函數,base的exponent次方。
      sq(x); 平方。
      sqrt(x);開根號。
      三角函數:
      sin(rad);
      cos(rad);
      tan(rad);


      10. 隨機數函數
      randomSeed(seed);隨機數端口定義函數,seed表示讀模擬口analogRead(pin)函數 。
      long random(max);隨機數函數,返回數據大于等于0,小于max。
      long random(min, max);隨機數函數,返回數據大于等于min,小于max。


      11. 外部中斷函數
      attachInterrupt(interrupt, , mode;外部中斷只能用到數字IO口2和3,interrupt表示中斷口初始0或1,表示一個功能函數,mode:LOW低電平中斷,CHANGE有變化就中斷,RISING上升沿中斷,FALLING 下降沿中斷。
      detachInterrupt(interrupt);中斷開關,interrupt=1 開,interrupt=0 關。
      interrupts();中斷使能函數,用于使能中斷。
      noInterrupts();中斷禁止函數,禁止中斷。


      12. 串口收發函數
      Serial.begin(speed);串口定義波特率函數,speed表示波特率(串行每秒傳輸數據位數的速率),如9600,19200等。
      int Serial.available() 判斷緩沖器狀態。
      int Serial.read();讀串口并返回收到參數。
      Serial.flush();清空緩沖器。
      Serial.print(data);串口輸出數據。Serial.print(數據,數據的進制) 默認為十進制(DEC)
      Serial.println(data);串口輸出數據并帶回車符。


      13. 重要
      以上列舉了一些較常用的函數,事實上,在Arduino的安裝目錄下的libraries還有眾多函數可以根據需要進行調用和學習。
      也可以自己編寫函數然后按照libraries目錄下其他函數的格式打包好。放置在libraries目錄下,然后自己就可以在IDE環境下調用自己編寫的函數了。


      Arduino編程語言庫 

       

      通過以上介紹,其實大家可以看到arduino編程語言入門并不難,以上內容分享出來給大家作為參考,想要了解更多更專業的arduino編程語言教程收藏本站Arduino教程專欄學習。

       

      Tags:Arduino,語言教程  
      責任編輯:admin
      請文明參與討論,禁止漫罵攻擊,不要惡意評論、違禁詞語。 昵稱:
      1分 2分 3分 4分 5分

      還可以輸入 200 個字
      [ 查看全部 ] 網友評論
      關于我們 - 聯系我們 - 廣告服務 - 友情鏈接 - 網站地圖 - 版權聲明 - 在線幫助 - 文章列表
      返回頂部
      刷新頁面
      下到頁底
      晶體管查詢
      主站蜘蛛池模板: 国产精品亚洲综合网站| 国产综合亚洲专区在线| 久久婷婷五月综合97色 | 国产成人亚洲综合网站不卡| 99sescom色综合| 五月婷婷久久综合| 亚洲一本综合久久| 国产成人综合亚洲| 久久亚洲精品人成综合网| 色噜噜狠狠色综合中文字幕| 久久婷婷综合中文字幕| 国产成人综合久久| 香蕉蕉亚亚洲aav综合| 天天综合网网欲色| 色天使亚洲综合在线观看 | 亚洲啪啪综合AV一区| 国产成人亚洲综合网站不卡| 亚洲综合另类小说色区色噜噜| 色综合久久精品中文字幕首页| 国内精品综合久久久40p| 五月婷婷开心综合| 色综合婷婷在线观看66| 国产香蕉尹人综合在线观看| 一本大道加勒比久久综合| 精品国产国产综合精品| 色欲色香天天天综合VVV| 国产婷婷综合在线视频中| 在线精品国产成人综合| 亚洲综合丁香婷婷六月香| 亚洲综合色7777情网站777| 久久久久久久综合狠狠综合| 久久婷婷五月综合色高清| 97se亚洲综合在线| 91精品国产综合久久香蕉| 麻豆狠色伊人亚洲综合网站| 18和谐综合色区| 一本色道久久88综合亚洲精品高清 | 伊人久久婷婷五月综合97色| 国产91色综合久久免费分享| 国产色产综合色产在线视频 | 婷婷国产天堂久久综合五月|