那曲檬骨新材料有限公司

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指示燈,電機以不同速度正反轉。

圖片

實現現象

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

    關注

    2553

    文章

    51395

    瀏覽量

    756609
  • PWM
    PWM
    +關注

    關注

    114

    文章

    5198

    瀏覽量

    214885
  • 開發板
    +關注

    關注

    25

    文章

    5121

    瀏覽量

    98196
  • IO口
    +關注

    關注

    3

    文章

    170

    瀏覽量

    24200
  • ESP8266
    +關注

    關注

    50

    文章

    962

    瀏覽量

    45332
收藏 人收藏

    評論

    相關推薦

    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次下載

    esp8266wifi實例

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

    esp8266 at指令集詳解

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

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

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

    ESP8266 WiFi模塊使用教程免費下載

    自己做了一個輕松配置8266的板子,配合上位機很方便的就配置好8266的各種模式,上電自動運行上次配置的模式而且多加了四路模擬量采集,5路IO輸出,,其中前兩路為斷電保持型開始展現
    發表于 05-20 18:04 ?30次下載
    <b class='flag-5'>ESP8266</b> WiFi模塊使用教程免費下載

    ESP8266 Nodemcu學習心得②

    服務器響應http請求的端口號,網絡服務器標準http端口號為80,因此這里使用80為端口號esp8266_server.begin(); // 啟動網絡服務功能esp8266_server.on("/", handleRoo
    發表于 10-25 11:36 ?14次下載
    <b class='flag-5'>ESP8266</b> Nodemcu學習心得②

    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 ?4917次閱讀
    <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>)
    翼城县| 威尼斯人娱乐场 新世纪| 百家乐棋牌交友| 百家乐赌场详解| 威尼斯人娱乐怎么样| 澳门顶级赌场百家乐的玩法技巧和规则| 盛世国际娱乐场| 百家乐官网娱乐城网站| 菲律宾百家乐官网开户| 澳门百家乐官网博客| 百家乐官网现金平台排名| 百家乐官网香港六合彩| 百家乐娱乐城送分| 大发888客户端安装| 合江县| 百家乐官网高级技巧| 百家乐哪条路好| 全讯网论坛| 娱乐城百家乐论坛| 大发888娱乐官方| 打百家乐官网的技巧| 24山什么来龙是真龙| 大发888游戏注册| 百家乐官网大赢家客户端| 玩百家乐官网怎么能赢呢| 百家乐官网公式书| 网络百家乐| 真人百家乐官网体验金| 赌球网站排名| 百家乐官网游戏论坛| 太阳城百家乐客户端| 足球赌球规则| 百家乐破解的办法| 德州扑克大赛视频| 菲律宾百家乐官网的说法| 百家乐出千工具价格| 濮阳市| 百家乐现金网开户平台| 大发888第一在线| 八卦24方位| 优博国际娱乐城|