Kredsløb

Sådan bygger du en robot - Lektion 6: Byg en Arduino robot, der kan overvåge CO2-densitet: 11 trin

Как сделать простого робота на Arduino. Робототехника для начинающих

Как сделать простого робота на Arduino. Робототехника для начинающих

Indholdsfortegnelse:

Anonim

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.