標(biāo)題: 【零知ESP8266教程】快速入門(mén)8-讀取模擬數(shù)值 [打印本頁(yè)]
作者: roc2 時(shí)間: 2019-10-14 10:02
標(biāo)題: 【零知ESP8266教程】快速入門(mén)8-讀取模擬數(shù)值
上次我們一起做了搶答器后,腦回路是不是特別快啦。這時(shí)候我們趁熱打鐵,思考一下。在前面我們一直使用的是數(shù)字引腳(比如:開(kāi)發(fā)板上標(biāo)注的D0、D1、D2等),但是很多情況下我們需要測(cè)量一個(gè)模擬量,比如讀取某個(gè)變化的電壓值,這時(shí)候就需要模擬引腳的功能了(如:A0),下面我們?cè)陔娐分屑尤胍粋(gè)電位器,看看隨著電位器的變化,讀取到的模擬數(shù)值變化。
一、工具原料
電腦,windows系統(tǒng)
零知ESP8266開(kāi)發(fā)板
micro-usb線(xiàn)
電位器
面包板一個(gè)+若干跳線(xiàn)
二、硬件連接
1.jpg (124.32 KB, 下載次數(shù): 42)
下載附件
2019-10-14 09:59 上傳
2.png (432.26 KB, 下載次數(shù): 37)
下載附件
2019-10-14 09:59 上傳
三、方法步驟
1、打開(kāi)零知實(shí)驗(yàn)室軟件開(kāi)發(fā)工具,然后新建項(xiàng)目,輸入以下代碼:
- /**
- * 文件: 電位器測(cè)試.ino
- * 作者: 零知
- * 時(shí)間: 2018/06/25 17:59
- * 說(shuō)明:
- **/
-
- int value = 0;//讀取的值
-
- // the setup routine runs once when you press reset:
- void setup() {
- // put your setup code here, to run once:
- pinMode(LED_BUILTIN, OUTPUT);//設(shè)置板子上的LED燈引腳
- Serial.begin(9600);//打開(kāi)串口,可以在串口監(jiān)視器中查看測(cè)量的數(shù)值
- }
-
- // the loop routine runs over and over again forever:
- void loop() {
- // put your main code here, to run repeatedly:
-
- value = analogRead(A0);
- Serial.println(value);
-
- //讀取一次后,我們讓開(kāi)發(fā)板上的LED燈閃爍一次,表示一次讀取完成
- digitalWrite(LED_BUILTIN, HIGH);
- delay(80);
- digitalWrite(LED_BUILTIN, LOW);
- delay(80);
-
- //延時(shí)一會(huì)兒,讓串口輸出慢一點(diǎn)便于觀(guān)察
- delay(500);
- }
復(fù)制代碼
2、按照之前的方式先【驗(yàn)證】,然后【上傳】到開(kāi)發(fā)板中。
四、成果展示
3.png (34.46 KB, 下載次數(shù): 51)
下載附件
2019-10-14 10:00 上傳
上面步驟成功完成后,我們就可以看到預(yù)期的結(jié)果了,打開(kāi)零知開(kāi)發(fā)工具的【調(diào)試】,然后我們把電位器從開(kāi)始調(diào)到最大,可以看到如下數(shù)據(jù)變化。
五、擴(kuò)展
在上面我們讀取的數(shù)值有些人可能比較迷惑,我們現(xiàn)在把這些原始模擬值轉(zhuǎn)換為實(shí)際的電壓值,編寫(xiě)如下代碼:
- /**
- * 文件: 電位器測(cè)試.ino
- * 作者: 零知
- * 時(shí)間: 2019/05/28 17:59
- * 說(shuō)明:
- **/
-
- int value = 0;//讀取的原始模擬數(shù)值
- int voltage = 0;//實(shí)際電壓值
-
- // the setup routine runs once when you press reset:
- void setup() {
- // put your setup code here, to run once:
- pinMode(LED_BUILTIN, OUTPUT);//設(shè)置板子上的LED燈引腳
- Serial.begin(9600);//打開(kāi)串口,可以在串口監(jiān)視器中查看測(cè)量的數(shù)值
- }
-
- // the loop routine runs over and over again forever:
- void loop() {
- // put your main code here, to run repeatedly:
-
- value = analogRead(A0);
- //次函數(shù)就可以把數(shù)值進(jìn)行范圍映射,可以測(cè)量的最大值為4095,而我實(shí)際的最大測(cè)量電壓為3.3v
- voltage = map(value, 0, 1024, 0, 330);
- Serial.println((float)voltage/100.00); //保留兩位小數(shù)
-
- //讀取一次后,我們讓開(kāi)發(fā)板上的LED燈閃爍一次,表示一次讀取完成
- digitalWrite(LED_BUILTIN, HIGH);
- delay(80);
- digitalWrite(LED_BUILTIN, LOW);
- delay(80);
-
- //延時(shí)一會(huì)兒,讓串口輸出慢一點(diǎn)便于觀(guān)察
- delay(500);
- }
復(fù)制代碼
然后重新驗(yàn)證代碼后上傳到開(kāi)發(fā)板中,然后打開(kāi)串口監(jiān)視器可以看到當(dāng)我們旋轉(zhuǎn)電位器的時(shí)候,實(shí)際的電壓變化:
4.png (33.76 KB, 下載次數(shù): 57)
下載附件
2019-10-14 10:01 上傳
| 歡迎光臨 (http://m.raoushi.com/bbs/) |
Powered by Discuz! X3.1 |