<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # Arduino ## 6.1 極客的玩具 Arduino,是一個開放源代碼的單芯片微電腦,它使用了Atmel AVR單片機,采用了基于開放源代碼的軟硬件平臺,構建于開放源代碼 simple I/O 接口板,并且具有使用類似Java,C 語言的Processing/Wiring開發環境。 Arduino開發板封裝了常用的庫到開發環境中,可以讓用戶在開發產品時,將主要注意力放置于所需要實現的功能上,而不是開發的過程中。在為Arduino寫串口程序時,我們只需要用Serial.begin(9600)以9600的速率初始化串口,而在往串口發送數據時,可以用Serial.write('1')的方式向串口發送字串'1'。 Arduino的出現很大程度上降低了電子制作的難度,初學者甚至不懂編程也可以上手Arduino,這也是它的魅力所在。 ## 6.2 硬件熟悉 為了滿足各種需求,Arduino團隊設計了很多款開發板,如UNO、Pro mini、Mega2560、Due、Leonardo、Yún、Pro、Fio、Nano等十幾種 開發板和擴展板。最適合初學者的一款是Arduino UNO 。下圖是Arduino UNO 的外觀圖: ![UNO](https://box.kancloud.cn/2015-08-25_55dbf9bd566f6.png) 注:后面的程序也是基于Arduino UNO開發板來講解。 ## 6.3 開發環境 ![Arduino](https://box.kancloud.cn/2015-08-25_55dbf9cba6453.png) 開發環境如上圖,十分簡潔,編寫代碼需要知道兩個基本的函數: ~~~ void setup(){ } void loop(){ } ~~~ `setup()`函數用于初始化(如GPIO初始化,串口初始化,定時器初始化等)特點是只執行一次;`loop()`函數是一個死循環,可以看做C語言的`while(1)`函數。 ## 6.4 點亮一個LED 對初學者來說,點亮led已成為入門必修課,使用Arduino控制led十分簡單,并且很容易理解。 使用到的函數: * pinMode(pin,mode) * digitalWrite(pin,value) 上一段代碼分析: ~~~ int led=13; void setup() { pinMode(led,OUTPUT); } void loop() { digitalWrite(led,HIGH); delay(1000); digitalWrite(led,LOW); delay(1000); } ~~~ 該程序實現Arduino單片機13號引腳以1S時間電平翻轉,如果外接一個led,就可以看到led以1S的間隔閃爍;函數`pinMode()`有兩個參數pin、value,pin參數用來指定引腳號,本程序中設置為13號引腳,mode用于設置引腳模式,有三個值: * `INPUT` * `OUTPUT` * `INPUT_PULLUP` 表示讓某一個IO引腳作輸入,反之, * `OUTPUT`則使一個IO引腳做輸出 * `INPUT_PULLUP`則配置一個IO引腳具有上拉輸入功能(上拉電阻的目的是為了保證在無信號輸入時輸入端的電平為高電平),從英文意思也能很直觀的看出來。 理解了`pinMode()`函數,`digitalWrite()`就很容易理解啦,value的取值有兩個`HIGH`、`LOW`,`HIGH`表示讓某一個引腳輸出高電平,反之,`LOW`則使某一個引腳輸出低電平。 程序中還是用到`delay(ms)`函數,它表示延時多少毫秒,例如延時500 ms ,直接調用`delay(500);`就可以了。 如果你仔細查看我的描述,你會發現我沒有講13號引腳怎么來的,是這樣的:Arduino團隊為了簡化對引腳描述,對每個引腳都進行了編號,以UNO開發板為例,可以發現開發板排座的附近有對應的白顏色的數字,那便是所有的引腳編號,A0~A5是6路ADC輸入引腳,0-13表示13路基本IO,數字前面的`~`表示該引腳具有PWM功能。如果要使用某一引腳,只需要知道引腳編號就可編寫相應代碼進行操作。 例如`digitalWrite(2,LOW)`表示向2號引腳輸出低電平。其他操作類似,是不是so easy ^-^ ! ## 6.5 串口通信 使用到的基本函數: * Serial.begin() * Serial.write() * Serial.read() * Serial.available() 在此項目中需要使用串口,Arduino串口初始化使用`Serial.begin(9600);`,其傳輸波特率為9600,其他波特率也行,函數位于`setup()`中,之后可以使用`Serial.read()`、`Serial.write()`讀入一個字符,輸出一個字符,使用`Serial.print()`輸出字符串.代碼如下: ~~~ char ch='1'; void setup() { Serial.begin(9600); } void loop() { Serial.write(ch); while(1) { if(Serial.available()) { ch = Serial.read(); Serial.print(ch); } } } ~~~ 以上程序實現字符的輸出(Serial.write(),Serial.print())和讀入(Serial.read())。如果需要了解更多,可以參考:[Arduino官網](http://www.ituring.com.cn/tupubarticle/www.arduino.cc) ### 6.5.1 關于Arduino Setup() 如果你對Arduino的Setup很疑惑的話,可以看看這里。下面Arduino源碼目錄中的main函數: ~~~ #include <Arduino.h> int main(void) { init(); setup(); for (;;) { loop(); if (serialEventRun) serialEventRun(); } return 0; } ~~~ ![圖像說明文字](https://box.kancloud.cn/2015-08-25_55dbf9ccacbf5.jpg)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看