电路

如何构建机器人 - 第6课:构建可监控CO2密度的Arduino机器人:11个步骤

不要嘲笑我們的性

不要嘲笑我們的性

目录:

Anonim

这是“如何构建机器人”系列的第五个教程。在本教程中,我们将机器人平台与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的示例代码以供参考。