<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. 電子開(kāi)發(fā)網(wǎng)

      電子開(kāi)發(fā)網(wǎng)電子設(shè)計(jì) | 電子開(kāi)發(fā)網(wǎng)Rss 2.0 會(huì)員中心 會(huì)員注冊(cè)
      搜索: 您現(xiàn)在的位置: 電子開(kāi)發(fā)網(wǎng) >> 基礎(chǔ)入門(mén) >> Arduino開(kāi)發(fā)學(xué)習(xí) >> 正文

      Arduino學(xué)習(xí)記錄 基礎(chǔ)知識(shí)總結(jié)_arduino pullup

      作者:佚名    文章來(lái)源:網(wǎng)絡(luò)整理    點(diǎn)擊數(shù):    更新時(shí)間:2025/3/14

      一、INPUT和OUTPUT
      1.當(dāng)引腳設(shè)置為INPUT狀態(tài)時(shí),引腳為高阻抗?fàn)顟B(tài)(100兆歐)。此時(shí)引腳可以用于讀取傳感器信號(hào)或開(kāi)關(guān)信號(hào)。
      2.當(dāng)引腳設(shè)置為OUTPUT狀態(tài)時(shí),引腳為低阻抗?fàn)顟B(tài)。這意味著Arduino可以向其它電路元器件提供電流。也就是說(shuō),Arduino引腳在輸出(OUTPUT)模式下可以電亮LED或者驅(qū)動(dòng)電機(jī)。
      3.INPUT_PULLUP模式:Arduino微控制器自帶內(nèi)部上拉電阻。在該模式下可以使用該內(nèi)部上拉電阻。

      二、引腳的作用

       
      1.數(shù)字引腳:
      ●引腳1-13用作數(shù)字輸入/輸出引腳。其中,引腳13連接到板載的LED指示燈;引腳 3、5、6、9、10、11具有PWM功能。
      ●數(shù)字引腳可以開(kāi)啟或者關(guān)閉。打開(kāi)時(shí),處于5V的高電平狀態(tài);關(guān)閉時(shí),處于0V的低電平狀態(tài)。
      ●當(dāng)數(shù)字引腳配置為輸出時(shí),它們?cè)O(shè)置為0或5V。當(dāng)配置為輸入時(shí),電壓可以在0-5V之間變化, 并轉(zhuǎn)換為數(shù)字表示(0或1)。
      ●脈寬調(diào)制(PWM)是一種調(diào)制技術(shù),用于將消息編碼為脈沖信號(hào)。pwm由兩個(gè)關(guān)鍵部分組成:頻率和占空比。頻率決定完成單個(gè)周期所需要的時(shí)間以及信號(hào)從高到低的波動(dòng)速度。占空比決定信號(hào)在總時(shí)間段內(nèi)保持高電平的時(shí)間。
      2.電源:
      ●VIN引腳:使用外部電源為UNO開(kāi)發(fā)板供電
      ●5V和3.3V:向外部組件提供穩(wěn)壓的5V和3.3V
      ●RESET引腳:復(fù)位Arduino開(kāi)發(fā)板
      3.模擬輸入:
      ●A0-A5作為ADC(模數(shù)轉(zhuǎn)換器)。這些引腳用作模擬輸入,但也可以用作數(shù)字輸入或者輸出。
      ●模數(shù)轉(zhuǎn)換:ADC是用于將模擬信號(hào)轉(zhuǎn)換為數(shù)字信號(hào)的電子電路。引腳A0-A5能夠讀取模擬電壓。ADC可以通過(guò)1024個(gè)數(shù)字電平表示模擬電壓,將電壓轉(zhuǎn)換為微處理器可以理解的位。e.g IP語(yǔ)音(將聲波轉(zhuǎn)換為模擬電壓,通過(guò)設(shè)備的ADC,轉(zhuǎn)換成數(shù)字?jǐn)?shù)據(jù),通過(guò)互聯(lián)網(wǎng)傳輸?shù)浇邮斩恕?/P>

      三、PWM(方波控制信號(hào))
      1.工作原理:采用不同的占空比來(lái)模擬“模擬輸出”。
      2.作用:
      ●提供模擬輸出;如果數(shù)字輸出被過(guò)濾,則其模擬電壓將介于0%-100%之間
      ●生成音頻信號(hào)
      ●控制燈光亮度,為電機(jī)提供變速控制
      ●生成調(diào)制信號(hào),例如驅(qū)動(dòng)用于遠(yuǎn)程控制的紅外LED
      3.使用:
      ●analogWrite(pin,dutyCycle)
      pin值選擇(3,5,6,9,10,11),dutyCycle的值在0~255之間。這種方式pwm信號(hào)的頻率是固定的默認(rèn)值(490Hz)。

      # define analogPin 3
      void setup()
      {
       pinMode(analogPin,OUTPUT);
      }
      void loop()
      {
       analogWrite(analogPin,100);  // 輸出PWM,占空比為 100/255
      }

      ●delayMicroseconds()手動(dòng)實(shí)現(xiàn)頻率可調(diào)的PWM
      (1)兩次的digitalWrite輸出狀態(tài)必須相反;
      (2)可以用delay()實(shí)現(xiàn)毫秒級(jí)延遲,用delayMicroseconds()實(shí)現(xiàn)微妙級(jí)延遲

      (3)特點(diǎn)
      1.pwm的比例可以更精確
      2.周期和頻率可控制
      3.所有pin腳都可以輸出,不僅局限于6個(gè)腳
      4.缺點(diǎn):CPU無(wú)法進(jìn)行其他活動(dòng)

      void setup()
      {
        pinMode(8, OUTPUT);    // 設(shè)置8號(hào)引腳為輸出模式
      }
      void loop()
      {
        digitalWrite(8, HIGH);
        delayMicroseconds(100);    // 輸出PWM,占空比為100/1000=10%
        digitalWrite(8, LOW);
        delayMicroseconds(1000 - 100);  // 修改這里的1000可以調(diào)整頻率,總周期為1000us,所以頻率為1000Hz.
      }

      四、三段代碼的區(qū)別

       

      ●第一段代碼定義了一個(gè)布爾型變量pushButton,將2號(hào)引腳的電平狀態(tài)賦給pushButton,并直接根據(jù)pushButton的真假賦予1/0進(jìn)入條件判定,同時(shí)在判定時(shí)加入了邏輯運(yùn)算符!,使得判定的值相反。所以該代碼的運(yùn)算結(jié)果為按下按鈕時(shí)LED燈亮,松開(kāi)按鈕時(shí)LED燈不亮。
      ●第二段代碼定義了一個(gè)整形變量sensorVal,將2號(hào)引腳的電平狀態(tài)賦給sensorVal,在條件判定時(shí),按鈕的邏輯狀態(tài)是反的,當(dāng)按鈕沒(méi)有按下時(shí),2號(hào)引腳為高電平狀態(tài),在if語(yǔ)句中要使13號(hào)引腳為低電平狀態(tài),LED燈不亮,當(dāng)按鈕按下時(shí)則相反。同時(shí)該段代碼的第2行和第10行還啟動(dòng)了串口通訊,并把速率調(diào)到9600,則用戶可以在串口中看到sensorVal的值。
      ●第三段代碼運(yùn)用了兩個(gè)按鈕操作,因此定義了兩個(gè)boolean變量。但在if語(yǔ)句的判定中沒(méi)有使用!運(yùn)算,即運(yùn)行結(jié)果為當(dāng)兩個(gè)按鈕都沒(méi)有按下時(shí),13號(hào)引腳的狀態(tài)為高電平,LED燈亮;當(dāng)按下了其中一個(gè)按鈕或者兩個(gè)按鈕時(shí),13號(hào)引腳為低電平狀態(tài),LED燈不亮。

      五、邏輯運(yùn)算符

      ●&&邏輯與:只有在兩個(gè)操作數(shù)都為真時(shí)才返回真。
      ●&:取地址的單目運(yùn)算符;位運(yùn)算符,表示“按位與”,是雙目運(yùn)算符。
      ●||邏輯或:任意一個(gè)為真時(shí)返回真。
      ●!邏輯非:當(dāng)操作數(shù)為假時(shí)返回真。

      六、串口通訊

      void setup(){
          Serial.begin(9600);
      }
      void loop(){
          if (Serial.available()){
              int value=Serial.read();
      } 


      1.Serial begin(9600)
      設(shè)置串口通信波特比率為9600
      2.if(Serial.avilable())
      判斷Arduino串口是否收到數(shù)據(jù),函數(shù)Serial.available()返回值為int型,不帶參數(shù)
      3.int var=Serial.read()
      將串口數(shù)據(jù)讀入到變量var中,函數(shù)Serial.read()也不帶參數(shù),返回值為串口數(shù)據(jù),int型

      七、傳感器
      1.主要參數(shù)
      vcc:5V電源
      Trig:控制端(觸發(fā))
      Echo:接收端(回聲)
      Gnd:接地端
      探測(cè)距離:2cm-450cm
      感應(yīng)角度:<15度
      探測(cè)精度:0.3cm

      2.工作原理

       
      const int TrigPin=8;       //設(shè)置發(fā)射腳位
      const int EchoPin=9;      //設(shè)置接收腳位
      float cm;                 //浮點(diǎn)型數(shù)據(jù)類(lèi)型(加小數(shù)點(diǎn),提高精準(zhǔn)度)
      void setup() {
      Serial.begin(9600);
      pinMode(TrigPin,OUTPUT);
      pinMode(EchoPin,INPUT);
      }
      void loop() {
      digitalWrite(TrigPin,LOW);        //用低高低電平發(fā)送脈沖給Trigpin引腳
      delayMicroseconds(2);             //微秒級(jí)延時(shí)
      digitalWrite(TrigPin,HIGH);
      delayMicroseconds(10);
      digitalWrite(TrigPin,LOW);
      cm=pulseIn(EchoPin,HIGH)/58.0;    //讀取脈沖寬度,換算成厘米
      Serial.print(cm);                 //顯示距離
      Serial.print("cm");               //顯示單位
      Serial.println();                 //回車(chē)
      delay(1000);
      }

      ●const的作用是將定義的腳位存儲(chǔ)在只讀存儲(chǔ)器,即存儲(chǔ)在UNO板的硬盤(pán)當(dāng)中,在運(yùn)行過(guò)程中節(jié)約UNO板的資源。
      在C語(yǔ)言中,關(guān)鍵字const用來(lái)定義常量,,如果一個(gè)變量被const修飾,那么它的值就不能再改變。
      ●pulseIn函數(shù)其實(shí)就是一個(gè)簡(jiǎn)單的測(cè)量脈沖寬度的函數(shù),默認(rèn)單位是us=10^-6s。也就是說(shuō)pulseIn測(cè)出來(lái)的是超聲波從發(fā)射到接收所經(jīng)過(guò)的時(shí)間。對(duì)于除數(shù)58也很好理解,聲音在干燥、攝氏 20度的空氣中的傳播速度大約為343米/秒,合34,300厘米/秒。或者,我們作一下單位換算,34,300除以1,000,000厘米/微秒。即為:0.0343厘米/微秒,再換一個(gè)角度,1/(0.0343 厘米/微秒)即:29.15 微秒/厘米。這就意味著,每291.5微秒表示10CM的距離。1厘米就是29.15微秒。但是發(fā)送后到接收到回波,聲音走過(guò)的是2倍的距離呀。所以實(shí)際距離就是1厘米,對(duì)應(yīng)58.3微秒。實(shí)際上整個(gè)測(cè)距過(guò)程是測(cè)的發(fā)出聲波到收到回波的時(shí)間,你的程序里的第一個(gè)distance實(shí)際上是時(shí)間us。所以換成距離cm,要除以58。當(dāng)然除以58.3可能更精確。所以我們可以用 pulseIn(EchoPin, HIGH) / 58.00獲取測(cè)得的距離。

      Tags:Arduino開(kāi)發(fā)板,Arduino,入門(mén)教程  
      責(zé)任編輯:admin
      請(qǐng)文明參與討論,禁止漫罵攻擊,不要惡意評(píng)論、違禁詞語(yǔ)。 昵稱(chēng):
      1分 2分 3分 4分 5分

      還可以輸入 200 個(gè)字
      [ 查看全部 ] 網(wǎng)友評(píng)論
      關(guān)于我們 - 聯(lián)系我們 - 廣告服務(wù) - 友情鏈接 - 網(wǎng)站地圖 - 版權(quán)聲明 - 在線幫助 - 文章列表
      返回頂部
      刷新頁(yè)面
      下到頁(yè)底
      晶體管查詢
      主站蜘蛛池模板: 99久久国产综合精品swag| 狠狠色狠狠色综合久久| 国产在线五月综合婷婷| 亚洲av综合色区| 亚洲AV综合色区无码一二三区 | 亚洲国产成人久久综合| 青青草原综合久久大伊人导航| 中文字幕国产综合| 亚洲综合国产成人丁香五月激情| 人人狠狠综合88综合久久| 久久久综合中文字幕久久| 青青草原综合久久大伊人导航| 亚洲五月激情综合图片区| 免费国产综合视频在线看| 色综合天天综合网国产成人网| 一本大道久久a久久综合| 综合一区自拍亚洲综合图区| 色综合久久无码五十路人妻| 国产成人99久久亚洲综合精品| 色综合67194| 久久婷婷五月综合色丁香| 麻豆狠色伊人亚洲综合网站| 99久久国产综合精品1尤物| 亚洲乱码中文字幕综合| 久久综合久久综合九色| 一本色道久久99一综合| 亚洲伊人久久综合影院| 国产精品天干天干在线综合| 色综合久久98天天综合| 国产成人综合久久| 伊人久久大香线蕉综合7| 思思91精品国产综合在线| 久久久久久久综合综合狠狠| 色综合久久天天综合绕观看| 国产日韩综合一区二区性色AV| 五月综合色婷婷影院在线观看| 色噜噜狠狠色综合中国| 久久久久综合中文字幕| 色妞色综合久久夜夜| 亚洲综合色丁香婷婷六月图片| 狠狠色综合久久婷婷色天使 |