这是“如何构建机器人”系列的第五个教程。在本教程中,我们将机器人平台与CO2传感器结合使用,以便您可以检测某个区域的CO2密度。
与最后四个教程相同,这里使用Arduino机器人套件(Pirate:带蓝牙4.0的4WD Arduino移动机器人套件)作为示例。
课程菜单:
第1课:简介
第2课:构建一个基本的Arduino机器人
第3课:构建线跟踪Arduino机器人
第4课:构建一个可以避免障碍的Arduino机器人
第5课:构建具有光和声效果的Arduino机器人
第6课:构建一个可以监控环境的Arduino机器人
第7课:构建蓝牙控制的Arduino机器人
硬件组件
用于Arduino的CO2气体传感器×1
供应:
步骤1:
数字触摸传感器×1
第2步:
Arduino的LCD键盘护罩×1
第3步:
M3 * 6MM尼龙柱和扎带
第4步:
装配说明:
第1步:添加触摸传感器
触摸传感器上有两个孔用于固定尼龙柱。
修复尼龙柱。请不要过度扭曲这些列。
第5步:
然后将触摸传感器安装在印版上。
第6步:
第2步:添加LCD屏幕
将海岸滑入LCD屏幕的四个孔并固定。剪掉束缚的剩余部分。
第7步:
第3步:添加CO2传感器
将尼龙柱固定在CO2传感器上。将CO2传感器安装在传感器板上。
第8步:
你几乎完成了组装。请不要将上板固定在平台上,因为我们需要稍后处理电路连接。
第9步:
连接硬件:
请保持电缆整齐。
界面颜色如下:
红色表示电源
黑色表示地面
蓝色表示模拟输入引脚
绿色表示数字I / O引脚
LCD监视器应按特定顺序连接到VCC,GND,SCL和SDA。
第10步:
编码
找到名为DHT11_Display.ino的代码并下载它。不要忘记LiquidCrystal_I2C和CO2的库。
第11步:
成功下载代码后,LCD屏幕上将显示实时CO2浓度。触摸传感器有两个功能:
1.如果一段时间后没有触摸传感器,它将自动关闭。
2.如果要添加更多传感器来监控其他环境数据,触摸传感器可以在LCD上切换监控数据。
代码概要图书馆很重要。没有图书馆很难理解图书馆。
#include #include
LiquidCrystal_I2C lcd(0x20,16,2);
#include“CO2.h”
CO2传感器CO2ppm;
在这里,您需要了解CO2Pin,这是一个用于声明传感器引脚的变量。
int CO2Pin = A1;
即,DHT11Pin代表模拟Pin1。也就是说,我们的CO2传感器连接到模拟Pin1。
以下是时间变量的一些声明。 TouchPin代表触摸传感器,而13代表数字引脚。
long currentMillis = 0;
很久以前的米利斯;
长间隔= 4000;
int count = 0; //数数
int touchPin = 13;
引入setup()的功能,这是启动的设置。
pinMode(touchPin,INPUT);
然后保持触摸传感器的输入模式。有关具体信息,您可以查看Arduino网站(www.arduino.cc)中的Arduino参考资料,其中介绍了pinMode()的功能。
接下来,您需要初始化LCD屏幕并打开LCD指示灯,这表明LCD屏幕已准备就绪。
lcd.init();
lcd.backlight();
延迟(100);
lcd.setBacklight(0);
现在轮到loop()的功能了。首先,我们需要从触摸传感器读取值,然后使用一个变量touchState存储这些数据。
int touchState = digitalRead(touchPin);
然后检查一旦用手指触摸触摸传感器,控制器是否会收到HIGH信号,1应添加到计数中。
if(touchState == HIGH){count ++; previousMillis = millis(); }
此处计数表示您触摸屏幕的次数。但如果您只触摸传感器一次,则每次触摸的时间量将包含在millis()函数中。
我们用if开始的子句改变触摸时间的长度。间隔在这里表示我们设置的触摸时间。因此,我们知道应该在触摸的四秒内和触摸超过四秒钟内采取什么动作。
if(currentMillis - previousMillis <Interval){//在4秒内做一些事情
else {//做超过4秒的事情}
lcd.setBacklight(0);
setBacklight()的功能用于关闭LCD背光灯。
当我们触摸传感器超过四秒钟时应采取什么措施
如果我们触摸传感器超过四秒钟,我们就知道可以关闭LCD背光灯。
应在四秒钟内采取什么行动。
if(count == 1){//单触,液晶屏幕不显示任何差异}
否则if(count == 2){//触摸两次,值将显示在LCD屏幕上}
在四秒钟内再次按下触摸传感器;屏幕仍然会关闭。只有当您同时触摸两次时,才会打开LCD背光并显示CO2浓度数据。
最后一次触摸传感器后,请记住将计数保持为零。
计数= 0;
因此,完整的代码应为:
if(count == 1){lcd.setBacklight(0); }
else if(count == 2){lcd.backlight(); DustShow();计数= 0; }
然后我们需要跟踪当前时间,因为我们可以将它与previousMillis进行比较。这一点非常重要。
currentMillis = millis();
CO2ppm.Read()的功能用于读取数据。变量CO2Value将用于存储CO2传感器的数据。
int CO2Value = CO2ppm.Read(CO2Pin);
以下是我们如何使用与LCD屏幕相关的功能。
lcd.setCursor(0,0);
lcd.setCursor(0,1);
setCursor(column,row)的功能用于演示光标显示的列和行,从括号内的零开始。
lcd.print(CO2Value);
print()表示该图可以直接显示在屏幕上。
lcd.print(“”);
lcd.print(“”)表示屏幕上显示的空白区域。它用于清除屏幕。
多个传感器的组合一旦购买了某种传感器,您如何组合多个环境传感器?
别担心。我们将为您提供一个用于测试多个传感器的编码模板。您可以通过参考上述模板来调整组合。实际上,该理论与单个传感器相同,只是存在用于改变LCD屏幕的步骤。
下面的红色编码需要修改。我们之前提到,计数是指手指触摸传感器的次数。因此,count = 2意味着我们按下了两次,它显示了第一个传感器的数字。继续!请记住,你应该再次将计数保持为零。
示例代码:
if(currentMillis - previousMillis <Interval){
if(count == 1){lcd.setBacklight(0); }
else if(count == 2){//No.1 Sensor Sensor1Show(); lcd.backlight(); }
else if(count == 3){// No.2 Sensor Sensor2Show(); lcd.backlight(); count = 0; }
当然,对于传感器,启动设置,开始时的变量声明是重要的。
如果您仍然不知道如何修改代码,可以查看名为WeatherStation.ino的示例代码以供参考。