最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Arduino觸摸傳感器教程(Touch Sensor)

2023-03-25 00:41 作者:宇宙很大腦洞很圓  | 我要投稿

【Arduino觸摸傳感器教程 Touch Sensor with Arduino Tutorial】?

圖一:由Bing Image生成的照片

什么是觸摸傳感器touch sensor?

觸摸傳感器的英文是touch sensor。 它有如下特點:

a) 可用來代替?zhèn)鹘y(tǒng)按鍵。

b) 提供了一個觸摸感應區(qū)域。當未被觸碰時,傳感器的信號引腳,signal pin,會輸出低電平。當可導電物體,比如手指,觸摸該區(qū)域時,信號引腳會輸出高電平。

c) 具有體積小、功耗低、方便使用、和穩(wěn)定性好的特點。

d) 傳感器有3個引腳:

????-?GND接地;

????- VCC接五V電源;

????- SIG代表SIGNAL信號,用以連接開發(fā)板的數(shù)字模擬口。


觸摸傳感器的工作原理?

觸摸傳感器的工作原理就像一個開關,當觸摸傳感器表面有接觸、觸摸或壓力時,它就會閉合電路,讓電流流過。當觸點松開時,傳感器的內部電路會斷開,電流會停止流動。


材料清單

- 觸摸傳感器 x1

- 面包板 x1

- 面包線 x7 (黑線x3, 紅線x2, 黃線x1, 橘線x1): 顏色不重要,但有助于理解教程

- LED 燈 x1

- 220歐姆電阻 x1

- Arduino Uno 開發(fā)板 x1

- UBS接線 x1

-? 裝有Arduino IDE的電腦 x1


電路圖

圖二:電路圖

接線細節(jié)

圖三:接線細節(jié)

代碼

const int SENSOR_PIN = 3; ? // 傳感器的信號引腳連接到開發(fā)板模擬口3

const int LED_PIN = 7; ? ? // LED燈的長腿連接到開發(fā)板模擬口7


int last_state = LOW; ? ? ?// 之前的傳感器信號狀態(tài),默認是低電平,沒被觸碰

int current_state; ? ? ? ?// 現(xiàn)在的傳感器信號狀態(tài)

bool light_on = false; ? // 燈光的狀態(tài),默認是false, 關燈狀態(tài)


void setup() {

? Serial.begin(9600); ? ? ? ? ?// 設置串口通信為 9600 位/秒

? pinMode(SENSOR_PIN, INPUT); // 設置模擬口3為輸入模式

}


void loop() {

? current_state = digitalRead(SENSOR_PIN); //讀入傳感器的電平狀態(tài)


//**假如之前的信號狀態(tài)是低,現(xiàn)在的信號狀態(tài)是高,代表傳感器的被觸碰到了

? if(last_state == LOW && current_state == HIGH){?

? ? Serial.println("touch detected by sensor"); //打印信號

? ? if (light_on == false) { ????????????????//假如現(xiàn)在是關燈狀態(tài)

? ? ? digitalWrite(LED_PIN, HIGH); //打開LED燈

? ? ? light_on = true;????????????????????????//設置燈的狀態(tài)為開

? ? } else {????????????????????????????????????? ?//假如現(xiàn)在是開燈狀態(tài)

? ? ? digitalWrite(LED_PIN, LOW);?//關掉LED燈

? ? ? light_on = false;?????????????????????//設置燈的狀態(tài)為關

? ? }

? }


? last_state = current_state; ?// 把當前的信號狀態(tài)賦值給之前的信號狀態(tài),開始另一個循環(huán)

}

**前面介紹過,傳感器沒被觸碰時,它是低電平狀態(tài),被觸碰時是高電平。如果我們只依據(jù)現(xiàn)在的狀態(tài)等于高電平作為觸碰的判斷條件,可能會產生一些問題,比如我們按住傳感器的時間過長,可能會被判斷為多次觸碰。因此,我們需要兩個條件,傳感器之前的狀態(tài)是低,和現(xiàn)在的狀態(tài)是高,來判斷它是否剛被觸碰了一次。


如何上傳代碼?

a) 點擊Arduino圖標, 打開編程IDE。一個Sketch會跳出來。

b) 點擊文件(F) >>?新建項目, 打開一個新的Sketch。

c) 復制并粘貼上面的代碼進IDE。

d) 點擊工具 >> 開發(fā)板 >>?Arduino AVR Boards >>?選擇你現(xiàn)在用的開發(fā)板。

e) 點擊工具 >> 選擇端口。(端口不一定是6,由電腦分配。)

f) 點擊打勾圖標檢查代碼。

g) 如果IDE沒有報錯,點擊右箭頭圖標上傳代碼。

h) 點擊工具 >> 打開串口監(jiān)視器, 看傳感器被觸碰時是否有正確的信息打印出來。


const 的應用

const 可以用來限定一個變量,不讓它被改變。如果強行改變這個變量,IDE會報錯。使用const在一定程度上可以提高程序的安全性和可靠性。


圖四: const的應用

參考資料:

Arduino Touch Sensor:?https://arduinogetstarted.com/tutorials/arduino-touch-sensor?

Touch Sensor Working and Its Applications:?https://www.elprocus.com/touch-sensor-working-and-its-appplications/#:~:text=Working%20Principle%20of%20Touch%20Sensor,act%20as%20an%20open%20switch.

小熊圖片:由微軟Bing生成

電路圖:用virtual Breadboard制作

音樂:The Wild and the Free, provided by Storyblocks

十年種木,一年種谷,都付兒童。老夫惟有,醒來明月,醉后清風。

Arduino觸摸傳感器教程(Touch Sensor)的評論 (共 條)

分享到微博請遵守國家法律
鸡泽县| 太白县| 太仆寺旗| 阿巴嘎旗| 祥云县| 五峰| 南靖县| 元氏县| 永平县| 庆云县| 平顶山市| 阿拉善盟| 昌平区| 禄劝| 安图县| 海淀区| 阿勒泰市| 和平县| 新和县| 吕梁市| 宁波市| 怀宁县| 凤庆县| 崇信县| 勐海县| 南涧| 万源市| 陕西省| 红原县| 隆回县| 新干县| 三河市| 哈巴河县| 彰武县| 读书| 芒康县| 长泰县| 台东市| 济源市| 乳源| 阜康市|