Ví dụ này lắng nghe một byte đến từ cổng nối tiếp. Khi nhận được, hội đồng quản trị sẽ gửi một tổ hợp phím trở lại máy tính. Tổ hợp phím đã gửi cao hơn một phím so với tổ hợp phím nhận được, vì vậy nếu bạn gửi “a” từ màn hình nối tiếp, bạn sẽ nhận được “b” từ bảng kết nối với máy tính. “1” sẽ trả về “2”, v.v.
Cảnh báo – Khi bạn sử dụng lệnh Keyboard.print () , bảng Leonardo, Micro hoặc Due sẽ tiếp quản bàn phím máy tính của bạn. Để đảm bảo bạn không mất quyền kiểm soát máy tính của mình trong khi chạy bản phác thảo với chức năng này, hãy thiết lập hệ thống điều khiển đáng tin cậy trước khi bạn gọi Keyboard.print (). Bản phác thảo này được thiết kế để chỉ gửi lệnh Bàn phím sau khi bảng đã nhận được một byte qua cổng nối tiếp.
Thành phần bắt buộc
Bạn sẽ cần các thành phần sau:
- 1 × Arduino Leonardo, Micro hoặc bảng Do
Thủ tục
Chỉ cần kết nối bo mạch của bạn với máy tính bằng cáp USB.
Phác thảo
Mở phần mềm Arduino IDE trên máy tính của bạn. Mã hóa bằng ngôn ngữ Arduino sẽ điều khiển mạch của bạn. Mở tệp phác thảo mới bằng cách nhấp vào Mới.
Lưu ý – Bạn phải đưa thư viện bàn phím vào tệp thư viện Arduino của mình. Sao chép và dán tệp thư viện bàn phím vào bên trong tệp có tên ‘thư viện’ được đánh dấu bằng màu vàng.
Mã Arduino
/*
Keyboard test
For the Arduino Leonardo, Micro or Due Reads
a byte from the serial port, sends a keystroke back.
The sent keystroke is one higher than what's received, e.g. if you send a, you get b, send
A you get B, and so forth.
The circuit:
* none
*/
#include "Keyboard.h"
void setup() {
// open the serial port:
Serial.begin(9600);
// initialize control over the keyboard:
Keyboard.begin();
}
void loop() {
// check for incoming serial data:
if (Serial.available() > 0) {
// read incoming serial data:
char inChar = Serial.read();
// Type the next ASCII value from what you received:
Keyboard.write(inChar + 1);
}
}
Mã cần lưu ý
Sau khi được lập trình, hãy mở màn hình nối tiếp của bạn và gửi một byte. Bảng sẽ trả lời bằng một tổ hợp phím, tức là cao hơn một số.
Kết quả
Bo mạch sẽ trả lời bằng một tổ hợp phím cao hơn một số trên màn hình nối tiếp Arduino IDE khi bạn gửi một byte
Arduino – Cảm biến độ ẩm
Trong phần này, chúng ta sẽ tìm hiểu cách giao diện bảng Arduino của chúng ta với các cảm biến khác nhau. Chúng ta sẽ thảo luận về các cảm biến sau:
- Cảm biến độ ẩm (DHT22)
- Cảm biến nhiệt độ (LM35)
- Cảm biến phát hiện nước (Kích hoạt nước đơn giản)
- CẢM BIẾN PIR
- THIẾT BỊ CẢM BIẾN SÓNG SIÊU ÂM
- GPS
Cảm biến độ ẩm (DHT22)
DHT-22 (còn được đặt tên là AM2302) là một cảm biến đầu ra kỹ thuật số, độ ẩm tương đối và nhiệt độ. Nó sử dụng một cảm biến độ ẩm điện dung và một điện trở nhiệt để đo không khí xung quanh, và gửi tín hiệu kỹ thuật số trên chân dữ liệu.
Trong ví dụ này, bạn sẽ học cách sử dụng cảm biến này với Arduino UNO. Nhiệt độ và độ ẩm trong phòng sẽ được in ra màn hình nối tiếp.
Cảm biến DHT-22
Các kết nối rất đơn giản. Chân đầu tiên bên trái vào nguồn 3-5V, chân thứ hai vào chân đầu vào dữ liệu và chân ngoài cùng bên phải nối đất.
Chi tiết kỹ thuật
- Nguồn – 3-5V
- Dòng điện tối đa – 2,5mA
- Độ ẩm – 0-100%, độ chính xác 2-5%
- Nhiệt độ – 40 đến 80 ° C, độ chính xác ± 0,5 ° C
Thành phần bắt buộc
Bạn sẽ cần các thành phần sau:
- 1 × Breadboard
- 1 × Arduino Uno R3
- 1 x DHT22
- Điện trở 1 × 10K ohm
Thủ tục
Thực hiện theo sơ đồ mạch và nối các thành phần trên breadboard như trong hình dưới đây.
Phác thảo
Mở phần mềm Arduino IDE trên máy tính của bạn. Mã hóa bằng ngôn ngữ Arduino sẽ điều khiển mạch của bạn. Mở tệp phác thảo mới bằng cách nhấp vào Mới.
Mã Arduino
// Example testing sketch for various DHT humidity/temperature sensors
#include "DHT.h"
#define DHTPIN 2 // what digital pin we're connected to
// Uncomment whatever type you're using!
//#define DHTTYPE DHT11 // DHT 11
#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321
//#define DHTTYPE DHT21 // DHT 21 (AM2301)
// Connect pin 1 (on the left) of the sensor to +5V
// NOTE: If using a board with 3.3V logic like an Arduino Due connect pin 1
// to 3.3V instead of 5V!
// Connect pin 2 of the sensor to whatever your DHTPIN is
// Connect pin 4 (on the right) of the sensor to GROUND
// Connect a 10K resistor from pin 2 (data) to pin 1 (power) of the sensor
// Initialize DHT sensor.
// Note that older versions of this library took an optional third parameter to
// tweak the timings for faster processors. This parameter is no longer needed
// as the current DHT reading algorithm adjusts itself to work on faster procs.
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(9600);
Serial.println("DHTxx test!");
dht.begin();
}
void loop() {
delay(2000); // Wait a few seconds between measurements
float h = dht.readHumidity();
// Reading temperature or humidity takes about 250 milliseconds!
float t = dht.readTemperature();
// Read temperature as Celsius (the default)
float f = dht.readTemperature(true);
// Read temperature as Fahrenheit (isFahrenheit = true)
// Check if any reads failed and exit early (to try again).
if (isnan(h) || isnan(t) || isnan(f)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
// Compute heat index in Fahrenheit (the default)
float hif = dht.computeHeatIndex(f, h);
// Compute heat index in Celsius (isFahreheit = false)
float hic = dht.computeHeatIndex(t, h, false);
Serial.print ("Humidity: ");
Serial.print (h);
Serial.print (" %\t");
Serial.print ("Temperature: ");
Serial.print (t);
Serial.print (" *C ");
Serial.print (f);
Serial.print (" *F\t");
Serial.print ("Heat index: ");
Serial.print (hic);
Serial.print (" *C ");
Serial.print (hif);
Serial.println (" *F");
}
Mã cần lưu ý
Cảm biến DHT22 có bốn đầu cuối (V cc , DATA, NC, GND), được kết nối với bo mạch như sau:
- Chân DATA đến chân Arduino số 2
- Chân V cc đến 5 volt của bảng Arduino
- Ghim GND vào mặt đất của bảng Arduino
- Chúng ta cần phải kết nối 10k ohm resistor (pull up resistor) giữa DATA và V cc pin
Sau khi kết nối phần cứng hoàn tất, bạn cần thêm thư viện DHT22 vào tệp thư viện Arduino của mình như đã mô tả trước đó.
Kết quả
Bạn sẽ thấy màn hình hiển thị nhiệt độ và độ ẩm trên màn hình cổng nối tiếp được cập nhật 2 giây một lần.