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