Krugovi

Kako izgraditi robota - Lekcija 6: Izgraditi Arduino robot koji može nadzirati gustoću CO2: 11 koraka

Драгстер — робот на Arduino для гонок по линии. Железки Амперки

Драгстер — робот на Arduino для гонок по линии. Железки Амперки

Sadržaj:

Anonim

Ovo je peti vodič za seriju "Kako izgraditi robot". U ovom priručniku kombinirat ćemo robotsku platformu sa CO2 senzorom, tako da možete detektirati gustoću CO2 određenog područja.

Kao i zadnja četiri vodiča, ovdje se kao primjer koristi Arduino kit za robote (Pirate: 4WD Arduino Mobile Robot Kit s Bluetoothom 4.0).

Izbornik Lekcije:

Lekcija 1: Uvod

Lekcija 2: Izgradite osnovni Arduino robot

Lekcija 3: Napravite Arduino robot za praćenje linija

Lekcija 4: Izgradite Arduino Robot koji bi mogao izbjeći prepreke

Lekcija 5: Izgradite Arduino robot sa svjetlosnim i zvučnim efektima

Lekcija 6: Izgradite Arduino robot koji bi mogao pratiti okoliš

Lekcija 7: Izgradite Arduino Robot koji kontrolira Bluetooth

Hardverske komponente

Senzor za plin CO2 za Arduino × 1

Pribor:

Korak 1:

Digitalni senzor za dodir × 1

Korak 2:

Zaslon LCD tipkovnice za Arduino × 1

Korak 3:

M3 * 6MM Najlonski stupovi i kravate

Korak 4:

UPUTA ZA SKUPŠTINU:

KORAK 1: Dodajte senzor za dodir

Na senzoru osjetljivom na dodir nalaze se dvije rupe za učvršćivanje najlonskih stupova.

Popravi najlonske stupce. Nemojte pretjerano zakretati te stupce.

Korak 5:

Zatim pričvrstite senzor za dodir na ploču.

Korak 6:

KORAK 2: Dodajte LCD zaslon

Pomaknite obale u četiri rupe na LCD zaslonu i popravite ih. Izrežite preostali dio kravata.

Korak 7:

KORAK 3: Dodajte senzor CO2

Učvrstite najlonske stupove na senzoru CO2. Pričvrstite senzor CO2 na ploču osjetnika.

8. korak:

Skoro ste dovršili montažu. Nemojte pričvrstiti gornju ploču na platformu, jer ćemo kasnije morati raditi na spoju kruga.

9. korak:

PRIKLJUČITE OPREMU:

Molimo držite kabele u redu.

Sučelje je obojeno na sljedeći način:

Crvena boja označava snagu

Crna označava tlo

Plavo označava Analog Input Pin

Zelena označava digitalni I / O Pin

LCD monitor bi trebao biti spojen na VCC, GND, SCL i SDA u tom određenom redoslijedu.

Korak 10:

kodiranje

Pronađite kod pod nazivom DHT11_Display.ino i preuzmite ga. Ne zaboravite knjižnicu za LiquidCrystal_I2C i CO2.

11. korak:

Nakon uspješnog preuzimanja koda, na LCD zaslonu će se prikazati gustoća CO2 u stvarnom vremenu. Ovdje senzor za dodir ima dvije funkcije:

1. Ako nakon nekog vremena ne dodirnete senzor, on će se automatski isključiti.

2. Ako želite dodati još senzora za praćenje drugih podataka o okolišu, senzor osjetljiv na dodir može prebaciti podatke o praćenju na LCD.

CODE SYNOPSIS Knjižnica je važna. Teško je razumjeti knjižnicu bez knjižnice.

#include #include

LiquidCrystal_I2C lcd (0x20,16,2);

#include "CO2.h"

CO2Senzor CO2ppm;

Ovdje trebate znati za CO2Pin, varijablu koja se koristi za deklariranje pinova senzora.

int CO2Pin = A1;

Naime, DHT11Pin predstavlja Analog Pin1. To jest, naš CO2 senzor je spojen na Analog Pin1.

Sljedeće su neke izjave za vremenske varijable. TouchPin predstavlja senzor za dodir, dok 13 označava digitalni pin.

dugo currentMillis = 0;

duge prethodne Milis;

dugo Interval = 4000;

int count = 0; // brojanje brojeva

int touchPin = 13;

Donesite funkciju setup (), koja je postavka za inicijaciju.

pinMode (touchPin, INPUT);

Zatim držite senzor za dodir s načinom unosa. Za specifične informacije, možete provjeriti Arduino Reference na Arduino web stranici (www.arduino.cc), koja ima uvod u funkciju pinMode ().

Zatim morate inicijalizirati LCD zaslon i uključiti svjetlo LCD zaslona, ​​što pokazuje da je LCD zaslon spreman.

lcd.init ();

lcd.backlight ();

kašnjenja (100);

lcd.setBacklight (0);

Sada je na redu funkcija petlje (). Prvo trebamo pročitati vrijednost iz senzora osjetljivog na dodir i pohraniti te podatke s jednom varijablom TouchState.

int touchState = digitalRead (touchPin);

Zatim provjerite da li će regulator primiti signal HIGH nakon što dodirnete senzor dodira prstima, 1 će biti dodan u brojanje.

if (touchState == HIGH) {count ++; previousMillis = millis (); }

Ovime računate koliko puta ste dodirnuli zaslon. Ali ako samo jednom dodirnete senzor, tada će vrijeme za svaki dodir biti uključeno u funkciju millis ().

Promijenimo duljinu vremena dodira s pod-rečenicom koja započinje s if. Interval ovdje znači razdoblje za dodirivanje koje smo postavili. Dakle, znamo što će se poduzeti unutar četiri sekunde dodira i više od četiri sekunde dodira.

if (currentMillis - previousMillis <Interval) {// uradite nešto za 4 sekunde

else {// učini nešto više od 4 sekunde}

lcd.setBacklight (0);

Funkcija setBacklight () se koristi za isključivanje LCD zaslona.

Što treba poduzeti kada se senzor dotakne dulje od četiri sekunde

Ako dodirnemo senzor dulje od četiri sekunde, znamo da se pozadinsko svjetlo LCD-a može isključiti.

što će se poduzeti unutar četiri sekunde dodira.

ako (count == 1) {// Jedan dodir, LCD zaslon neće prikazati nikakvu razliku

inače ako (count == 2) {// dodirnite dva puta, vrijednost će se prikazati na LCD zaslonu}

Pritisnite senzor dodira još jednom u roku od četiri sekunde; zaslon će i dalje biti isključen. Samo ako ga dodirnete dvaput u isto vrijeme, uključit će se pozadinsko osvjetljenje LCD zaslona i prikazati vrijednosti gustoće CO2.

Ne zaboravite zadržati brojanje kao nulu nakon što zadnji put dodirnete senzor.

strani = 0;

Stoga će cjelokupni kod biti:

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

inače ako (count == 2) {lcd.backlight (); DustShow (); strani = 0; }

Tada moramo pratiti trenutno vrijeme jer ga možemo usporediti s prethodnimMillis. Ova je točka vrlo važna.

currentMillis = millis ();

Funkcija CO2ppm.Read () se koristi za čitanje podataka. I varijabla CO2Value će se koristiti za pohranjivanje podataka sa CO2 senzora.

int CO2Value = CO2ppm.Read (CO2Pin);

Evo kako bismo koristili funkciju povezanu s LCD zaslonom.

lcd.setCursor (0,0);

lcd.setCursor (0,1);

Funkcija setCursor (stupac, redak) se koristi za prikazivanje stupca i retka pokazivača, počevši od nule unutar zagrada.

lcd.print (CO2Value);

print () znači da se ta slika može prikazati izravno na zaslonu.

lcd.print ("");

lcd.print ("") znači prazan prostor prikazan na zaslonu. Koristi se za brisanje zaslona.

Kombinacija višestrukih senzora Kako možete kombinirati višestruke senzore okoliša nakon što ste kupili neku vrstu senzora?

Ne brinite. Ponudit ćemo vam predložak kodiranja za testiranje više senzora. Možete izvršiti podešavanja kombinacije pozivajući se na navedeni predložak. U stvari, teorija je ista kao i jedan senzor osim što postoje koraci za promjene LCD zaslona.

Kodiranje u crvenoj boji treba izmijeniti. Već smo spomenuli da se brojanje odnosi na to koliko puta prsti dodiruju senzor. Dakle, count = 2 znači da smo dvaput pritisnuli i prikazuje brojke za prvi senzor. Nastavi! Molim vas, imajte na umu da ćete ponovno brojati nulu.

Uzorak koda:

if (currentMillis - previousMillis <Interval) {

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

inače ako (count == 2) {/ / Sensor Sensor1Show (); lcd.backlight (); }

inače ako (count == 3) {//No.2 senzor Sensor2Show (); lcd.backlight (); count = 0; }

Naravno, inicijacijska postavka, deklaracija varijabli na početku, za senzor je važna.

Možete provjeriti primjer koda nazvanog WeatherStation.ino za referencu ako još uvijek nemate pojma kako promijeniti svoje kodove.