精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

淺談ESP8266的IO口功能

CHANBAEK ? 來源:TonyCode ? 作者:TonyCode ? 2023-05-19 14:34 ? 次閱讀

IOT Kit開發板上提供了一些基礎的外設及傳感器,本篇通過驅動按鍵、LED燈、繼電器、光敏電阻電機來學習ESP8266的IO口功能,即數字輸入、數字輸出、模擬輸入和PWM模擬輸出功能。

1. 數字IO

Arduino for ESP8266可以使用Arduino操作IO口的方式,即使用pinMode、digitalRead和digitalWrite函數進行操作:

  • 使用pinMode(pin, mode)來設置GPIO口工作模式,pin取值范圍0 ~ 16,mode可選值見下文;
  • 使用digitalRead(pin)來讀取GPIO口電平,返回值為HIGH或LOW,即1和0;
  • 使用digitalWrite(pin, value)來設置輸出狀態,value可選值為HIGH或LOW,即1和0;
  • 數字引腳0-15可設置為INPUT、OUTPUT、INPUT_PULLUP模式(輸入、輸出、上拉輸入);數字引腳16可設置為INPUT、OUTPUT、INPUT_PULLDOWN_16模式(輸入、輸出、下拉輸入);啟動時,這些引腳默認配置為INPUT模式;
  • 引腳還可以提供其他功能,例如串口、I2C、SPI,這些函數通常由相應的庫配置。

在IOT Kit開發板上,按鍵一端連接GPIO16引腳,另一端通過電阻連接到3.3V電源,配置按鍵下拉輸入模式,則按鍵按下輸入高,按鍵抬起輸入低。

char keyCheck(void)
{  
 static char key_up=1;//按鍵松開
 if(key_up&&(digitalRead(Key_Pin)==HIGH))
 {
  delay(10);//去抖動 
  key_up=0;
  if(digitalRead(Key_Pin)==HIGH)return 1;
 }else if(digitalRead(Key_Pin)==LOW)key_up=1;      
  return 0;// 無按鍵按下
}

繼電器連接GPIO15,通過下圖可知,輸出高電平繼電器開,輸出低電平繼電器關。ESP8266模塊上的LED燈連接GPIO2,輸出高電平關閉,輸出低電平打開。

圖片

繼電器電路圖

if(keyCheck()==1)
{
  key_sta = !key_sta;
  digitalWrite(Relay_Pin, key_sta);
  digitalWrite(Led_Pin, !key_sta);
}

2. 模擬IO

ESP8266 有一個可供用戶使用的 ADC 通道。它可用于讀取 ADC 引腳上的電壓,或讀取模塊電源電壓 (VCC)。要讀取施加到 ADC 引腳的外部電壓,使用analogRead(A0),電壓量程為0 ~ 1.0V,ADC值范圍為0 ~ 1023。

在IOT Kit開發板上,光敏電阻通過分壓電阻連接到ADC引腳。當光線亮時,光敏電阻阻值減小,分壓電壓小,ADC值小,反之ADC值變大。

oled.print("ADC:");
oled.print(analogRead(A0)); //A0引腳ADC值 范圍0~1023

GPIO0 ~ 16支持PWM輸出,具體說明如下:

  • 使用analogWrite(pin, value)來對pin上輸出PWM信號,value表示高電平保持時間,默認下value取值為0 ~ 1023,當value為0時即停止PWM輸出;
  • 使用analogWriteRange(new_range)修改PWM value可寫范圍,默認range為1023;
  • 使用analogWriteFreq(new_frequency)修改PWM頻率,new_frequency取值范圍100 ~ 40000Hz,默認為1000Hz;

IOT Kit開發板上的電機驅動芯片為L9110S,當兩個控制引腳INA和INB同時高電平或低電平時,電機停止,當兩個引腳一高一低時可對電機進行正反轉控制。

圖片

電機驅動電路

//加速正轉
  analogWrite(MotorB_Pin, 0);
  for(int i=10;i<30;i++)
  {
    analogWrite(MotorA_Pin, i);
    delay(10);
  }

  //減速反轉
  analogWrite(MotorA_Pin, 0);
   for(int i=30;i>10;i--)
  {
    analogWrite(MotorB_Pin, i);
    delay(10);
  }

3. 程序下載驗證

將開發板連接電腦進行程序下載,上傳完成后,OLED顯示ADC值,通過遮擋光敏電阻可看到數字改變。通過按鍵可控制繼電器及LED指示燈,電機以不同速度正反轉。

圖片

實現現象

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 傳感器
    +關注

    關注

    2548

    文章

    50668

    瀏覽量

    751978
  • PWM
    PWM
    +關注

    關注

    114

    文章

    5141

    瀏覽量

    213394
  • 開發板
    +關注

    關注

    25

    文章

    4943

    瀏覽量

    97191
  • IO口
    +關注

    關注

    3

    文章

    169

    瀏覽量

    23995
  • ESP8266
    +關注

    關注

    50

    文章

    962

    瀏覽量

    44832
收藏 人收藏

    評論

    相關推薦

    ESP8266WIFI

    esp8266圖文,AT例程!!!!!!!!!!
    發表于 11-10 17:09 ?0次下載

    ESP8266系列模塊選型

    ESP8266系列模塊選型ESP8266 ESP-01 ESO-02
    發表于 01-05 17:34 ?37次下載

    ESP8266WiFi擴展板產品使用說明書

    ESP8266WiFi擴展板
    發表于 03-19 11:47 ?16次下載

    使用esp8266實現STM32聯網(最簡單USART方法)

    上一篇 esp8266怎么配置esp8266和USB轉TTL連接esp8266簡單介紹esp8266連接路由器esp8266通過路由器連接在
    發表于 11-22 11:51 ?1.2w次閱讀

    esp8266wifi實例

    ESP8266WiFi擴展板是深圳四博智聯科技有限公司開發的一款基于樂鑫ESP8266的超低功耗的UART-WiFi模塊,本文介紹了ESP8266的特點以及使用總結跟示例
    發表于 12-08 13:34 ?1.9w次閱讀

    esp8266 at指令集詳解

    ESP8266可廣泛應用于智能電網、智能交通、智能家具、手持設備、工業控制等領域。本文介紹了esp8266 at指令集,以及ESP8266使用AT指令開發示例
    發表于 12-08 13:52 ?14.3w次閱讀
    <b class='flag-5'>esp8266</b> at指令集詳解

    esp8266中文資料匯總(esp8266引腳圖_與單片機連接_串口wifi實例)

    本文首先介紹了esp8266引腳圖功能esp8266特性,其次介紹了 單片機與ESP8266連接及最小系統連接與程序分享,最后介紹了
    發表于 05-24 08:36 ?22.5w次閱讀
    <b class='flag-5'>esp8266</b>中文資料匯總(<b class='flag-5'>esp8266</b>引腳圖_與單片機連接_串口wifi實例)

    ESP8266-NodeMCU

    ESP8266-NodeMCUESP8266-NodeMCU引腳功能1.1 可用引腳1.2 電壓電流限制1.3 特殊引腳情況說明1.4 上拉電阻/下拉電阻1.5 模擬輸入1.6 串行端口1.7 I
    發表于 10-25 16:51 ?43次下載
    <b class='flag-5'>ESP8266</b>-NodeMCU

    ESP8266 wifi模塊開發匯總

    ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ESP8266 wifi模塊開發匯總?ESP8266 wifi模塊開發匯總本文檔主要介紹開發者在ESP8266開發中常見的一些問題。 這些
    發表于 11-05 19:21 ?188次下載
    <b class='flag-5'>ESP8266</b> wifi模塊開發匯總

    小白驅動C51+ESP8266局域網與APP通訊控制IO

    小白驅動C51+ESP8266局域網與APP通訊控制IO
    發表于 11-23 17:51 ?17次下載
    小白驅動C51+<b class='flag-5'>ESP8266</b>局域網與APP通訊控制<b class='flag-5'>IO</b><b class='flag-5'>口</b>

    esp筆記(2)使用Arduino IDE 開發 esp8266

    的 LED燈Esp8266 V3 開發板V3 開發板的MCU為esp8266,并且板載了USB轉串口模塊,使得我們可以通過串口打印將數據發送到PC中,GPIO2還連接了...
    發表于 12-05 14:51 ?55次下載
    <b class='flag-5'>esp</b>筆記(2)使用Arduino IDE 開發 <b class='flag-5'>esp8266</b>

    ESP8266學習之路——環境部署

    文章目錄前言ESP8266SDK前言ESP8266SDK官方鏈接
    發表于 12-22 18:47 ?28次下載
    <b class='flag-5'>ESP8266</b>學習之路——環境部署

    ESP8266硬件

    目前市面上有關ESP8266模組有很多的種類,但是都是使用的樂鑫公司開發的ESP8266的wifi模組,而且種類也很多。
    的頭像 發表于 02-10 14:25 ?4602次閱讀
    <b class='flag-5'>ESP8266</b>硬件

    ESP8266初次如何實現無線通信(基于電腦與ESP8266)

    的且集成的國產WIFI模塊,它有很多種型號,但是使用方法沒什么太大的區別,也可以說沒區別,有些看起來引腳比較多的ESP8266模塊只是將這個芯片的IO拓展出來了而已。還有 一種原因就是它采用的是Micropython編程的
    發表于 05-30 09:53 ?28次下載
    <b class='flag-5'>ESP8266</b>初次如何實現無線通信(基于電腦與<b class='flag-5'>ESP8266</b>)

    nodemcu和esp8266是什么關系?

    nodemcu和esp8266是什么關系 nodemcu和esp8266是什么關系?通俗理解就是nodemcu是一個開發板,基于esp8266的開發板。 目前市面上搭載有ESP8266
    的頭像 發表于 10-20 14:53 ?3622次閱讀
    nodemcu和<b class='flag-5'>esp8266</b>是什么關系?