Arduino电子积木传感器分为数字传感器和模拟传感器两类,数字传感器就接到数字口,模拟传感器就接到模拟口,两者绝对不能互换。 我们的数字传感器的线序是根据舵机的线序定义的(即信号、电源、地),由于数字传感器的电源在中间引脚上,所以就不怕被插接反而烧坏。而模拟传感器的线序是根据夏普GP2D12红外线的线序定义的(即信号、地、电源),由于电源不在中间,所以在使用时就需要注意线的方向。我们为2种传感器分别加工了数据线,在使用过程中,需要区分传感器的种类和传感器连接线的颜色。 数字传感器连接线(黑红绿)
模拟传感器连接线(红黑蓝)
数字与模拟传感器端口有1,2,3的数字标记,定义分别如下: 数字传感器: 1脚-------------信号数输出(D)----对应数字传感器连接线绿色 2脚-------------电源正(VCC)----对应数字传感器连接线红色 3脚-------------电源负(GND)----对应数字传感器连接线黑色 模拟传感器: 1脚-------------信号数输出(S)----对应模拟传感器连接线蓝色 2脚-------------电源负(GND)----对应模拟传感器连接线黑色 3脚-------------电源正(VCC)----对应模拟传感器连接线红色 在使用我们的传感器时要注意,先判断该传感器是数字的还是模拟的,然后观察连接线的颜色是否是对应的连接线。 数字传感器-18B20温度传感器:
DS18B20数字温度传感器是美国DALLAS公司生产的一总线数字温度传感器。其测温范围 -55℃~+125℃,固有测温分辨率0.5℃,支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现多点测温,测量结果以9~12位数字量方式串行传送。 由于DS18B20采用的是1-Wire总线协议方式,即在一根数据线实现数据的双向传输,看上去很复杂,大家不要担心,任何的单片机都可以使用软件来模拟1-Wire总线协议通讯,Arduino也不例外,Arduino官方已经对1-Wire总线作出了解释并附样例,一个更好的消息就是有人已经做好18B20的Arduino库文件,哈哈!我们的拿来主义又大显神威了,18B20Arduino库文件地址。
18B20Arduino库文件.rar
(144.65 KB, 下载次数: 15)
将库文件下载后,解压到Arduino的hardwarelibraries目录下,重新启动Arduino后,我们就可以一起来测试18B20了,Arduino测试代码: - #i nclude <DallasTemperature.h>
- DallasTemperature tempSensor;
- void setup(void) {
- Serial.begin(9600);
- tempSensor.begin(2); // DS18B20接在数字IO第2号引脚上
- }
- void loop(void) {
- // 检查温度传感器是否正常工作
- switch(tempSensor.isValid())
- {
- case 1:
- Serial.println("Invalid CRC");
- tempSensor.reset(); // 重启温度传感器
- return;
- case 2:
- Serial.println("Not a valid device");
- tempSensor.reset(); // 重启温度传感器
- return;
- }
- // 从DS18B20读取温度值
- Serial.print(tempSensor.getTemperature());
- Serial.print("C");
- Serial.println();
- }
复制代码
编译下载后,按说明接好18B20数字温度传感器,然后打开IDE串口助手可以看到温度数据。
|