久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: Arduino教程-獲取輸入模擬信號 [打印本頁]

作者: 51黑電子論壇    時間: 2015-12-19 21:42
標題: Arduino教程-獲取輸入模擬信號
Hi,大家好!經過上一次的學習,我們知道了如何獲取外部電器元件輸入的數字信號。這次我們將一起學習如何獲取外部電器元件輸入的模擬信號,也即連續信號。
和上一次同理,這次我們使用的元器件換成了一個模擬信號輸入器件,使用旋轉電位計代替上一次的按鍵開關。道理都是相通的,廢話不多說,讓我們直奔主題!
首先還是準備階段,包括硬件和軟件兩方面。
硬件方面
圖片來源:Arduino 電路配件
具體包括如下:
一共只有三種部件,比上一次還少!這次多了一個旋轉電位計,其實就是我們平時常見的旋轉開關,此開關可以發出連續的模擬信號。其他部件不必多說。
軟件方面Arduino官方提供的IDE。
好!需要的就這些。下面我就開始連接電路!
連接電路
圖片來源:Arduino UNO 連接旋轉電位計示意圖
直接用面包線把電位計連接到Arduino UNO電路板上,注意電位計的正負電源針腳不要接錯!
接下來是最后一步!
添加幾行代碼首先打開Arduino的IDE,新建一個Arduino項目窗口。

圖片來源:Arduino官方IDE
完成之后,向其中添加如下代碼。


  1. // 對Arduino電路板或相關狀態進行初始化方法
  2. void setup() {
  3.   // 開啟串行通信,并設置其頻率為9600。
  4.   // 如果沒有特別要求,此數值一般都為9600。
  5.   Serial.begin(9600);
  6. }

  7. // 系統調用,無限循環方法
  8. void loop() {
  9.   // 讀取針腳號為 A0 的模擬信號。
  10.   // analogRead() 方法是模擬信號讀取方法。
  11.   // 將模擬信號值存入名為 sensorValue 的整型變量。
  12.   int sensorValue = analogRead(A0);
  13.   // 將獲取的模擬信號值打印到串口顯示。
  14.   Serial.println(voltage);
  15. }
復制代碼




好!總共所需要的代碼就這么多!如果你和大家一樣,一直跟隨我們的教程學習,那么其實這里我們只出現了一個新面孔!沒錯,那就是analogRead()方法。在前面的教程中,我們還介紹過他的孿生兄弟,能猜到是誰嗎?就是analogWrite()方法。這兩個方法就像是孿生兄弟,前一個是讀取元器件輸入的模擬信號,后一個是向元器件寫入模擬信號。analogRead()方法調用時,需要輸入的參數是Arduino UNO電路板上的針腳號,此處我們獲取的是 A0 針腳上輸入的信號。
最后,我們只需要將程序燒入Arduino即可。

圖片來源:Arduino官方IDE的文件編輯菜單選項
根據上圖指示,點擊向右指向的箭頭圖標,將程序燒入。成功之后,點擊右上方的放大鏡圖標,打開串口調試窗口。此時你會看到,窗口在實時的更新獲取到的數據。旋轉電位計,窗口中的數據也會相應發生改變。因為Arduino UNO電路板上有一個模擬數字信號轉換器,俗稱ADC(analog-to-digital converter),此時讀到的數值會被轉換為0到1023之間,即analogRead()方法返回的值在0到1023之間。
總結打完收工!這次我們主要學習了如何獲取外部元器件輸入的模擬信號。這個功能的使用非常的常見,比如控制燈光的強弱,聲音的大小等等,都有可能會用的到。而實現這個想法,也只需要一個analogRead方法即可,已經無法再簡單了!
下期預告至此呢,我們學習了數字信號的輸入輸出,模擬信號的輸入輸出。我們已經具備了一定的基礎。接下來要做什么呢?嗯,接下來的小怪獸會逐漸強大!在前幾次學習中,我們用到了一個名為delay()方法,這個方法是系統類庫提供給我們的,拿來就能用。那么現在問題來了,為了讓以后的編程過程更靈活,如何在不使用這個方法的情況下實現時間延遲呢?嗯,下一次我們將挑戰這個問題!


ohcoder的系列精彩Arduino教程:
Arduino教程-初識Arduino(包含本教程目錄):http://m.zg4o1577.cn/bbs/dpj-41334-1.html
Arduino教程-開篇:http://m.zg4o1577.cn/bbs/dpj-41335-1.html
Arduino教程-點亮LED神燈:http://m.zg4o1577.cn/bbs/dpj-41336-1.html
Arduino教程-讓LED神燈閃爍:http://m.zg4o1577.cn/bbs/dpj-41337-1.html
Arduino教程-讓LED神燈亮度漸變:http://m.zg4o1577.cn/bbs/dpj-41338-1.html
Arduino教程-獲取輸入數字信號:http://m.zg4o1577.cn/bbs/dpj-41339-1.html
Arduino教程-獲取輸入模擬信號:http://m.zg4o1577.cn/bbs/dpj-41340-1.html
Arduino教程-另一種時間延遲:http://m.zg4o1577.cn/bbs/dpj-41331-1.html
Arduino教程-按鍵開關:http://m.zg4o1577.cn/bbs/dpj-41341-1.html
Arduino教程-停止抖動!:http://m.zg4o1577.cn/bbs/dpj-41333-1.html
Arduino教程-拋棄外部電阻!:http://m.zg4o1577.cn/bbs/dpj-41332-1.html
Arduino教程-用按鍵開關計數:http://m.zg4o1577.cn/bbs/dpj-41330-1.html

………后續持續更新中請打開:http://m.zg4o1577.cn/bbs/dpj-41334-1.html

作者: 戰神92    時間: 2017-5-17 15:23
謝謝分享,真的簡單易懂
作者: 浩瀚煙海    時間: 2017-12-26 19:49
你好,我想問一下為什么我的A0口沒有接信號,串口顯示器那里顯示的是20左右呢?
作者: 浩瀚煙海    時間: 2017-12-26 19:50
樓主你好,問什么我的A0口沒有接信號,卻顯示有20左右的信號?
作者: 四葉草男孩兒    時間: 2018-1-11 15:23
謝謝講解,簡單易懂
作者: 三水客    時間: 2018-8-27 11:22
圖片有點對不上
作者: rz1976    時間: 2018-9-16 22:09
什么程序能把輸入的信號在顯示屏上以信號條的方式顯示?
作者: 老愚童63    時間: 2019-6-13 08:30
Arduino:1.8.5 (Windows 7), 開發板:"Arduino/Genuino Uno"

C:\Users\Administrator\Documents\Arduino\sketch_jun13a\sketch_jun13a.ino: In function 'void loop()':

sketch_jun13a:15: error: 'voltage' was not declared in this scope

   Serial.println(voltage);

                  ^

exit status 1
'voltage' was not declared in this scope

獲取模擬信號出現這個錯誤信息是什么原因,本人剛剛接觸單片機,希望大家多幫助,謝謝

作者: ccccsss    時間: 2019-6-13 14:14
老愚童63 發表于 2019-6-13 08:30
Arduino:1.8.5 (Windows 7), 開發板:"Arduino/Genuino Uno"

C:\Users\Administrator\Documents\Arduino ...

'voltage'沒有被聲明,應該改為sensorValue,
作者: 老愚童63    時間: 2019-6-18 06:23
ccccsss 發表于 2019-6-13 14:14
'voltage'沒有被聲明,應該改為sensorValue,

謝謝,待會試一試。
作者: 93mxt    時間: 2020-4-14 01:27
請教樓主,你這模擬后在什么地方有狀態表現出來呢
作者: 阿薩達    時間: 2020-4-14 11:43
學習了!謝謝!新手上路
作者: ROBOT4896    時間: 2020-8-22 17:08
請問能不能讀取RC遙控器輸入的PWM信號呢?或者舵機測試儀的PWM信號,他們的范圍都在1000到2000多按這樣說UNO和pro mini豈不是不能讀取這些信號了嘛┭┮﹏┭┮
作者: fuyufei    時間: 2020-8-23 20:58
先學習  在實踐
作者: abc40    時間: 2021-8-1 13:13

程序的小bug:'voltage'沒有被聲明,應該改為sensorValue,
作者: haiyang201    時間: 2022-7-2 13:52
老愚童63 發表于 2019-6-13 08:30
Arduino:1.8.5 (Windows 7), 開發板:"Arduino/Genuino Uno"

C:\Users\Administrator\Documents\Arduino ...

變量沒有定義 上邊程序有點問題 變量為 voltage改為sensorValue




歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 国产9久 | 一区精品视频 | 欧美日韩一区二区视频在线观看 | 欧美性tv | 精品九九| 最新中文字幕在线 | 亚洲午夜视频 | 色接久久 | 精品一区二区三区在线观看 | chengrenzaixian| av永久免费 | 三区在线观看 | 国产精品1区2区3区 一区中文字幕 | 国产视频一区二区三区四区五区 | 午夜视频一区二区 | 伊人伊人伊人 | 国产成人福利在线 | 欧美黄色一区 | 精品国产鲁一鲁一区二区张丽 | 在线观看中文字幕视频 | 国产ts人妖另类 | 国产毛片av | 欧美日韩中文字幕在线 | 在线观看中文字幕av | 欧美极品一区二区 | 成人免费区一区二区三区 | 久久夜色精品国产 | 欧美日韩国产一区二区三区 | 国产精品日本一区二区在线播放 | 亚洲国产成人av | 亚洲一区二区三区视频 | 小早川怜子xxxxaⅴ在线 | 久久精品国产一区 | 大象视频一区二区 | 久久久久久久久国产精品 | 在线播放中文字幕 | 三级高清| 国产成人精品免高潮在线观看 | 国产视频三级 | 国产丝袜一区二区三区免费视频 | 日韩精品一区二区三区老鸭窝 |