Adruino:傳感器及步進電機

一、傳感器*

1、溫濕度傳感器

????????DHT11它采用專用的數字采集技術和溫濕度傳感器技術,包括一個電阻式感濕元件NTC測溫元件,并與一個高性能的8位單片機連接。DATA端采用串行接口(單線雙向)與微控制器進行同步和通信。

?????????DHT11的供電電壓為3~5.5V。傳感器上電后,要等待1s以越過不穩定狀態,在此期間無需發送任何指令。電源引腳(VDD,GND)之間可增加一個100nF的電容,用于去耦濾波。

溫濕度傳感器模塊接口:

????????? VCC —電源引腳

????????? GND —電源引腳

????????? DATA? —數字引腳?

dht11類庫函數

函數解釋
DHT11.read(pin)

獲取返回狀態碼

pin:與DATA端連接的引腳。

返回:0:OK? -1:Error -2:Timeout

DHT11.humidity濕度值
DHT11.temperature溫度值

2、空間運動傳感器

3、溫度傳感器

????????DS18B20是常用的數字溫度傳感器,其輸出的是數字信號,具有體積小,硬件開銷低,抗干擾能力強,精度高的特點。測溫范圍 -55℃~+125℃,固有測溫誤差1℃。

????????DS18B20采用單總線接口方式,在與微處理器連接時僅需要一條口線即可實現微處理器與DS18B20的雙向通訊。

????????? ?單總線(One-Wire)采用單根信號線,實現數據的雙向傳輸,具有節省I/O資源、結構簡單、便于擴展和維護等特點。

二、電機

1、步進電機

步進電機是將電脈沖轉化為角位移的執行元件。當步進電機驅動器接收到一個脈沖信號時,它就驅動步進電機按設定的方向轉動一個固定的角度(即步距角。可以通過控制脈沖個數來控制角位移量,從而達到準確定位的目的,同時也可以通過控制脈沖頻率來控制電機轉動的速度和加速度,從而達到調速的目的。

?工作模式

?它的工作模式分為單四拍雙四拍四相八拍三種工作模式。

?單四拍

正轉繞組的通電順序: A→B→C→D→A→… 。

反轉繞組的通電順序: D→C→B→A→D→… 。

雙四拍

正轉繞組的通電順序: AB→BC →CD→DA→AB。

反轉繞組的通電順序: DA→CD →BC→AB→DA。

?四相八拍

正轉繞組的通電順序: A→AB→B→BC→C→CD→D→DA→A。

反轉繞組的通電順序: A→DA→D→CD→C→BC→B→AB→A。

2、直流電機

????????直流電機將直流電能轉換成機械能(直流電動機)的旋轉電機。

????????直流電機的調速方式:(1)改變電機兩端的電壓 ?(2)改變磁通量 ?(3)串聯調節電阻。電壓越大,轉速越快,改變電壓是調速常用辦法,使用脈沖寬度調制PWM方法,輸入不同占空量的方波,改變直流電機電樞兩端的電壓,即可改變直流電機轉速,實現調速功能,可以實現無級調速。

????????直流電機的換向方法:通過改變輸入電壓極性實現,即反轉電源輸入端的正負極連接方向。

?

3、舵機

三、超聲波測距*

????????HC-SR04是一種應用廣泛的超聲波測距模塊,通過I/O接口給Trig端發測試信號,最少10us的高電平信號,模塊會自動發送8個40kHz聲波,并自動檢測是否有聲波返回。若有信號返回則通過Echo端輸出高電平。(兩次高電平的間隔時間*聲音的速度)/2=距離。

HC-SR04類庫函數

函數解釋
SR04 sr04(echo,trig)類實例化。
sr04.Distance()讀取測量距離,單位cm。

案例:

#include "SR04.h"		//添加庫函數
#define TRIG_PIN 6		//定義引腳
#define ECHO_PIN 7		//定義引腳
SR04 sr04 = SR04(ECHO_PIN,TRIG_PIN);	//構造函數
long a;
void setup() {Serial.begin(9600);		//定義串口波特率Serial.println("Example written by Coloz From Arduin.CN");delay(1000);
}
void loop() {a=sr04.Distance(); 		//讀取障礙物和SR04的距離Serial.print(a);      		//送串口監視器顯示Serial.println("cm");delay(1000);
}

四、蜂鳴器

????????蜂鳴器是一種一體化結構的電子訊響器,采用直流電壓供電,廣泛應用于計算機、打印機、復印機、報警器、電子玩具、汽車電子設備、電話機、定時器等電子產品中作 發聲器件。

????????有源蜂鳴器內部有振蕩電路,能將恒定的直流電轉化成一定頻率的脈沖信號,一旦供電,蜂鳴器就會發出聲音。 ? ?

????????無源蜂鳴器內部不帶震蕩源,需要加方波信號PWM能夠發聲。頻率不同,震蕩出來的音調也不同。

int buzzer = 8;			//設置控制蜂鳴器的數字引腳 
void setup() { pinMode(buzzer,OUTPUT); 	//設置數字引腳為輸出模式
} 
void loop() { unsigned char i, j;    		//定義變量 for(i=0; i<80; i++)  {    		//輸出一個頻率的聲音 digitalWrite(buzzer,HIGH);  	//發聲 delay(1);                       	//延時1ms digitalWrite(buzzer,LOW);  	//不發聲 delay(1);      }                 	//延時1 ms for(j=0; j<100; j++) {         	//輸出另一個頻率的聲音 digitalWrite(buzzer,HIGH);  	//發聲 delay(2);                     		//延時2ms digitalWrite(buzzer,LOW); 	//不發聲 delay(2); }                  		//延時2ms 
} 

五、SD卡讀寫模塊

????????SD卡支持兩種總線方式:SD方式SPI方式。其中SD方式采用6線制,使用CLK、CMD、DAT0~DAT3進行數據通信(PC等設備使用)。而SPI方式采用4線制,使用CS、CLK、DataIn和DataOut進行數據通信。SD方式的數據傳輸速度比SPI方式要快,但采用單片機對SD卡進行讀寫時一般都采用SPI模式。

?????????Arduino的I/O接口輸出5V高電平,SD卡的工作電壓是3.3V故需要通過電平轉換才可與Arduino連接,可以使用SD讀寫模塊與Arduino連接。

?

引腳編號

SPI模式

名稱

類型

描述

1

CS

I

片選

2

DI

I

數據輸入

3

VSS1

S

電源地

4

VDD

S

電源

5

SCLK

I

時鐘

6

VSS2

S

電源地

7

DO

O或PP

數據輸出

8

X

9

X

SD卡類庫函數

(1)name()

????????功能:返回文件名。

????????語法格式:file.name()。

????????參數說明:file:File類的一個實例 ( SD.open()的返回值)。

????????返回值:文件名。

(2)available()

????????功能:檢查文件的字節數,available()繼承了流實用類。

????????語法格式: file.available()。

????????參數說明:file:File類的一個實例 ( SD.open()的返回值)。

????????返回值:文件的字節數,int類型。?

(3)close()

????????功能:關閉文件。

????????語法格式:file.close()。

????????參數說明:file:File類的一個實例 ( SD.open()的返回值)。

????????返回值:無。

(4)flush()

????????功能:確保寫到文件里的字節存儲到SD卡上。當文件關閉時,自動完成。

????????語法格式:file.flush()。

????????參數說明:file:File類的一個實例 ( SD.open()的返回值)。

????????返回值:無。

(5)peek()

????????功能:從文件中讀取下一個字節,連續調用該函數將返回同一個值。peek()繼承了流實用類。

????????語法格式:file.peek()。

????????參數說明:file:File類的一個實例 ( SD.open()的返回值)。

????????返回值:下一個字節或字符,若無則返回-1。

(6)position()

????????功能:獲取文件的當前位置(將要讀寫的下一個字節的位置)。

????????語法格式:file.position()。

????????參數說明:file:File類的一個實例 ( SD.open()的返回值)。

????????返回值:文件位置,unsigned long類型。

(7)print()

????????功能:輸出數據到以寫方式打開的文件。按ASCII形式輸出數字(例如:123按'1', '2', '3'輸出)。

????????語法格式:file.print(data) 和file.print(data, BASE)。

????????參數說明:file:File類的一個實例 ( SD.open()的返回值)。 data:輸出數據,char、 byte、 int、 long、或 string類型。 BASE (可選參數):輸出數據的進制:BIN是二進制;DEC是十進制;OCT 是八進制;HEX是十六進制。

????????返回值:byte:輸出的字節數,讀取該數據是可選操作

六、無線射頻識別RFID模塊

????????射頻識別技術通過無線電信號識別特定的目標并讀寫相關數據,常用的有低頻30kHz~300kHz,高頻3MHz~30MHz,超高頻3GHz~30GHz等微波技術。RFID讀寫器有移動式和固定式兩種。

????????一套完整的RFID系統由閱讀器(Reader)電子標簽(TAG)也就是所謂的應答器(Transponder)及應用軟件三個部分組成。

RFID的類庫函數

函數解釋
RFID rfid(SS,RST)類實例化對象。
rfid.isCard()尋卡。
rfid.readCardSerial()讀取卡的串口信息,返回卡的4個字節和一個字節校驗碼序列號到字符數組serNum。
rfid.Init()初始化。
rfid.auth(authMode,BlockAddr,SectorKay,serNum)

驗證卡片密碼。

unsigned char auth:密鑰驗證模式

unsigned char* SectorKey:扇區密碼

rfid.read(blockAddr,recvData)

讀數據塊。

unsigned char blockAddr:塊地址

unsigned char* recvData:讀出的數據塊

rfid.write(blockAddr,writeData)

寫數據快。

unsigned char blockAddr:塊地址

unsigned char* writeData:寫入16字節數據到塊

rfid.selectTag(serNum)

選擇卡片并讀取卡的存儲器容量。

unsigned char* serNum:卡的序列號。

rfid.Halt()命令卡片進入休眠狀態。

七、繼電器

?????????繼電器(英文名稱:relay)是電控制器件,是一種能把小信號(輸入信號)轉換成高電壓大功率控制信號(輸出信號)的一種“自動開關”。繼電器能控制多個對象和回路,能控制遠距離對象,故繼電器在自動控制及遠程控制領域有較廣泛的應用。例如控制電燈、電冰箱、洗衣機、車庫門等。按繼電器的工作原理或結構特征分類,繼電器可分為:電磁繼電器固體繼電器舌簧繼電器和時間繼電器等。按繼電器的外形尺寸可分為:微型繼電器超小型微型繼電器小型繼電器等。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/77299.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/77299.shtml
英文地址,請注明出處:http://en.pswp.cn/web/77299.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

高中數學聯賽模擬試題精選第18套幾何題

在 △ A B C \triangle ABC △ABC 中, A B < A C AB< AC AB<AC, 點 K K K, L L L, M M M 分別是邊 B C BC BC, C A C A CA, A B AB AB 的中點. △ A B C \triangle ABC △ABC 的內切圓圓心為 I I I, 且與邊 B C BC BC 相切于點 D D D. 直線 l l l 經過線段…

ubantu18.04(Hadoop3.1.3)之Spark安裝和編程實踐

說明&#xff1a;本文圖片較多&#xff0c;耐心等待加載。&#xff08;建議用電腦&#xff09; 注意所有打開的文件都要記得保存。 第一步&#xff1a;準備工作 本文是在之前Hadoop搭建完集群環境后繼續進行的&#xff0c;因此需要讀者完成我之前教程的所有操作。 以下所有操…

DCDC芯片,boost升壓電路設計,MT3608 芯片深度解析:從架構到設計的全維度技術手冊

一、硬件架構解析:電流模式升壓 converter 的核心設計 (一)電路拓撲與核心組件 MT3608 采用恒定頻率峰值電流模式升壓(Boost)轉換器架構,核心由以下模塊構成: 集成功率 MOSFET 內置 80mΩ 導通電阻的 N 溝道 MOSFET,漏極(Drain)對應引腳 SW,源極(Source)內部接…

Java 日志:掌握本地與網絡日志技術

日志記錄是軟件開發中不可或缺的一部分&#xff0c;它為開發者提供了洞察應用程序行為、診斷問題和監控性能的手段。在 Java 生態系統中&#xff0c;日志框架如 Java Util Logging (JUL)、Log4j 和 Simple Logging Facade for Java (SLF4J) 提供了豐富的功能。然而&#xff0c;…

上位機知識篇---時鐘分頻

文章目錄 前言 前言 本文簡單介紹了一下時鐘分頻。時鐘分頻&#xff08;Clock Division&#xff09;是數字電路設計中常見的技術&#xff0c;用于將高頻時鐘信號轉換為較低頻率的時鐘信號&#xff0c;以滿足不同模塊的時序需求。它在處理器、FPGA、SoC&#xff08;片上系統&am…

推薦幾個免費提取音視頻文案的工具(SRT格式、通義千問、飛書妙記、VideoCaptioner、AsrTools)

文章目錄 1. 前言2. SRT格式2.1 SRT 格式的特點2.2 SRT 文件的組成2.3 SRT 文件示例 3. 通義千問3.1 官網3.2 上傳音視頻文件3.3 導出文案 4. 飛書妙記4.1 官網4.2 上傳音視頻文件4.3 導出文案4.4 缺點 5. VideoCaptioner5.1 GitHub地址5.2 下載5.2.1 通過GitHub下載5.2.2 通過…

Linux深度探索:進程管理與系統架構

1.馮諾依曼體系結構 我們常見的計算機&#xff0c;如筆記本。我們不常見的計算機&#xff0c;如服務器&#xff0c;大部分都遵守馮諾依曼體系。 截至目前&#xff0c;我們所認識的計算機&#xff0c;都是由?個個的硬件組件組成。 輸入設備&#xff1a;鍵盤&#xff0c;鼠標…

觀察者模式 (Observer Pattern)

觀察者模式(Observer Pattern)是一種行為型設計模式。它定義了一種一對多的依賴關系,讓多個觀察者對象同時監聽某一個主題對象。當主題對象的狀態發生變化時,會自動通知所有觀察者對象,使它們能夠自動更新自己的狀態。 一、基礎 1. 意圖 核心目的:定義對象間的一種一對…

Network.framework 的引入,不是為了取代 URLSession

Network.framework 的引入&#xff0c;不是為了取代 URLSession 如果你感覺 Network.framework 的引入, 可能是為了取代 URLSession, 那你就大錯特錯了&#xff01;這里需要非常準確地區分一下&#xff1a; &#x1f535; Network.framework 不是為了取代 URLSession。 &…

Redis 數據分片三大方案深度解析與 Java 實戰

Redis 數據分片是將數據分散存儲在多個 Redis 實例上的技術&#xff0c;以解決單個 Redis 實例在存儲容量、性能和可用性上的限制。常見的 Redis 數據分片方案包括客戶端分片、代理分片和Redis Cluster&#xff08;集群分片&#xff09;&#xff0c;以下為你詳細介紹&#xff1…

FreeBSD可以不經過windows服務器訪問windows機器上的共享文件嗎?

答案是&#xff1a;當然可以&#xff01; 使用sharity-light 軟件 可以使用sharity-light 軟件&#xff0c;直接不用安裝samba等軟件&#xff0c;直接訪問windows機器上的共享文件。 但是可惜的是&#xff0c;sharity-light在FreeBSD的ports里棄用了。看來是從FreeBSD 8 就開…

主流 LLM 部署框架

主流 LLM 部署框架 框架主要特點適用場景vLLM- 超快推理&#xff08;高吞吐&#xff09; - 動態批處理 - 支持 HuggingFace Transformer - 支持 PagedAttention高并發、低延遲在線推理TGI (Text Generation Inference)- Huggingface官方出品 - 多模型管理 - 支持動態量化 - 支持…

在 Vue 3 setup() 函數中使用 TypeScript 處理 null 和 undefined 的最佳實踐

在 Vue 3 中使用 setup() 函數和 TypeScript 時&#xff0c;null 和 undefined 是兩個需要特別關注的類型。雖然它們看起來都表示“沒有值”&#xff0c;但它們在 JavaScript 和 TypeScript 中有著不同的含義和使用場景。如果不小心處理它們&#xff0c;可能會導致潛在的 bug 或…

在 UniApp 中獲取當前頁面地址

在 UniApp 中獲取當前頁面地址&#xff0c;可以通過以下步驟實現&#xff1a; 方法說明&#xff1a; 獲取當前頁面實例&#xff1a;使用 getCurrentPages() 獲取頁面棧數組&#xff0c;最后一個元素即為當前頁面實例。 提取頁面路徑和參數&#xff1a;從頁面實例的 route 屬性…

【華為】防火墻雙擊熱備-之-主備模式-單外網線路-分享

FW1和FW2的業務接口都工作在三層&#xff0c;上行連接二層交換機。上行交換機連接運營商的接入點&#xff0c;運營商為企業分配的IP地址為100.100.100.2。現在希望FW1和FW2以主備備份方式工作。正常情況下&#xff0c;流量通過FW1轉發&#xff1b;當FW1出現故障時&#xff0c;流…

crossOriginLoading使用說明

1. 說明 此配置用于控制 Webpack 動態加載的代碼塊&#xff08;chunk&#xff09;&#xff08;例如代碼分割或懶加載的模塊&#xff09;在跨域&#xff08;不同域名&#xff09;加載時的行為。它通過為動態生成的 <script>標簽添加 crossorigin 屬性&#xff0c;確保符合…

windows中安裝VMware Workstation Pro虛擬機和ubuntu

目錄 一、安裝 VMware Workstation Pro 虛擬機 1、官網下載VMware Workstation Pro 1.1 選中 "VMware Workstation Pro for PC" 的 "DOWNLOAD NOW" 1.2 跳轉到broadcom登錄頁面 1.3 注冊賬號 1.4 輸入給郵箱收到的驗證碼信息&#xff0c;然后點擊”Verify…

如何快速輕松地恢復未保存的 Word 文檔:簡短指南

文字處理器已經存在了幾十年&#xff0c;其中許多已經變得非常擅長防止問題。丟失未保存的數據是一個常見問題&#xff0c;因此辦公軟件通常帶有恢復文件的方法。在本文中&#xff0c;我們將介紹如何恢復 Word 文檔&#xff0c;即使您尚未保存它。 確保數據安全的最佳方法是保…

JavaScript原生實現簡單虛擬列表(列表不定高)

本文首發在我的個人博客上&#xff1a;JavaScript原生實現簡單虛擬列表(列表不定高)https://www.brandhuang.com/article/1745637125513 前言 之前實現了一個定高版本的虛擬列表&#xff0c;今天在定高版本的基礎上稍作調整&#xff0c;來實現不定高版本&#xff0c;之前的版本…

redis數據類型-位域bitfield

redis數據類型-位域bitfield 文檔 redis單機安裝redis常用的五種數據類型redis數據類型-位圖bitmapredis數據類型-基數統計HyperLogLogredis數據類型-地理空間GEOredis數據類型-流Stream 官方文檔 官網操作命令指南頁面&#xff1a;https://redis.io/docs/latest/commands/…