找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
楼主: eagler8
打印 上一主题 下一主题
收起左侧

【Arduino】108种传感器模块系列实验(资料+代码+图形+仿真)

  [复制链接]
601#
ID:513258 发表于 2019-6-25 19:51 | 只看该作者
检测到超标酒精浓度(大于400),报警灯亮




回复

使用道具 举报

602#
ID:513258 发表于 2019-6-25 20:26 | 只看该作者
/*
【Arduino】37种传感器模块系列实验(37)
实验三十七:MQ-3酒精乙醇传感器模块(半导体式表面电阻控制型)之二
*/

int Buzzer=8;    // 定义数字口8 为Buzzer (蜂鸣器)

void setup()
{
  pinMode(Buzzer,OUTPUT);   // 定义数字口8 为输出模式
  Serial.begin(9600);                                                                                                                                    
}

void loop()
{
  int val;
  val=analogRead(A0);
  Serial.println(val,DEC);
  while(val<400)  
     {
        digitalWrite(Buzzer,LOW); //蜂鸣器不响
        val=analogRead(A0);   
        Serial.println(val,DEC);
      }
  digitalWrite(Buzzer,HIGH);  // 蜂鸣器响
}

回复

使用道具 举报

603#
ID:513258 发表于 2019-6-26 07:45 | 只看该作者
实验三十八:joystick双轴XY按键摇杆模块(PS2游戏航模控制杆)

摇杆电位器
安装了两个10K高精度电位器和一个按键开关,功率0.015W,最高使用电压100V A.C,能垂直位置自动复位,用于控制键盘等, 可自由地控制方向,直观地监控机器的运转状况。




回复

使用道具 举报

604#
ID:513258 发表于 2019-6-26 07:57 | 只看该作者
一、MECHANICAL CHARACTERISTIC 机械特性
1、Operating force of lever 摇杆作动力 :120±70 gf
2、Operating angle 操作角度:26° Max

二、ELECTRICAL CHARACTERISTIC 电气特性
1、Rating power 额定功率:0.0125W
2、Maximum operating voltage最高使用电压:AC 50V DC 5V
3、Voltage divider error 分压误差:44%~56%
4、Insulation resistance 绝缘阻抗:100M? 1 Minute at DC 250V
5、Dielectric voltage 耐电压:1 Minute at AC 250V

三、SWITCH CHARACTERISTICS 开关规格
1、Operating force 开关按压力:740±300gf
2、Contact resistance 接触阻抗:100mΩ Max
3、Rating power 额定功率:DC12V 50mA

四、ENDURANCE CHARACTERISTIC 耐久特性
1、Rotational life 旋转寿命:2000,000 cycles Min
2、Push operating life 开关按压寿命:1,000,000 cycles Min



回复

使用道具 举报

605#
ID:513258 发表于 2019-6-26 08:12 | 只看该作者

回复

使用道具 举报

606#
ID:513258 发表于 2019-6-26 08:12 | 只看该作者

回复

使用道具 举报

607#
ID:513258 发表于 2019-6-26 08:43 | 只看该作者
工作原理
摇杆电位器在直流电路中作为电流调节使用时,将有电流通过摇杆电位器的滑动臂,此时由于阳极氧化的原因会导致电阻值异常增加。在这种情况下,建议将连接电阻体的端子接负极,滑动臂接正极。如果直流电流直接通过摇杆电位器,摇杆电位器的阳极就会受到氧化损伤,从而让摇杆电位器的阻抗变大,因此最好是将电流的负极接在跟碳膜片接触的端子上,正极接在跟刷子(摇杆电位器接触片)的端子上。摇杆电位器作为可变电阻器时,建议作调整电压的分压器使用,同时摇杆电位器的负载电阻RL应不小于摇杆电位器公称阻值RT的10倍。在稳压器中用来调节输出电压,故设计摇杆电位器应满中顺时针调节时输出电压升高,反时针调节器节时输出电压降低;在可调恒流充电器中摇杆电位器用来调节充电电流折大小,设计摇杆电位器时应满中顺时针调节时,电流增大。IC座,设计印刷板图时,在使用IC座的场合下,一定要特别注意IC座上定位槽放置的方位是否正确,并注意各个IC脚位是否正确。




回复

使用道具 举报

608#
ID:513258 发表于 2019-6-26 08:49 | 只看该作者
双轴XY按键摇杆模块
由两个滑动变阻器和一个按键组成,当拨动摇杆时,滑动变阻器的阻值就发生变化,对应的X/Y电压值也随之变化,而用力按下摇杆就会触发按键按下,对应的SW信号变为低电平。




回复

使用道具 举报

609#
ID:513258 发表于 2019-6-26 09:10 | 只看该作者
摇杆双联电位器实拍:通常是将两个规格相同的电位器装在同摇杆电位器结构一转轴上,调节转轴时,两个电位器的滑动触点异步转动。这个结构被称为同轴异步双联动的电位器。



回复

使用道具 举报

610#
ID:513258 发表于 2019-6-26 09:26 | 只看该作者
还有一位高精度按钮开关



回复

使用道具 举报

611#
ID:513258 发表于 2019-6-26 09:39 | 只看该作者
X和Y轴,一个按键
2.54mm排针接口,接线方便,通用性强
PCB尺寸(mm):24X32




回复

使用道具 举报

612#
ID:513258 发表于 2019-6-26 09:40 | 只看该作者
X和Y轴,一个按键
2.54mm排针接口,接线方便,通用性强
PCB尺寸(mm):24X32




回复

使用道具 举报

613#
ID:513258 发表于 2019-6-26 09:47 | 只看该作者
工作原理
模块特设二路模拟输出和一路数字输出接口,输出值分别对应(X,Y)双轴偏移量,其类型为模拟量;按键表示用户是否在Z轴上按下,其类型为数字开关量。模块集成电源指示灯,可显示工作状态;坐标标识符清晰简明、准确定位。为了更加方便地配合扩展板等标准接口,在设计上把 X,Y轴的电路都单独引出,以控制输入这个操纵杆模块的 x、y的值以及在特定的值下实现某种功能。




回复

使用道具 举报

614#
ID:513258 发表于 2019-6-26 09:57 | 只看该作者
引脚说明
名称        描述
GND        地
5V        电源5V
SW        按键(数字量)
VRX        X轴 (模拟量)
VRY        Y轴 (模拟量)




回复

使用道具 举报

615#
ID:513258 发表于 2019-6-26 10:01 | 只看该作者
模块性能
1.输入电压范围:直流3.3V 至 5V。
2.输出信号:模块特设二路模拟输出和一路数字输出接口,输出值分别对应(X,Y)双轴偏移量,其类型为模拟量;按键表示用户是否在Z轴上按下,其类型为数字开关量。
3.可以通过Arduino控制器编程,传感器扩展板插接,完成具有创意性遥控互动作品。
4.十字摇杆为一个双向的10K电阻器,随着摇杆方向不同,抽头的阻值随着变化。本模块使用5V供电,原始状态下X,Y读出电压为2.5V左右,当随箭头方向按下,读出电压值随着增加,最大到5V;箭头相反方向按下,读出电压值减少,最小为0V。




回复

使用道具 举报

616#
ID:513258 发表于 2019-6-26 10:23 | 只看该作者
一些应用场合









回复

使用道具 举报

617#
ID:513258 发表于 2019-6-26 10:29 | 只看该作者

回复

使用道具 举报

618#
ID:513258 发表于 2019-6-26 10:50 | 只看该作者
接线方式
GND、VCC(+5V)这两个不用说了。
VRx,VRy (X、Y轴)为模拟输入信号,连接到模拟IO口A0~A7。
VRx,VRy 的值:从 0 ~ 1023 分别代表 左~右,上~下。中间值为512。
SW (Z轴)是数字输入信号,连接到数字端口,并启用上拉电阻。
SW 的值:1代表未按下,0代表按下。

实验这里VRx接A0,VRy接A1,SW接D6




回复

使用道具 举报

619#
ID:513258 发表于 2019-6-26 11:04 | 只看该作者
  1. /*
  2. 【Arduino】37种传感器模块系列实验(38)
  3. 实验三十八:joystick双轴XY按键摇杆模块(PS2游戏航模控制杆)
  4. */

  5. int value = 0;

  6. void setup()
  7. {
  8. pinMode(6, INPUT_PULLUP);
  9. Serial.begin(9600);
  10. }

  11. void loop()
  12. {
  13. value = analogRead(A0);
  14. Serial.print("X:");
  15. Serial.print(value, DEC);

  16. value = analogRead(A1);
  17. Serial.print(" | Y:");
  18. Serial.print(value, DEC);

  19. value = digitalRead(6);
  20. Serial.print(" | Z: ");
  21. Serial.println(value, DEC);
  22. delay(1000);
  23. }
复制代码


回复

使用道具 举报

620#
ID:513258 发表于 2019-6-26 11:08 | 只看该作者
初始状态



回复

使用道具 举报

621#
ID:513258 发表于 2019-6-26 11:13 | 只看该作者

回复

使用道具 举报

622#
ID:513258 发表于 2019-6-26 11:40 | 只看该作者
  1. /*
  2. 【Arduino】37种传感器模块系列实验(38)
  3. 实验三十八:joystick双轴XY按键摇杆模块(PS2游戏航模控制杆)之二
  4. */

  5. int JoyStick_X = A0;
  6. int JoyStick_Y = A1;
  7. int JoyStick_Z = 6;

  8. void setup()
  9. {
  10.   pinMode(JoyStick_Z, INPUT);
  11.   Serial.begin(9600);
  12. }
  13. void loop()
  14. {
  15.   int x,y,z;
  16.   x=analogRead(JoyStick_X);
  17.   y=analogRead(JoyStick_Y);
  18.   z=digitalRead(JoyStick_Z);
  19.   Serial.print(x ,DEC);
  20.   Serial.print(",");
  21.   Serial.print(y ,DEC);
  22.   Serial.print(",");
  23.   Serial.println(z ,DEC);
  24.   delay(500);
  25. }
复制代码


回复

使用道具 举报

623#
ID:513258 发表于 2019-6-26 12:03 | 只看该作者

回复

使用道具 举报

624#
ID:513258 发表于 2019-6-26 12:04 | 只看该作者

回复

使用道具 举报

625#
ID:513258 发表于 2019-6-26 13:15 | 只看该作者
实验三十九:DS18B20单总线数字温度传感器模块

DS18B20
是世界第一片支持"一线总线"接口的温度传感器,一线总线独特而且经济的特点,使用户可轻松组建传感器网络,为测量系统构建系统引入全新要概念。




回复

使用道具 举报

626#
ID:513258 发表于 2019-6-27 09:17 | 只看该作者

回复

使用道具 举报

627#
ID:513258 发表于 2019-6-27 09:33 | 只看该作者



回复

使用道具 举报

628#
ID:513258 发表于 2019-6-27 13:37 | 只看该作者
本帖最后由 eagler8 于 2019-6-27 16:16 编辑

DS18B20 的内部结构主要由64 位ROM、温度灵敏元件、内部存储器和配置寄存器4 部分组成,如上图所示。
( 1) 64 位ROM。它的内容是64 位序列号,它可以被看作是该DS18B20 的地址序列码,其作用是使每个DS18B20 都各不相同,这样就可以实现一根总线上挂接多个DS18B20 的目的。
( 2) 温度灵敏元件。它完成对温度的测量,测量后的结果存储在2 个8 b 的温度寄存器中。
( 3) 内部存储器。内部存储器包括一个高速暂存RAM 和一个非易失性的可电擦除的E2 PROM,后者存放高温度和低温度触发器TH、TL 以及配置寄存器。


回复

使用道具 举报

629#
ID:513258 发表于 2019-6-27 13:45 | 只看该作者
测温原理
用一个高温度系数的振荡器确定一个门周期,内部计数器在这个门周期内对一个低温度系数的振荡器的脉冲进行计数来得到温度值。计数器被预置到对应于-55摄氏度的一个值。如果计数器在门周期结束前到达0,则温度寄存器(同样初始化到-55摄氏度)的值增加,表明所测温度大于-55摄氏度。

1。温度系数振荡器是指一种振荡器,它的振荡频率与温度之间有一个特定的关系,即不同的温度对应不同的振荡频率。反之,测量出振荡器的输出频率,就可测量出温度值。
2.高温度系数振荡器:它的振荡频率受温度的影响很大,温度稍有变化,频率就会变化很多,即对温度敏感,多用于温度传感器。
3.低温度系数振荡器:它的振荡频率受温度的影响很小,即使温度变化很大,它的频率也基本不变。

  同时,计数器被复位到一个值,这个值由斜坡式累加器电路确定,斜坡式累加器电路用来补偿感温振荡器的抛物线特性。然后计数器又开始计数直到 0,如果门周期仍未结束,将重复这一过程。 斜坡式累加器用来补偿感温振荡器的非线性,以期在测温时获得比较高的分辨力。这是通过改变计数器对温度每增加一度所需计数的的值来实现的。因此,要想获得所需的分辨力,必须同时知道在给定温度下计数器的值和每一度的计数值。




回复

使用道具 举报

630#
ID:513258 发表于 2019-6-27 15:54 | 只看该作者
主要特性
(1) 独特的单线接口方式,与单片机连接时仅需要一条口线;
(2) 测温范围为- 55~ + 125℃,在- 10~ + 85℃范围内精度为±0. 5 ℃;
(3) 通过编程可实现9~ 12 位的数字读数方式;
(4) 用户可自设定非易失性的报警上下限值;
(5) 外围电路简单,使用时不需要外围元件,可用数据总线供电,电压范围为3. 0 ~ 5. 5 V 无需备用电源;
(6)无需外部元件,独特的一线接口,电源和信号混合在一起;
(7)每个芯片唯一编码,支持联网寻址,零功耗等待;
(8)DS18B20 有TO 92、SOIC 及CSP 封装,其中VDD 为外接供电电源输入端,GND 为公共地,DQ为数字信号输出端;
(9)适用于冷冻库,粮仓,储罐,GPS卫星定位系统,电讯机房,电力机房,电缆线槽等测温和控制领域。



回复

使用道具 举报

631#
ID:513258 发表于 2019-6-27 16:07 | 只看该作者
部件描述
存储器---DS18B20的存储器包括高速暂存器RAM和可电擦除RAM,可电擦除RAM又包括温度触发器TH和TL,以及一个配置寄存器。存储器能完整的确定一线端口的通讯,数字开始用写寄存器的命令写进寄存器,接着也可以用读寄存器的命令来确认这些数字。当确认以后就可以用复制寄存器的命令来将这些数字转移到可电擦除RAM中。当修改过寄存器中的数时,这个过程能确保数字的完整性。高速暂存器RAM是由8个字节的存储器组成;用读寄存器的命令能读出第九个字节,这个字节是对前面的八个字节进行校验。

64-位光刻ROM---前8位是DS18B20的自身代码,接下来的48位为连续的数字代码,最后的8位是对前56位的CRC校验。64-位的光刻ROM又包括5个ROM的功能命令:读ROM,匹配ROM,跳跃ROM,查找ROM和报警查找。 [2]
外部电源的连接。DS18B20可以使用外部电源VDD,也可以使用内部的寄生电源。当VDD端口接3.0V—5.5V的电压时是使用外部电源;当VDD端口接地时使用了内部的寄生电源。无论是内部寄生电源还是外部供电,I/O口线要接5KΩ左右的上拉电阻。

配置寄存器---配置不同的位数来确定温度和数字的转化。可以知道R1,R0是温度的决定位,由R1,R0的不同组合可以配置为9位,10位,11位,12位的温度显示。这样就可以知道不同的温度转化位所对应的转化时间,四种配置的分辨率分别为0.5℃,0.25℃,0.125℃和0.0625℃,出厂时以配置为12位。

温度的读取---DS18B20在出厂时以配置为12位,读取温度时共读取16位,前5个位为符号位,当前5位为1时,读取的温度为负数;当前5位为0时,读取的温度为正数。温度为正时读取方法为:将16进制数转换成10进制即可。温度为负时读取方法为:将16进制取反后加1,再转换成10进制即可。例:0550H = +85 度,FC90H = -55 度。




回复

使用道具 举报

632#
ID:513258 发表于 2019-6-27 16:23 | 只看该作者
使用要点
DS18B20 采用的是单线总线协议方式,即在一条数据线上实现数据的双向传输,而单片机硬件上不支持单总线协议,因此必须采用软件方法来模拟单总线的协议是序来完成对DS18B20 芯片的访问。由于DS18B20 是在一根I/ O 线上读写数据,因此对读写的数据位有严格的时序要求,它有严格的通信协议来保证各位数据传输的正确性和完整性。该协议定义了几种信号的时序: 初始化时序、读时序、写时序。所有时序都是将单片机作为主设备,DS18B20 作为从设备,而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求DS18B20 回送数据,在进行写命令后,主机需启动读时序完成数据接收。




回复

使用道具 举报

633#
ID:513258 发表于 2019-6-27 16:28 | 只看该作者
几个应用电路












回复

使用道具 举报

634#
ID:513258 发表于 2019-6-27 16:44 | 只看该作者
DS18B20单总线数字温度传感器模块
一、尺寸:长28mm X宽12mm X高10mm
二、主要芯片:18B20温度传感器
三、工作电压:直流5V




回复

使用道具 举报

635#
ID:513258 发表于 2019-6-27 17:17 | 只看该作者
模块特点
1、分辨率调整范围:9-12位
2、带安装孔方便安装,孔径:2.5
3、温度测量范围:-55~+125℃
4、温度测量精度:0.5℃
5、工作电压:DC5V
6、数字信号输出




回复

使用道具 举报

636#
ID:513258 发表于 2019-6-27 17:26 | 只看该作者
引脚接线
Arduino Uno      <------>         18B20温度传感器模块  
Pin 3                  <------>          OUT (S)      
5V                      <------>          VCC   
GND                   <------>          GND  




回复

使用道具 举报

637#
ID:513258 发表于 2019-6-27 17:31 | 只看该作者
搜索、下载库文件-DallasTemperature



回复

使用道具 举报

638#
ID:513258 发表于 2019-6-27 17:34 | 只看该作者

回复

使用道具 举报

639#
ID:513258 发表于 2019-6-27 18:05 | 只看该作者
后来又安装了一个库-OneWire



回复

使用道具 举报

640#
ID:513258 发表于 2019-6-27 18:10 | 只看该作者
  1. /*
  2. 【Arduino】37种传感器模块系列实验(39)
  3. 实验三十九:DS18B20单总线数字温度传感器模块
  4. */

  5. #include <OneWire.h>
  6. #include <DallasTemperature.h>

  7. #define ONE_WIRE_BUS 3

  8. OneWire oneWire(ONE_WIRE_BUS);

  9. DallasTemperature sensors(&oneWire);

  10. void setup(void)
  11. {
  12.   Serial.begin(9600);
  13.   Serial.println("Dallas Temperature IC Control Library Demo");

  14.   sensors.begin();
  15. }

  16. void loop(void)
  17. {
  18.   Serial.print(" Requesting temperatures...");
  19.   sensors.requestTemperatures();
  20.   Serial.println("DONE");

  21.   Serial.print("Temperature for Device 1 is: ");
  22.   Serial.print(sensors.getTempCByIndex(0));  
  23.   
  24.   delay(500);
  25. }
复制代码


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表