Ini adalah tutorial kelima 'Cara Membina Siri Robot'. Dalam tutorial ini, kami akan menggabungkan platform robot dengan sensor CO2 supaya anda dapat mengesan kepadatan CO2 kawasan tertentu.
Sama seperti empat tutorial terakhir, kit robot Arduino (Pirate: 4WD Arduino Mobile Robot Kit dengan Bluetooth 4.0) digunakan di sini sebagai contoh.
Menu Pelajaran:
Pelajaran 1: Pengenalan
Pelajaran 2: Membina Robot Arduino Asas
Pelajaran 3: Membina Tracking Line Arduino Robot
Pelajaran 4: Membina Robot Arduino Yang Boleh Dihindari Halangan
Pelajaran 5: Membina Robot Arduino Dengan Kesan Cahaya dan Bunyi
Pelajaran 6: Membina Robot Arduino Yang Boleh Memantau Alam Sekitar
Pelajaran 7: Membina Robot Arduino yang Dikendalikan Bluetooth
Komponen perkakasan
Sensor Gas CO2 untuk Arduino × 1
Bekalan:
Langkah 1:
Sensor Sentuh Digital × 1
Langkah 2:
Perisai Papan Kekunci LCD Untuk Arduino × 1
Langkah 3:
M3 * 6mm tiang nilon dan tali leher
Langkah 4:
ARAHAN PEMBELAJARAN:
LANGKAH 1: Tambahkan sensor sentuhan
Terdapat dua lubang pada sensor sentuhan untuk memasang lajur Nylon.
Betulkan lajur Nylon. Tolong jangan tukar lajur tersebut.
Langkah 5:
Kemudian pasang sensor sentuh pada plat.
Langkah 6:
STEP2: Tambah Skrin LCD
Keluarkan tepi ke empat lubang skrin LCD dan ubahnya. Potong baki bahagian bungkus.
Langkah 7:
LANGKAH 3: Tambah Sensor CO2
Betulkan lajur Nylon pada Sensor CO2. Pasang Sensor CO2 pada plat sensor.
Langkah 8:
Anda hampir menyelesaikan pemasangan. Tolong jangan tukar plat atas ke platform lagi kerana kita perlu bekerja pada sambungan litar nanti.
Langkah 9:
Sambungkan HARDWARE:
Sila simpan kabel secara teratur.
Antara muka berwarna seperti berikut:
Merah menunjukkan kuasa
Hitam menunjukkan tanah
Blue menandakan Pin Input Analog
Green menandakan Digital I / O Pin
Monitor LCD harus disambungkan ke VCC, GND, SCL dan SDA dalam urutan tertentu.
Langkah 10:
CODING
Cari kod yang bernama DHT11_Display.ino dan muat turunnya. Jangan lupa perpustakaan untuk LiquidCrystal_I2C dan CO2.
Langkah 11:
Selepas berjaya memuat turun kod, ketepatan CO2 masa nyata akan ditunjukkan pada skrin LCD. Sensor sentuhan mempunyai dua fungsi di sini:
1. Jika anda tidak menyentuh sensor selepas beberapa waktu, ia akan dimatikan secara automatik.
2. Jika anda ingin menambah lebih banyak sensor untuk memantau data persekitaran yang lain, sensor sentuhan boleh menukar data pemantauan pada LCD.
CODE SYNOPSIS Perpustakaan adalah penting. Sukar untuk memahami perpustakaan tanpa perpustakaan.
#include #include
LiquidCrystal_I2C lcd (0x20,16,2);
#include "CO2.h"
CO2Sensor CO2ppm;
Di sini anda perlu tahu tentang CO2Pin, pemboleh ubah yang digunakan untuk mengisytiharkan pin sensor.
int CO2Pin = A1;
Iaitu, DHT11Pin mewakili Analog Pin1. Maksudnya, sensor CO2 kami disambungkan ke Analog Pin1.
Berikut adalah beberapa perisytiharan untuk pembolehubah masa. TouchPin mewakili sensor sentuh manakala 13 bermaksud pin digital.
panjang semasaMillis = 0;
lama sebelumnya;
Panjang Selang = 4000;
int count = 0; // nombor pengiraan
int touchPin = 13;
Bawa dalam fungsi persediaan (), yang merupakan tetapan untuk pengamatan.
pinMode (touchPin, INPUT);
Kemudian simpan sensor sentuhan dengan mod jenis masuk. Untuk maklumat tertentu, anda boleh menyemak Rujukan Arduino dalam Laman Web Arduino (www.arduino.cc), yang memperkenalkan fungsi pinMode ().
Seterusnya, anda perlu memulakan skrin LCD dan menghidupkan lampu LCD, yang menunjukkan skrin LCD siap.
lcd.init ();
lcd.backlight ();
kelewatan (100);
lcd.setBacklight (0);
Sekarang giliran untuk fungsi gelung (). Mula-mula kita perlu membaca nilai dari sensor sentuhan dan kemudian menyimpan data tersebut dengan satu touchState ubah.
int touchState = digitalRead (touchPin);
Kemudian periksa jika pengawal akan menerima isyarat HIGH apabila anda menyentuh sensor sentuhan dengan jari anda, 1 akan ditambah ke kiraan.
jika (touchState == HIGH) {count ++; previousMillis = millis (); }
Dengan ini mengira berapakah bilangan kali anda menyentuh skrin. Tetapi jika anda hanya menyentuh sensor satu kali, maka jumlah masa untuk setiap sentuhan akan dimasukkan ke dalam fungsi millis ().
Kami menukar panjang masa sentuhan dengan sub ayat yang bermula dengan jika. Selang di sini bermaksud tempoh untuk sentuhan yang kami sediakan. Oleh itu, kita tahu tindakan apa yang akan diambil dalam sentuhan empat sentuhan dan lebih daripada empat saat sentuhan masing-masing.
jika (currentMillis - previousMillis <Selang) {// buat sesuatu dalam 4 saat
lain {// buat sesuatu lebih daripada 4 saat}
lcd.setBacklight (0);
Fungsi setBacklight () digunakan untuk mematikan lampu latar LCD.
Tindakan apa yang akan diambil apabila kita menyentuh sensor selama lebih daripada empat saat
Sekiranya kita menyentuh sensor selama lebih daripada empat saat, kita tahu bahawa lampu latar LCD boleh dimatikan.
apakah tindakan yang akan diambil dalam tempoh empat saat sentuh.
jika (count == 1) {// Sentuhan satu, skrin LCD tidak akan menunjukkan sebarang perbezaan}
lain jika (count == 2) {// Sentuh dua kali, nilai akan ditunjukkan pada skrin LCD}
Tekan sensor sentuhan sekali lagi dalam masa empat saat; skrin masih akan mati. Hanya jika anda menyentuhnya dua kali pada masa yang sama, akan lampu latar LCD dan angka kepadatan CO2 ditunjukkan.
Sila ingat untuk menyimpan kiraan sebagai sifar selepas anda menyentuh sensor untuk kali terakhir.
hitung = 0;
Jadi kod lengkap adalah:
jika (kiraan == 1) {lcd.setBacklight (0); }
lain jika (count == 2) {lcd.backlight (); DustShow (); hitung = 0; }
Kemudian kita perlu menjejaki masa semasa seperti yang kita boleh bandingkan dengan sebelumnyaMillis. Perkara ini sangat penting.
currentMillis = millis ();
Fungsi CO2ppm.Read () digunakan untuk membaca data. Dan variabel CO2Value akan digunakan untuk menyimpan data dari sensor CO2.
int CO2Value = CO2ppm.Read (CO2Pin);
Inilah caranya kita menggunakan fungsi yang berkaitan dengan skrin LCD.
lcd.setCursor (0,0);
lcd.setCursor (0,1);
Fungsi setCursor (lajur, baris) digunakan untuk menunjukkan lajur dan baris yang dipaparkan kursor, bermula dari sifar dalam kurungan.
lcd.print (CO2Value);
cetak () bermaksud angka ini boleh ditunjukkan pada skrin secara langsung.
lcd.print ("");
lcd.print ("") bermaksud ruang kosong yang ditunjukkan pada skrin. Ia digunakan untuk membersihkan skrin.
Gabungan Sensor Berbilang Bagaimana anda boleh menggabungkan beberapa sensor alam sekitar setelah anda membeli beberapa jenis sensor?
Jangan risau. Kami akan menawarkan anda template coding untuk ujian pelbagai sensor. Anda boleh membuat pelarasan gabungan dengan merujuk kepada templat yang disebutkan. Malah, teori itu sama dengan sensor tunggal kecuali terdapat langkah-langkah untuk perubahan skrin LCD.
Pengekodan merah di bawah perlu diubahsuai. Kami menyebut sebelum jumlah itu merujuk kepada berapa kali jari menyentuh sensor. Oleh itu, hitung = 2 bermakna kita telah menekan dua kali dan ia menunjukkan angka untuk sensor pertama. Teruskan! Sila ambil perhatian bahawa anda akan menyimpan kiraan sifar sekali lagi.
Kod Sampel:
jika (currentMillis - previousMillis <Selang) {
jika (kiraan == 1) {lcd.setBacklight (0); }
lain jika (count == 2) {//No.1 Sensor Sensor1Show (); lcd.backlight (); }
lain jika (count == 3) {//No.2 Sensor Sensor2Show (); lcd.backlight (); hitung = 0; }
Sudah tentu, penubuhan permulaan, pengisytiharan pembolehubah pada permulaan, untuk sensor adalah penting.
Anda boleh menyemak kod sampel bernama WeatherStation.ino untuk rujukan jika anda masih tidak tahu bagaimana untuk mengubah kod anda.