회로

로봇을 만드는 방법 - 수업 6 : CO2 밀도를 모니터링 할 수있는 Arduino 로봇 제작 : 11 단계

[델 스토리지-③]쓰기 편한 '나스-백업 솔루션'이 좋다…'NF500, DP500'

[델 스토리지-③]쓰기 편한 '나스-백업 솔루션'이 좋다…'NF500, DP500'

차례:

Anonim

이것은 '로봇을 만드는 방법'시리즈의 다섯 번째 자습서입니다. 이 튜토리얼에서는 로봇 플랫폼과 CO2 센서를 결합하여 특정 지역의 CO2 밀도를 감지 할 수 있습니다.

마지막 4 개의 튜토리얼과 마찬가지로 여기 Arduino 로봇 키트 (Pirate : 4WD Arduino Mobile Robot Kit with Bluetooth 4.0)가 예제로 사용됩니다.

강의 메뉴 :

수업 1 : 소개

2 단원 : 기본 Arduino 로봇 만들기

3 단원 : 라인 추적 Arduino 로봇 제작

4 단원 : 장애물을 피할 수있는 Arduino 로봇 제작

수업 5 : 빛과 소리 효과로 Arduino 로봇 만들기

6 단원 : 환경을 모니터링 할 수있는 Arduino 로봇 제작

7 단원 : Bluetooth로 제어되는 Arduino 로봇 만들기

하드웨어 구성 요소

Arduino 용 CO2 가스 센서 × 1

용품:

1 단계:

디지털 터치 센서 × 1

2 단계:

Arduino 용 LCD 키패드 쉴드 × 1

3 단계 :

M3 * 6MM 나일론 컬럼 및 타이 랩

4 단계 :

조립 지시 :

1 단계 : 터치 센서 추가

나일론 컬럼을 고정하기위한 터치 센서에는 두 개의 구멍이 있습니다.

나일론 기둥을 고정하십시오. 해당 열을 지나치게 꼬집지 마십시오.

5 단계 :

그런 다음 터치 센서를 플레이트에 부착하십시오.

6 단계 :

2 단계 : LCD 화면 추가

해안을 LCD 화면의 4 개의 구멍에 밀어 넣고 고정하십시오. 타이 랩 (tie-wrap)의 나머지 부분을 자릅니다.

7 단계 :

STEP3 : CO2 센서 추가

CO2 센서에 나일론 기둥을 고정하십시오. CO2 센서를 센서 ​​플레이트에 부착하십시오.

8 단계 :

당신은 거의 조립을 완료합니다. 나중에 회로 연결을 위해 작업해야하므로 상부 판을 플랫폼에 고정하지 마십시오.

9 단계 :

하드웨어 연결 :

케이블을 정리하십시오.

인터페이스는 다음과 같이 색상이 지정됩니다.

빨간색은 전원을 나타냅니다.

검은 색은 땅을 나타냅니다.

파란색은 아날로그 입력 핀을 나타냅니다.

녹색은 디지털 I / O 핀을 나타냅니다.

LCD 모니터는 특정 순서로 VCC, GND, SCL 및 SDA에 연결해야합니다.

10 단계 :

코딩

DHT11_Display.ino라는 코드를 찾아 다운로드하십시오. LiquidCrystal_I2C 및 CO2 용 라이브러리를 잊지 마십시오.

11 단계 :

코드를 성공적으로 다운로드하면 실시간 CO2 농도가 LCD 화면에 표시됩니다. 터치 센서에는 두 가지 기능이 있습니다.

1. 잠시 후 센서를 만지지 않으면 자동으로 꺼집니다.

2. 다른 환경 데이터를 모니터링하기 위해 더 많은 센서를 추가하려면 터치 센서가 LCD의 모니터링 데이터를 전환 할 수 있습니다.

코드 구문 라이브러리는 중요합니다. 라이브러리가없는 라이브러리는 이해하기 어렵습니다.

#include #include

LiquidCrystal_I2C_cd (0x20, 16,2);

#include "CO2.h"

CO2 센서 또는 CO2ppm;

여기서 센서의 핀을 선언하는 데 사용되는 변수 인 CO2Pin에 대해 알아야합니다.

int CO2Pin = A1;

즉, DHT11Pin은 아날로그 Pin1을 나타냅니다. 즉, CO2 센서는 아날로그 핀 1에 연결됩니다.

다음은 시간 변수에 대한 몇 가지 선언입니다. TouchPin은 터치 센서를 나타내며 13은 디지털 핀을 의미합니다.

긴 currentMillis = 0;

긴 previousMillis;

긴 간격 = 4000;

int count = 0; // 숫자 세기

int touchPin = 13;

초기화를위한 설정 인 setup ()의 기능을 가져옵니다.

pinMode (터치 핀, 입력);

그런 다음 터치 센서를 유형 입력 모드로 유지합니다. 특정 정보를 얻으려면 pinMode ()의 기능을 소개하는 Arduino 웹 사이트 (www.arduino.cc)의 Arduino Reference를 확인하십시오.

그런 다음 LCD 화면을 초기화하고 LCD 표시등을 켜야합니다. 그러면 LCD 화면이 준비되었음을 알 수 있습니다.

lcd.init ();

lcd.backlight ();

지연 (100);

lcd.setBacklight (0);

이제는 loop () 함수로 돌아 간다. 먼저 터치 센서에서 값을 읽고 하나의 변수 인 touchState로 해당 데이터를 저장해야합니다.

int touchState = digitalRead (touchPin);

그런 다음 손가락으로 터치 센서를 터치 한 후 컨트롤러에 HIGH 신호가 수신되는지 확인하십시오. 1을 카운트에 더합니다.

if (touchState == HIGH) {카운트 ++; previousMillis = millis (); }

여기서 카운트 란 화면을 터치 한 횟수를 의미합니다. 그러나 센서를 한 번만 터치하면 각 터치의 시간이 millis () 함수에 포함됩니다.

if로 시작하는 서브 문장으로 터치 시간의 길이를 변경합니다. 여기서 간격은 우리가 만지는 접촉의 기간을 의미합니다. 따라서 우리는 4 초간의 접촉과 4 초 이상 만에 어떤 행동을 취해야하는지 알고 있습니다.

if (currentMillis - previousMillis <Interval) {// 4 초 안에 작업을 수행합니다.

else {// 4 초 이상 수행}

lcd.setBacklight (0);

setBacklight () 함수는 LCD 백라이트 램프를 끄는 데 사용됩니다.

4 초 이상 센서를 만질 때 어떤 행동을 취해야합니까?

센서를 4 초 이상 누르면 LCD 백라이트 램프를 끌 수 있습니다.

접촉의 4 초 이내에 어떤 행동을 취해야합니다.

if (count == 1) {// 원터치, LCD 화면에는 차이가 표시되지 않습니다.}

else if (count == 2) {// 두 번 터치하면 LCD 화면에 값이 표시됩니다}

4 초 이내에 터치 센서를 한 번 더 누르십시오. 화면은 여전히 ​​꺼져 있습니다. 동시에 두 번 터치하는 경우에만 LCD 백라이트가 켜지고 CO2 농도 수치가 표시됩니다.

마지막으로 센서를 터치 한 후 카운트를 0으로 유지하십시오.

카운트 = 0;

따라서 완전한 코드는 다음과 같아야한다.

if (count == 1) {lcd.setBacklight (0); }

else if (count == 2) {lcd.backlight (); DustShow (); 카운트 = 0; }

그런 다음 우리는 이전 밀리와 비교할 수 있도록 현재 시간을 추적해야합니다. 이 점은 매우 중요합니다.

currentMillis = millis ();

CO2ppm.Read () 함수는 데이터를 읽는 데 사용됩니다. 변수 CO2Value는 CO2 센서의 데이터를 저장하는 데 사용됩니다.

int CO2Value = CO2ppm.Read (CO2Pin);

다음은 LCD 화면과 관련된 기능을 사용하는 방법입니다.

lcd.setCursor (0,0);

lcd.setCursor (0,1);

setCursor (column, row) 함수는 괄호 안에 0부터 시작하여 커서가 표시되는 열과 행을 보여줍니다.

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 (); 카운트 = 0; }

물론 초기 설정, 센서의 시작 부분에 변수 선언이 중요합니다.

WeatherStation.ino 샘플 코드에서 코드를 수정하는 방법을 모를 경우 참조 할 수 있습니다.