当前位置: 首页 > news >正文

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)是电控制器件,是一种能把小信号(输入信号)转换成高电压大功率控制信号(输出信号)的一种“自动开关”。继电器能控制多个对象和回路,能控制远距离对象,故继电器在自动控制及远程控制领域有较广泛的应用。例如控制电灯、电冰箱、洗衣机、车库门等。按继电器的工作原理或结构特征分类,继电器可分为:电磁继电器固体继电器舌簧继电器和时间继电器等。按继电器的外形尺寸可分为:微型继电器超小型微型继电器小型继电器等。

相关文章:

  • 我们分析前端生活。
  • 驱动开发硬核特训 · Day 21(上篇加强版):深入理解子系统机制与实战初探
  • 微服务架构下 MySQL 大表分库分表方案
  • 【Linux网络】构建与优化HTTP请求处理 - HttpRequest从理解到实现
  • std::mutex底层实现原理
  • Spring Boot集成RocketMQ
  • Win7 SSL证书问题
  • 【C++11】列表初始化
  • 第34课 常用快捷操作——按“空格键”旋转图元
  • 使用 binlog2sql 闪回 MySQL8 数据
  • 高精度运算(string函数)
  • 生成式AI全栈入侵:当GPT-4开始自动编写你的Next.js路由时,人类开发者该如何重新定义存在价值?
  • Java多态终极指南:从基础到高级应用
  • 前端技术个人求职简历模板
  • 股指期货成交量是单边还是双边?
  • NVIDIA GPU 计算能力与 COLMAP 编译配置指南【2025最新版!!!】
  • 【AI提示词】战略顾问
  • 侵水防触电的原理是什么? 侵水防触电算先进技术吗?-优雅草卓伊凡
  • 计算机视觉——对比YOLOv12、YOLOv11、和基于Darknet的YOLOv7的微调对比
  • mmap详解
  • 持续更新丨伊朗内政部长:港口爆炸已致8人死亡750人受伤
  • 在县中,我看到“走出去”的渴望与“留下来”的惯性
  • 今年一季度全国结婚登记181万对,较去年同期减少15.9万对
  • 一图读懂|上海海关公布一季度数据:钢材出口增长超143%
  • 因商标近似李小龙形象被裁定无效,真功夫起诉国家知产局,法院判了
  • “80后”李岩已任安徽安庆市领导