欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1648|回復(fù): 0
收起左側(cè)

【零知ESP8266教程】快速入門8-讀取模擬數(shù)值

[復(fù)制鏈接]
ID:349555 發(fā)表于 2019-10-14 10:02 | 顯示全部樓層 |閱讀模式

上次我們一起做了搶答器后,腦回路是不是特別快啦。這時候我們趁熱打鐵,思考一下。在前面我們一直使用的是數(shù)字引腳(比如:開發(fā)板上標(biāo)注的D0、D1、D2等),但是很多情況下我們需要測量一個模擬量,比如讀取某個變化的電壓值,這時候就需要模擬引腳的功能了(如:A0),下面我們在電路中加入一個電位器,看看隨著電位器的變化,讀取到的模擬數(shù)值變化。

一、工具原料
電腦,windows系統(tǒng)
零知ESP8266開發(fā)板
micro-usb線
電位器
面包板一個+若干跳線

二、硬件連接

1.jpg


2.png


三、方法步驟
1、打開零知實驗室軟件開發(fā)工具,然后新建項目,輸入以下代碼:

  1. /**
  2. *    文件: 電位器測試.ino
  3. *    作者: 零知
  4. *    時間: 2018/06/25 17:59
  5. *    說明:
  6. **/
  7.   
  8. int value = 0;//讀取的值
  9.   
  10. // the setup routine runs once when you press reset:
  11. void setup() {
  12.     // put your setup code here, to run once:
  13.         pinMode(LED_BUILTIN, OUTPUT);//設(shè)置板子上的LED燈引腳
  14.         Serial.begin(9600);//打開串口,可以在串口監(jiān)視器中查看測量的數(shù)值
  15. }
  16.   
  17. // the loop routine runs over and over again forever:
  18. void loop() {
  19.     // put your main code here, to run repeatedly:
  20.   
  21.         value = analogRead(A0);
  22.         Serial.println(value);
  23.          
  24.         //讀取一次后,我們讓開發(fā)板上的LED燈閃爍一次,表示一次讀取完成
  25.         digitalWrite(LED_BUILTIN, HIGH);
  26.         delay(80);
  27.         digitalWrite(LED_BUILTIN, LOW);
  28.         delay(80);
  29.          
  30.         //延時一會兒,讓串口輸出慢一點便于觀察
  31.         delay(500);
  32. }
復(fù)制代碼

2、按照之前的方式先【驗證】,然后【上傳】到開發(fā)板中。

四、成果展示

3.png


上面步驟成功完成后,我們就可以看到預(yù)期的結(jié)果了,打開零知開發(fā)工具的【調(diào)試】,然后我們把電位器從開始調(diào)到最大,可以看到如下數(shù)據(jù)變化。

五、擴(kuò)展
在上面我們讀取的數(shù)值有些人可能比較迷惑,我們現(xiàn)在把這些原始模擬值轉(zhuǎn)換為實際的電壓值,編寫如下代碼:

  1. /**
  2. *    文件: 電位器測試.ino
  3. *    作者: 零知
  4. *    時間: 2019/05/28 17:59
  5. *    說明:
  6. **/
  7.   
  8. int value = 0;//讀取的原始模擬數(shù)值
  9. int voltage = 0;//實際電壓值
  10.   
  11. // the setup routine runs once when you press reset:
  12. void setup() {
  13.     // put your setup code here, to run once:
  14.         pinMode(LED_BUILTIN, OUTPUT);//設(shè)置板子上的LED燈引腳
  15.         Serial.begin(9600);//打開串口,可以在串口監(jiān)視器中查看測量的數(shù)值
  16. }
  17.   
  18. // the loop routine runs over and over again forever:
  19. void loop() {
  20.     // put your main code here, to run repeatedly:
  21.   
  22.         value = analogRead(A0);
  23.         //次函數(shù)就可以把數(shù)值進(jìn)行范圍映射,可以測量的最大值為4095,而我實際的最大測量電壓為3.3v
  24.         voltage = map(value, 0, 1024, 0, 330);
  25.         Serial.println((float)voltage/100.00); //保留兩位小數(shù)
  26.          
  27.         //讀取一次后,我們讓開發(fā)板上的LED燈閃爍一次,表示一次讀取完成
  28.         digitalWrite(LED_BUILTIN, HIGH);
  29.         delay(80);
  30.         digitalWrite(LED_BUILTIN, LOW);
  31.         delay(80);
  32.          
  33.         //延時一會兒,讓串口輸出慢一點便于觀察
  34.         delay(500);
  35. }
復(fù)制代碼

然后重新驗證代碼后上傳到開發(fā)板中,然后打開串口監(jiān)視器可以看到當(dāng)我們旋轉(zhuǎn)電位器的時候,實際的電壓變化:

4.png


回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表