Dette er den femte vejledning i "Sådan bygger du en robot" -serie. I denne vejledning kombinerer vi robotplattformen med CO2-sensoren, så du kan opdage CO2-densiteten i et bestemt område.
Det samme som de sidste fire tutorials, et Arduino robot kit (Pirate: 4WD Arduino Mobile Robot Kit med Bluetooth 4.0) bruges her som et eksempel.
Lektioner Menu:
Lektion 1: Introduktion
Lektion 2: Byg en grundlæggende Arduino Robot
Lektion 3: Byg en linjesporing Arduino Robot
Lektion 4: Byg en Arduino Robot, der kunne undgå forhindringer
Lektion 5: Byg en Arduino robot med lys og lydeffekter
Lektion 6: Byg en Arduino Robot, der kunne overvåge miljøet
Lektion 7: Byg en Bluetooth-styret Arduino Robot
Hardware komponenter
CO2 Gas Sensor til Arduino × 1
forsyninger:
Trin 1:
Digital Touch Sensor × 1
Trin 2:
LCD Tastatur Skærm For Arduino × 1
Trin 3:
M3 * 6MM nylon søjler og slips-wraps
Trin 4:
MONTERINGSVEJLEDNING:
TRIN 1: Tilføj berøringssensoren
Der er to huller på berøringssensoren til fastgørelse af nylonkolonnerne.
Fix nylon søjlerne. Vær venlig at overvinde disse kolonner.
Trin 5:
Monter derefter berøringssensoren på pladen.
Trin 6:
TRIN 2: Tilføj LCD-skærmen
Skub kysterne ind i de fire huller på LCD-skærmen og reparer dem. Skær den resterende del af slipset.
Trin 7:
Trin 3: Tilsæt CO2-sensoren
Fix Nylon-søjlerne på CO2-sensoren. Monter CO2-sensoren på sensorpladen.
Trin 8:
Du gennemfører næsten samlingen. Forhøj ikke den øverste plade på platformen, da vi skal arbejde på kredsløbsforbindelsen senere.
Trin 9:
TILSLUT HAR HARDWARE:
Hold kablerne i orden.
Interfacet er farvet som følger:
Rød indikerer strøm
Sort angiver jorden
Blå angiver analog indgangsstift
Grøn angiver Digital I / O-pin
LCD-skærmen skal tilsluttes VCC, GND, SCL og SDA i den pågældende rækkefølge.
Trin 10:
KODNING
Find koden hedder DHT11_Display.ino og download den. Glem ikke biblioteket for LiquidCrystal_I2C og CO2.
Trin 11:
Når du har hentet koden korrekt, vises CO2-densitet i realtid på LCD-skærmen. Berøringssensoren har to funktioner her:
1. Hvis du ikke rører sensoren efter nogen tid, slukker den automatisk.
2. Hvis du vil tilføje flere sensorer til overvågning af andre miljødata, kan touch-sensoren skifte overvågningsdata på LCD'et.
KODESYNOPSIS Bibliotek er vigtigt. Det er svært at forstå biblioteket uden bibliotek.
#include #include
LiquidCrystal_I2C lcd (0x20, 16,2);
#include "CO2.h"
CO2Sensor CO2ppm;
Her skal du vide om CO2Pin, en variabel, der bruges til at erklære sensorens stifter.
int CO2Pin = A1;
Nemlig repræsenterer DHT11Pin Analog Pin1. Det vil sige, at vores CO2-sensor er forbundet til Analog Pin1.
Følgende er nogle erklæringer for tidsvariablerne. TouchPin repræsenterer berøringssensor, mens 13 står for digital pin.
lang nuværendeMillis = 0;
lang tidligereMillis;
lang interval = 4000;
int tæller = 0; // tælle numre
int touchPin = 13;
Indsæt funktionen af opsætningen (), som er en opsætning for initationen.
pinMode (touchPin, INPUT);
Hold så berøringssensoren med en typeindstilling. For specifikke oplysninger kan du kontrollere Arduino Reference på Arduino Website (www.arduino.cc), som har introduktion af funktionen pinMode ().
Dernæst skal du initialisere LCD-skærmen og tænde LCD-lampen, som viser, at LCD-skærmen er klar.
lcd.init ();
lcd.backlight ();
forsinkelse (100);
lcd.setBacklight (0);
Nu drejer det sig om loopens funktion (). Først skal vi læse værdien fra berøringssensoren og derefter gemme disse data med en variabel touchState.
int touchState = digitalRead (touchPin);
Kontroller derefter, om controlleren vil modtage et signal af HIGH, når du berører berøringssensoren med dine fingre, skal 1 tilføjes til tællingen.
hvis (touchState == HIGH) {count ++; forrigeMillis = millis (); }
Herved betyder tæller hvor mange gange du har rørt skærmen. Men hvis du kun rører sensoren en gang, vil mængden af tid for hvert tryk blive inkluderet i funktionen millis ().
Vi ændrer længden af berøringstiden med en underordinering, der starter med if. Interval her betyder den periode for berøring vi etablerer. Således ved vi, hvilke foranstaltninger der skal træffes inden for fire sekunders berøring og mere end fire sekunder 'touch.
hvis (currentMillis - previousMillis <Interval) {// gør noget om 4 sekunder
ellers {// gøre noget mere end 4 sekunder}
lcd.setBacklight (0);
Funktionen af setBacklight () bruges til at slukke for LCD-baggrundsbelysningslampen.
Hvilke foranstaltninger skal der træffes, når vi berører sensoren i mere end fire sekunder
Hvis vi berører sensoren i mere end fire sekunder, ved vi, at LCD-baggrundsbelysningslampen kan slukkes.
Hvilke foranstaltninger skal der træffes inden for fire sekunders berøring.
hvis (tæl = = 1) {// Et tryk, LCD-skærmen viser ingen forskel}
ellers hvis (tæl = = 2) {// Tryk to gange, værdien vil blive vist på LCD-skærmen}
Tryk på berøringssensoren en gang mere inden for fire sekunder; skærmen ville stadig være slukket. Kun hvis du rører det to gange på samme tid, vil LCD-baggrundsbelysningen være tændt, og der vises CO2-tæthedsdata.
Husk at holde tællingen som nul, efter at du har trykket på sensoren for sidste gang.
count = 0;
Den fuldstændige kode skal således være:
hvis (tælle == 1) {lcd.setBacklight (0); }
ellers hvis (tælle == 2) {lcd.backlight (); DustShow (); count = 0; }
Så skal vi holde styr på den aktuelle tid, da vi kan sammenligne den med tidligereMillis. Dette punkt er meget vigtigt.
currentMillis = millis ();
Funktionen af CO2ppm.Read () bruges til at læse data. Og den variable CO2Value vil blive brugt til at gemme data fra CO2 sensoren.
int CO2Value = CO2ppm.Read (CO2Pin);
Her er hvordan vi ville bruge funktionen relateret til LCD-skærmen.
lcd.setCursor (0,0);
lcd.setCursor (0,1);
Funktionen af setCursor (kolonne, række) bruges til at vise, hvilken kolonne og række markøren er vist, startende fra nul i parenteserne.
lcd.print (CO2Value);
print () betyder, at denne figur kan vises direkte på skærmen.
lcd.print ("");
lcd.print ("") betyder tomt rum vist på skærmen. Det er vant til at rydde skærmen.
En kombination af flere sensorer Hvordan kan du kombinere flere miljøsensorer, når du har købt nogle slags sensorer?
Bare rolig. Vi vil tilbyde jer en kodningsskabelon til test af flere sensorer. Du kan foretage justeringer af kombinationen ved at henvise til den nævnte skabelon. Faktisk er teorien den samme som en enkelt sensor, bortset fra at der er skridt til ændringer af LCD-skærmen.
Kodningen i rød nedenfor skal ændres. Vi nævnte før, at tæller refererer til hvor mange gange fingrene rører sensoren. Således tæller = 2 betyder at vi har trykket to gange, og det viser tallene for den første sensor. Fortsæt! Vær opmærksom på, at du skal holde tælleren nul igen.
Prøvekode:
if (currentMillis - previousMillis <Interval) {
hvis (tælle == 1) {lcd.setBacklight (0); }
ellers hvis (tælle == 2) {//No.1 Sensor Sensor1Show (); lcd.backlight (); }
ellers hvis (tælle == 3) {//No.2 Sensor Sensor2Show (); lcd.backlight (); tælle = 0; }
Selvfølgelig er indledningsopsætning, erklæring om variabler i starten, for sensoren vigtig.
Du kan tjekke prøvekoden, der hedder WeatherStation.ino som reference, hvis du stadig ikke har nogen ide om, hvordan du ændrer dine koder.