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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 43601|回復: 15
打印 上一主題 下一主題
收起左側

Arduino教程-獲取輸入模擬信號

  [復制鏈接]
跳轉到指定樓層
樓主
Hi,大家好!經過上一次的學習,我們知道了如何獲取外部電器元件輸入的數字信號。這次我們將一起學習如何獲取外部電器元件輸入的模擬信號,也即連續信號。
和上一次同理,這次我們使用的元器件換成了一個模擬信號輸入器件,使用旋轉電位計代替上一次的按鍵開關。道理都是相通的,廢話不多說,讓我們直奔主題!
首先還是準備階段,包括硬件和軟件兩方面。
硬件方面
圖片來源:Arduino 電路配件
具體包括如下:
  • Arduino UNO電路板(1塊)
  • 旋轉電位計(1個)
  • 面包線(3根)
一共只有三種部件,比上一次還少!這次多了一個旋轉電位計,其實就是我們平時常見的旋轉開關,此開關可以發出連續的模擬信號。其他部件不必多說。
軟件方面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://www.zg4o1577.cn/bbs/dpj-41334-1.html
Arduino教程-開篇:http://www.zg4o1577.cn/bbs/dpj-41335-1.html
Arduino教程-點亮LED神燈:http://www.zg4o1577.cn/bbs/dpj-41336-1.html
Arduino教程-讓LED神燈閃爍:http://www.zg4o1577.cn/bbs/dpj-41337-1.html
Arduino教程-讓LED神燈亮度漸變:http://www.zg4o1577.cn/bbs/dpj-41338-1.html
Arduino教程-獲取輸入數字信號:http://www.zg4o1577.cn/bbs/dpj-41339-1.html
Arduino教程-獲取輸入模擬信號:http://www.zg4o1577.cn/bbs/dpj-41340-1.html
Arduino教程-另一種時間延遲:http://www.zg4o1577.cn/bbs/dpj-41331-1.html
Arduino教程-按鍵開關:http://www.zg4o1577.cn/bbs/dpj-41341-1.html
Arduino教程-停止抖動!:http://www.zg4o1577.cn/bbs/dpj-41333-1.html
Arduino教程-拋棄外部電阻!:http://www.zg4o1577.cn/bbs/dpj-41332-1.html
Arduino教程-用按鍵開關計數:http://www.zg4o1577.cn/bbs/dpj-41330-1.html

………后續持續更新中請打開:http://www.zg4o1577.cn/bbs/dpj-41334-1.html
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:201592 發表于 2017-5-17 15:23 | 只看該作者
謝謝分享,真的簡單易懂
回復

使用道具 舉報

板凳
ID:267323 發表于 2017-12-26 19:49 | 只看該作者
你好,我想問一下為什么我的A0口沒有接信號,串口顯示器那里顯示的是20左右呢?
回復

使用道具 舉報

地板
ID:267323 發表于 2017-12-26 19:50 | 只看該作者
樓主你好,問什么我的A0口沒有接信號,卻顯示有20左右的信號?
回復

使用道具 舉報

5#
ID:274779 發表于 2018-1-11 15:23 | 只看該作者
謝謝講解,簡單易懂
回復

使用道具 舉報

6#
ID:53784 發表于 2018-8-27 11:22 | 只看該作者
圖片有點對不上
回復

使用道具 舉報

7#
ID:379680 發表于 2018-9-16 22:09 | 只看該作者
什么程序能把輸入的信號在顯示屏上以信號條的方式顯示?
回復

使用道具 舉報

8#
ID:491875 發表于 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

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

使用道具 舉報

9#
ID:452474 發表于 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,
回復

使用道具 舉報

10#
ID:491875 發表于 2019-6-18 06:23 | 只看該作者
ccccsss 發表于 2019-6-13 14:14
'voltage'沒有被聲明,應該改為sensorValue,

謝謝,待會試一試。
回復

使用道具 舉報

11#
ID:64053 發表于 2020-4-14 01:27 | 只看該作者
請教樓主,你這模擬后在什么地方有狀態表現出來呢
回復

使用道具 舉報

12#
ID:728839 發表于 2020-4-14 11:43 | 只看該作者
學習了!謝謝!新手上路
回復

使用道具 舉報

13#
ID:815520 發表于 2020-8-22 17:08 | 只看該作者
請問能不能讀取RC遙控器輸入的PWM信號呢?或者舵機測試儀的PWM信號,他們的范圍都在1000到2000多按這樣說UNO和pro mini豈不是不能讀取這些信號了嘛┭┮﹏┭┮
回復

使用道具 舉報

14#
ID:677036 發表于 2020-8-23 20:58 | 只看該作者
先學習  在實踐
回復

使用道具 舉報

15#
ID:950510 發表于 2021-8-1 13:13 | 只看該作者

程序的小bug:'voltage'沒有被聲明,應該改為sensorValue,
回復

使用道具 舉報

16#
ID:1023753 發表于 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
回復

使用道具 舉報

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

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日韩精品在线免费 | 国产欧美日韩综合精品一区二区 | 亚洲欧美一区二区在线观看 | 午夜天堂 | 欧美专区在线 | 999免费网站| 拍拍无遮挡人做人爱视频免费观看 | 精品国产一区二区三区久久久四川 | 亚洲欧美日韩中文字幕一区二区三区 | 91视频88av | 日韩在线视频免费观看 | 国产精品久久9 | 中文字字幕一区二区三区四区五区 | 午夜免费福利片 | 91av在线看 | www久久爱 | 日韩欧美在线免费观看 | 亚洲三级av| 亚洲一区视频在线 | 国产一区二 | 国产精品一区二区三区在线 | 久久成人精品视频 | 日韩国产免费 | 国产精品久久久久一区二区三区 | 国产精品视频网站 | 天堂av在线影院 | 精品一区二区三区四区 | 99精品国产一区二区三区 | 精品一区二区三 | 精品国产一区二区三区四区在线 | 国产精产国品一二三产区视频 | 国产毛片久久久久久久久春天 | 国产成人精品久久二区二区91 | 成人精品 | 一区二区三区国产 | 亚洲欧美激情网 | 日韩精品一区二区在线 | 成人av播放 | 日韩欧美在线播放 | 91亚洲精华国产 | 国产sm主人调教女m视频 |