Arduino https://dongthoigian.net/thu-thuat-may-tinh/arduino/ Khám phá những thủ thuật máy tính Tue, 03 Jan 2023 04:52:17 +0000 vi hourly 1 https://wordpress.org/?v=6.7 https://dongthoigian.net/wp-content/uploads/2021/07/cropped-logo-dongthoigian-32x32.png Arduino https://dongthoigian.net/thu-thuat-may-tinh/arduino/ 32 32 Arduino – Giao tiếp không dây https://dongthoigian.net/arduino-giao-tiep-khong-day/ https://dongthoigian.net/arduino-giao-tiep-khong-day/#respond Thu, 03 Mar 2022 09:52:18 +0000 https://dongthoigian.net/?p=11654 Tìm hiểu các board giao tiếp Arduino

The post Arduino – Giao tiếp không dây appeared first on Dongthoigian.

]]>
Mô-đun bộ thu và phát không dây hoạt động ở tần số 315 Mhz. Chúng có thể dễ dàng lắp vào breadboard và hoạt động tốt với các bộ vi điều khiển để tạo ra một liên kết dữ liệu không dây rất đơn giản. Với một cặp máy phát và máy thu, các mô-đun sẽ chỉ hoạt động truyền dữ liệu một chiều, tuy nhiên, bạn sẽ cần hai cặp (có tần số khác nhau) để hoạt động như một cặp máy phát / máy thu.Lưu ý – Các mô-đun này là bừa bãi và nhận được một lượng lớn tiếng ồn. Cả máy phát và máy thu đều hoạt động ở tần số chung và không có ID.

Arduino - Giao tiếp không dây

Thông số kỹ thuật mô-đun máy thu

  • Mẫu sản phẩm – MX-05V
  • Điện áp hoạt động – DC5V
  • Dòng tĩnh lặng – 4mA
  • Tần số nhận – 315Mhz
  • Độ nhạy máy thu – -105DB
  • Kích thước – 30 * 14 * 7mm

Thông số kỹ thuật mô-đun máy phát

  • Mẫu sản phẩm – MX-FS-03V
  • Khoảng cách khởi động – 20-200 mét (điện áp khác nhau, kết quả khác nhau)
  • Điện áp hoạt động – 3,5-12V
  • Kích thước – 19 * 19mm
  • Chế độ hoạt động – AM
  • Tốc độ truyền – 4KB / S
  • Công suất truyền – 10mW
  • Tần số truyền – 315Mhz
  • Ăng-ten bên ngoài – dòng đa lõi hoặc đơn lõi thông thường 25cm
  • Sơ đồ chân từ trái → phải – (DATA; V CC ; GND)

Thành phần bắt buộc

Bạn sẽ cần các thành phần sau:

  • 2 × bảng Arduino UNO
  • Máy phát liên kết 1 × Rf
  • Bộ thu liên kết 1 × Rf

Thủ tục

Làm theo sơ đồ mạch và thực hiện các kết nối như trong hình dưới đây.

Arduino - Giao tiếp không dâ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.

 Arduino IDE trên máy tính của bạn

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 VirtualWire.lib vào thư mục thư viện như được đánh dấu trong ảnh chụp màn hình bên dưới.

Arduino IDE trên máy tính của bạn

Mã Arduino cho máy phát

//simple Tx on pin D12
#include <VirtualWire.h>
char *controller;

void setup() {
   pinMode(13,OUTPUT);
   vw_set_ptt_inverted(true);
   vw_set_tx_pin(12);
   vw_setup(4000);// speed of data transfer Kbps
}

void loop() {
   controller="1" ;
   vw_send((uint8_t *)controller, strlen(controller));
   vw_wait_tx(); // Wait until the whole message is gone
   digitalWrite(13,1);
   delay(2000);
   controller="0" ;
   vw_send((uint8_t *)controller, strlen(controller));
   vw_wait_tx(); // Wait until the whole message is gone
   digitalWrite(13,0);
   delay(2000);
}

Mã cần lưu ý

Đây là một mã đơn giản. Đầu tiên, nó sẽ gửi ký tự “1” và sau hai giây, nó sẽ gửi ký tự “0”, v.v.

Mã Arduino cho bộ thu

//simple Rx on pin D12
#include <VirtualWire.h>

void setup() {
   vw_set_ptt_inverted(true); // Required for DR3100
   vw_set_rx_pin(12);
   vw_setup(4000); // Bits per sec
   pinMode(5, OUTPUT);
   vw_rx_start(); // Start the receiver PLL running
}

void loop() {
   uint8_t buf[VW_MAX_MESSAGE_LEN];
   uint8_t buflen = VW_MAX_MESSAGE_LEN;
   if (vw_get_message(buf, &buflen)) // Non-blocking {
      if(buf[0]=='1') {
         digitalWrite(5,1);
      }
      if(buf[0]=='0') {
         digitalWrite(5,0);
      }
   }
}

Mã cần lưu ý

Đèn LED được kết nối với chân số 5 trên bảng Arduino được BẬT khi nhận ký tự ‘1’ và TẮT khi nhận ký tự ‘0’.

Arduino – Giao tiếp mạng

Mô-đun WiFi CC3000 của Texas Instruments là một gói nhỏ màu bạc, cuối cùng mang lại chức năng WiFi dễ sử dụng, giá cả phải chăng cho các dự án Arduino của bạn.

Nó sử dụng SPI để giao tiếp (không phải UART!) Để bạn có thể đẩy dữ liệu nhanh như bạn muốn hoặc chậm như bạn muốn. Nó có một hệ thống ngắt thích hợp với chân IRQ để bạn có thể có các kết nối không đồng bộ. Nó hỗ trợ 802.11b / g, bảo mật open / WEP / WPA / WPA2, TKIP & AES. Ngăn xếp TCP / IP tích hợp với giao diện “BSD socket” hỗ trợ TCP và UDP ở cả chế độ máy khách và máy chủ.

Arduino IDE trên máy tính của bạn

Thành phần bắt buộc

Bạn sẽ cần các thành phần sau:

  • 1 × Arduino Uno
  • 1 × Bảng đột phá Adafruit CC3000
  • 1 × 5V rơ le
  • 1 × Diode chỉnh lưu
  • 1 × LED
  • Điện trở 1 × 220 Ohm
  • 1 × Breadboard và một số dây jumper

Đối với dự án này, bạn chỉ cần Arduino IDE thông thường, thư viện CC3000 của Adafruit và thư viện CC3000 MDNS. Chúng tôi cũng sẽ sử dụng thư viện aREST để gửi lệnh tới relay qua WiFi.

Thủ tục

Làm theo sơ đồ mạch và thực hiện các kết nối như trong hình dưới đây.

Arduino IDE trên máy tính của bạn

Cấu hình phần cứng cho dự án này rất dễ dàng.

  • Kết nối chân IRQ của bảng CC3000 với chân số 3 của bảng Arduino.
  • VBAT vào pin 5 và CS vào pin 10.
  • Kết nối các chân SPI với bảng Arduino: MOSI, MISO và CLK với các chân 11, 12 và 13 tương ứng.
  • in được kết nối với Arduino 5V và GND với GND.

Bây giờ chúng ta hãy kết nối rơ le.

Sau khi đặt rơ le trên bảng mạch, bạn có thể bắt đầu xác định hai phần quan trọng trên rơ le của mình: phần cuộn dây ra lệnh cho rơ le và phần công tắc nơi chúng ta sẽ gắn đèn LED.

  • Đầu tiên, kết nối chân số 8 của bảng Arduino với một chân của cuộn dây.
  • Kết nối chân còn lại với mặt đất của bảng Arduino.

Bạn cũng phải đặt điốt chỉnh lưu (cực dương nối với chân nối đất) trên các chân của cuộn dây để bảo vệ mạch của bạn khi rơle chuyển mạch.

  • Kết nối + 5V của bảng Arduino với chân chung của công tắc rơ le.
  • Cuối cùng, kết nối một trong các chân khác của công tắc (thường là chân không được kết nối khi rơ le tắt) với đèn LED mắc nối tiếp với điện trở 220 Ohm và kết nối phía bên kia của đèn LED với đất của Arduino bảng.

Kiểm tra các thành phần riêng lẻ

Bạn có thể kiểm tra rơ le bằng bản phác thảo sau:

const int relay_pin = 8; // Relay pin

void setup() {
   Serial.begin(9600);
   pinMode(relay_pin,OUTPUT);
}

void loop() {
   // Activate relay
   digitalWrite(relay_pin, HIGH);
   // Wait for 1 second
   delay(1000);
   // Deactivate relay
   digitalWrite(relay_pin, LOW);
   // Wait for 1 second
   delay(1000);
}

Mã cần lưu ý

Mã tự giải thích. Bạn chỉ cần tải nó lên bảng và rơ le sẽ chuyển trạng thái mỗi giây, và đèn LED sẽ BẬT và TẮT tương ứng.

Thêm kết nối WiFi

Bây giờ chúng ta hãy điều khiển rơle không dây bằng chip WiFi CC3000. Phần mềm cho dự án này dựa trên giao thức TCP. Tuy nhiên, đối với dự án này, bo mạch Arduino sẽ chạy một máy chủ web nhỏ, vì vậy chúng tôi có thể “lắng nghe” các lệnh đến từ máy tính. Đầu tiên chúng ta sẽ quan tâm đến bản phác thảo Arduino, sau đó chúng ta sẽ xem cách viết mã phía máy chủ và tạo một giao diện đẹp mắt.

Đầu tiên, bản phác thảo Arduino. Mục tiêu ở đây là kết nối với mạng WiFi của bạn, tạo máy chủ web, kiểm tra xem có các kết nối TCP đến hay không, sau đó thay đổi trạng thái của rơle cho phù hợp.Các phần quan trọng của quy tắc

#include <Adafruit_CC3000.h>
#include <SPI.h>
#include <CC3000_MDNS.h>
#include <Ethernet.h>
#include <aREST.h>

Bạn cần xác định bên trong mã những gì cụ thể cho cấu hình của bạn, tức là tên và mật khẩu Wi-Fi và cổng cho giao tiếp TCP (chúng tôi đã sử dụng 80 ở đây).

// WiFi network (change with your settings!)
   #define WLAN_SSID "yourNetwork" // cannot be longer than 32 characters!
   #define WLAN_PASS "yourPassword"
   #define WLAN_SECURITY WLAN_SEC_WPA2 // This can be WLAN_SEC_UNSEC, WLAN_SEC_WEP, 
   // WLAN_SEC_WPA or WLAN_SEC_WPA2

// The port to listen for incoming TCP connections
   #define LISTEN_PORT 80

Sau đó, chúng tôi có thể tạo phiên bản CC3000, máy chủ và phiên bản aREST

// Server instance
   Adafruit_CC3000_Server restServer(LISTEN_PORT); // DNS responder instance
   MDNSResponder mdns; // Create aREST instance
   aREST rest = aREST();

Trong phần thiết lập () của bản phác thảo, bây giờ chúng ta có thể kết nối chip CC3000 với mạng –

cc3000.connectToAP(WLAN_SSID, WLAN_PASS, WLAN_SECURITY);

Làm thế nào máy tính sẽ biết nơi để gửi dữ liệu? Một cách là chạy bản phác thảo một lần, sau đó lấy địa chỉ IP của bo mạch CC3000 và sửa đổi lại mã máy chủ. Tuy nhiên, chúng tôi có thể làm tốt hơn và đó là lúc thư viện MDNS CC3000 phát huy tác dụng. Chúng tôi sẽ gán một tên cố định cho bảng CC3000 của chúng tôi với thư viện này, vì vậy chúng tôi có thể viết tên này trực tiếp vào mã máy chủ.

Điều này được thực hiện với đoạn mã sau:

if (!mdns.begin("arduino", cc3000)) {
   while(1);
}

Chúng tôi cũng cần lắng nghe các kết nối đến.

restServer.begin();

Tiếp theo, chúng ta sẽ viết mã cho hàm loop () của sketch sẽ được thực thi liên tục. Trước tiên, chúng tôi phải cập nhật máy chủ mDNS.

mdns.update();

Máy chủ chạy trên bảng Arduino sẽ đợi các kết nối đến và xử lý các yêu cầu.

Adafruit_CC3000_ClientRef client = restServer.available();
rest.handle(client);

Bây giờ khá dễ dàng để kiểm tra các dự án thông qua WiFi. Đảm bảo rằng bạn đã cập nhật bản phác thảo bằng tên và mật khẩu WiFi của riêng mình, đồng thời tải bản phác thảo lên bảng Arduino của bạn. Mở màn hình nối tiếp Arduino IDE của bạn và tìm địa chỉ IP của bo mạch của bạn.

Chúng ta hãy giả sử phần còn lại ở đây rằng nó giống như 192.168.1.103.

Sau đó, chỉ cần truy cập trình duyệt web yêu thích của bạn và nhập –

192.168.1.103/digital/8/1

Bạn sẽ thấy rằng rơle của bạn tự động BẬT.

Xây dựng giao diện chuyển tiếp

Bây giờ chúng ta sẽ viết mã giao diện của dự án. Ở đây sẽ có hai phần: tệp HTML chứa giao diện và tệp Javascript phía máy khách để xử lý các nhấp chuột trên giao diện. Giao diện ở đây dựa trên dự án aREST.js , được tạo ra để dễ dàng điều khiển các thiết bị WiFi từ máy tính của bạn. Đầu tiên chúng ta hãy xem tệp HTML, được gọi là interface.html. Phần đầu tiên bao gồm nhập tất cả các thư viện cần thiết cho giao diện

<head>
   <meta charset = utf-8 />
   <title> Relay Control </title>
   <link rel = "stylesheet" type = "text/css" 
      href = "https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css">
   <link rel="stylesheet" type = "text/css" href = "style.css">
   <script type = "text/javascript" 
      src = "https://code.jquery.com/jquery-2.1.4.min.js"></script>
   <script type = "text/javascript" 
      src = "https://cdn.rawgit.com/Foliotek/AjaxQ/master/ajaxq.js"></script>
   <script type = "text/javascript" 
      src = "https://cdn.rawgit.com/marcoschwartz/aREST.js/master/aREST.js"></script>
   <script type = "text/javascript" 
      src = "script.js"></script>
</head>

Sau đó, chúng tôi xác định hai nút bên trong giao diện, một để bật rơ le và nút kia để tắt lại.

<div class = 'container'>
   <h1>Relay Control</h1>
   <div class = 'row'>
      <div class = "col-md-1">Relay</div>
      <div class = "col-md-2">
         <button id = 'on' class = 'btn btn-block btn-success'>On</button>
      </div>
      <div class = "col-md-2">
         <button id = 'off' class = 'btn btn-block btn-danger'>On</button>
      </div>
   </div>
</div>

Bây giờ, chúng ta cũng cần một tệp Javascript phía máy khách để xử lý các nhấp chuột vào các nút. Chúng tôi cũng sẽ tạo một thiết bị mà chúng tôi sẽ liên kết với tên mDNS của thiết bị Arduino của chúng tôi. Nếu bạn đã thay đổi điều này trong mã Arduino, bạn cũng cần phải sửa đổi nó ở đây.

// Create device
var device = new Device("arduino.local");
// Button

$('#on').click(function() {
   device.digitalWrite(8, 1);
});

$('#off').click(function() {
   device.digitalWrite(8, 0);
});

Mã hoàn chỉnh cho dự án này có thể được tìm thấy trên kho lưu trữ GitHub . Vào thư mục giao diện và chỉ cần mở tệp HTML bằng trình duyệt yêu thích của bạn. Bạn sẽ thấy thứ gì đó tương tự bên trong trình duyệt của mình

Arduino IDE trên máy tính của bạn

Cố gắng nhấp vào một nút trên giao diện web; nó sẽ thay đổi trạng thái của rơle gần như ngay lập tức.

Nếu bạn quản lý để làm cho nó hoạt động, hãy hoan nghênh! Bạn vừa tạo một công tắc đèn điều khiển bằng Wi-Fi. Tất nhiên, bạn có thể kiểm soát nhiều hơn ánh sáng với dự án này. Chỉ cần đảm bảo rằng rơ-le của bạn hỗ trợ nguồn điện cần thiết cho thiết bị bạn muốn điều khiển và bạn đã sẵn sàng.

The post Arduino – Giao tiếp không dây appeared first on Dongthoigian.

]]>
https://dongthoigian.net/arduino-giao-tiep-khong-day/feed/ 0
Arduino – Thư viện giai điệu https://dongthoigian.net/arduino-thu-vien-giai-dieu/ https://dongthoigian.net/arduino-thu-vien-giai-dieu/#respond Fri, 25 Feb 2022 11:43:23 +0000 https://dongthoigian.net/?p=11599 Thư viện Arduino, tạo ra sóng vuông có tần số xác định (và chu kỳ nhiệm vụ 50%) trên bất kỳ chân Arduino nào. 

The post Arduino – Thư viện giai điệu appeared first on Dongthoigian.

]]>
Trong chương này, chúng ta sẽ sử dụng Thư viện âm điệu Arduino. Nó không có gì khác ngoài Thư viện Arduino, tạo ra sóng vuông có tần số xác định (và chu kỳ nhiệm vụ 50%) trên bất kỳ chân Arduino nào. Một khoảng thời gian có thể được chỉ định tùy ý, nếu không thì wave tiếp tục cho đến khi hàm stop () được gọi. Có thể kết nối chân cắm với bộ rung piezo hoặc loa để phát âm báo.

Cảnh báo – Không kết nối chân cắm trực tiếp với bất kỳ đầu vào âm thanh nào. Điện áp cao hơn đáng kể so với điện áp mức đường dây tiêu chuẩn và có thể làm hỏng đầu vào của card âm thanh, v.v. Bạn có thể sử dụng bộ chia điện áp để giảm điện áp.

Thành phần bắt buộc

Bạn sẽ cần các thành phần sau:

  • Loa 1 × 8 ohm
  • Điện trở 1 × 1k
  • 1 × bảng Arduino UNO

Thủ tục

Làm theo sơ đồ mạch và thực hiện các kết nối 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.

Để tạo tệp pitchhes.h, hãy nhấp vào nút ngay bên dưới biểu tượng màn hình nối tiếp và chọn “Tab mới” hoặc sử dụng Ctrl + Shift + N.

Sau đó, dán đoạn mã sau:

/*************************************************
* Public Constants
*************************************************/

#define NOTE_B0 31
#define NOTE_C1 33
#define NOTE_CS1 35
#define NOTE_D1 37
#define NOTE_DS1 39
#define NOTE_E1 41
#define NOTE_F1 44
#define NOTE_FS1 46
#define NOTE_G1 49
#define NOTE_GS1 52
#define NOTE_A1 55
#define NOTE_AS1 58
#define NOTE_B1 62
#define NOTE_C2 65
#define NOTE_CS2 69
#define NOTE_D2 73
#define NOTE_DS2 78
#define NOTE_E2 82
#define NOTE_F2 87
#define NOTE_FS2 93
#define NOTE_G2 98
#define NOTE_GS2 104
#define NOTE_A2 110
#define NOTE_AS2 117
#define NOTE_B2 123
#define NOTE_C3 131
#define NOTE_CS3 139
#define NOTE_D3 147
#define NOTE_DS3 156
#define NOTE_E3 165
#define NOTE_F3 175
#define NOTE_FS3 185
#define NOTE_G3 196
#define NOTE_GS3 208
#define NOTE_A3 220
#define NOTE_AS3 233
#define NOTE_B3 247
#define NOTE_C4 262
#define NOTE_CS4 277
#define NOTE_D4 294
#define NOTE_DS4 311
#define NOTE_E4 330
#define NOTE_F4 349
#define NOTE_FS4 370
#define NOTE_G4 392
#define NOTE_GS4 415
#define NOTE_A4 440
#define NOTE_AS4 466
#define NOTE_B4 494
#define NOTE_C5 523
#define NOTE_CS5 554
#define NOTE_D5 587
#define NOTE_DS5 622
#define NOTE_E5 659
#define NOTE_F5 698
#define NOTE_FS5 740
#define NOTE_G5 784
#define NOTE_GS5 831
#define NOTE_A5 880
#define NOTE_AS5 932
#define NOTE_B5 988
#define NOTE_C6 1047
#define NOTE_CS6 1109
#define NOTE_D6 1175
#define NOTE_DS6 1245
#define NOTE_E6 1319
#define NOTE_F6 1397
#define NOTE_FS6 1480
#define NOTE_G6 1568
#define NOTE_GS6 1661
#define NOTE_A6 1760
#define NOTE_AS6 1865
#define NOTE_B6 1976
#define NOTE_C7 2093
#define NOTE_CS7 2217
#define NOTE_D7 2349
#define NOTE_DS7 2489
#define NOTE_E7 2637
#define NOTE_F7 2794
#define NOTE_FS7 2960
#define NOTE_G7 3136
#define NOTE_GS7 3322
#define NOTE_A7 3520
#define NOTE_AS7 3729
#define NOTE_B7 3951
#define NOTE_C8 4186
#define NOTE_CS8 4435
#define NOTE_D8 4699
#define NOTE_DS8 4978

Lưu mã đã cho ở trên dưới dạng pitch.h

Mã Arduino

#include "pitches.h"
// notes in the melody:
int melody[] = {
NOTE_C4, NOTE_G3,NOTE_G3, NOTE_GS3, NOTE_G3,0, NOTE_B3, NOTE_C4};
// note durations: 4 = quarter note, 8 = eighth note, etc.:

int noteDurations[] = {
   4, 8, 8, 4,4,4,4,4 
};

void setup() {
   // iterate over the notes of the melody:
   for (int thisNote = 0; thisNote < 8; thisNote++) {
      // to calculate the note duration, take one second
      // divided by the note type.
      //e.g. quarter note = 1000 / 4, eighth note = 1000/8, etc.
      int noteDuration = 1000/noteDurations[thisNote];
      tone(8, melody[thisNote],noteDuration);
      //pause for the note's duration plus 30 ms:
      delay(noteDuration +30);
   }
}

void loop() {
   // no need to repeat the melody.
}

Mã cần lưu ý

Mã sử ​​dụng một tệp bổ sung, pitchhes.h. Tệp này chứa tất cả các giá trị cao độ cho các ghi chú điển hình. Ví dụ: NOTE_C4 là giữa C. NOTE_FS4 là F sắc nét, v.v. Bảng ghi chú này ban đầu được viết bởi Brett Hagman, dựa trên công việc của nó, lệnh tone (). Bạn có thể thấy nó hữu ích bất cứ khi nào bạn muốn tạo các nốt nhạc.

Kết quả

Bạn sẽ nghe thấy các nốt nhạc được lưu trong cao độ

Arduino – Giao tiếp không dây xem thêm

The post Arduino – Thư viện giai điệu appeared first on Dongthoigian.

]]>
https://dongthoigian.net/arduino-thu-vien-giai-dieu/feed/ 0
Arduino – Động cơ Servo https://dongthoigian.net/arduino-dong-co-servo/ https://dongthoigian.net/arduino-dong-co-servo/#respond Fri, 25 Feb 2022 11:32:42 +0000 https://dongthoigian.net/?p=11580 Động cơ Servo cũng được sử dụng trong ô tô điều khiển bằng sóng radio, con rối, và tất nhiên, cả rô bốt.

The post Arduino – Động cơ Servo appeared first on Dongthoigian.

]]>
Động cơ Servo là một thiết bị nhỏ có trục đầu ra. Trục này có thể được định vị đến các vị trí góc cụ thể bằng cách gửi cho servo một tín hiệu được mã hóa. Miễn là tín hiệu được mã hóa tồn tại trên đường đầu vào, servo sẽ duy trì vị trí góc của trục. Nếu tín hiệu mã hóa thay đổi, vị trí góc của trục thay đổi. Trong thực tế, các servo được sử dụng trong máy bay điều khiển bằng sóng vô tuyến để định vị các bề mặt điều khiển như thang máy và bánh lái. Chúng cũng được sử dụng trong ô tô điều khiển bằng sóng radio, con rối, và tất nhiên, cả rô bốt.

Arduino - Động cơ Servo

Servos cực kỳ hữu ích trong chế tạo người máy. Các động cơ nhỏ, có mạch điều khiển tích hợp và cực kỳ mạnh mẽ so với kích thước của chúng. Một servo tiêu chuẩn như Futaba S-148 có mô-men xoắn 42 oz / inch, rất mạnh so với kích thước của nó. Nó cũng lấy công suất tỷ lệ với tải cơ học. Do đó, một servo được tải nhẹ không tiêu tốn nhiều năng lượng.

Ruột của động cơ servo được hiển thị trong hình sau. Bạn có thể thấy mạch điều khiển, động cơ, một bộ bánh răng và vỏ máy. Bạn cũng có thể thấy 3 sợi dây kết nối với thế giới bên ngoài. Một dành cho nguồn (+ 5volts), nối đất, và dây màu trắng là dây điều khiển.

Arduino - Động cơ Servo

Hoạt động của động cơ Servo

Động cơ servo có một số mạch điều khiển và một chiết áp (một biến trở, hay còn gọi là nồi) được kết nối với trục đầu ra. Trong hình trên, có thể thấy chiếc nồi nằm ở phía bên phải của bảng mạch. Nồi này cho phép mạch điều khiển theo dõi góc hiện tại của động cơ servo.

Nếu trục ở đúng góc, thì động cơ sẽ tắt. Nếu mạch nhận thấy rằng góc không đúng, nó sẽ quay động cơ cho đến khi nó ở một góc mong muốn. Trục đầu ra của servo có thể di chuyển đến một nơi nào đó xung quanh 180 độ. Thông thường, nó nằm ở đâu đó trong phạm vi 210 độ, tuy nhiên, nó thay đổi tùy thuộc vào nhà sản xuất. Một servo bình thường được sử dụng để điều khiển chuyển động góc từ 0 đến 180 độ. Về mặt cơ học, nó không có khả năng quay xa hơn do có một nút dừng cơ khí được tích hợp trên bánh răng đầu ra chính.

Công suất đặt vào động cơ tỷ lệ với quãng đường mà nó cần đi được. Vì vậy, nếu trục cần quay một quãng đường lớn, động cơ sẽ chạy hết tốc lực. Nếu nó chỉ cần quay một lượng nhỏ, động cơ sẽ chạy với tốc độ chậm hơn. Đây được gọi là điều khiển tỷ lệ .

Làm thế nào để bạn giao tiếp với góc mà Servo nên quay?

Dây điều khiển được sử dụng để giao tiếp góc. Góc được xác định bởi khoảng thời gian của một xung được áp dụng cho dây điều khiển. Đây được gọi là Điều chế được mã hóa xung . Servo dự kiến ​​sẽ thấy một xung sau mỗi 20 mili giây (0,02 giây). Độ dài của xung sẽ xác định xem động cơ quay được bao xa. Ví dụ, một xung 1,5 mili giây sẽ làm cho động cơ quay sang vị trí 90 độ (thường được gọi là vị trí trung tính). Nếu xung ngắn hơn 1,5 mili giây, thì động cơ sẽ quay trục về gần 0 độ. Nếu xung dài hơn 1,5 mili giây, trục quay gần 180 độ.

Arduino - Động cơ Servo

Thành phần bắt buộc

Bạn sẽ cần các thành phần sau:

  • 1 × bảng Arduino UNO
  • 1 × Động cơ Servo
  • IC điều khiển 1 × ULN2003
  • Điện trở 1 × 10 KΩ

Thủ tục

Làm theo sơ đồ mạch và thực hiện các kết nối như trong hình dưới đây.

Arduino - Động cơ Servo

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.

Arduino - Động cơ Servo

Mã Arduino

/* Controlling a servo position using a potentiometer (variable resistor) */

#include <Servo.h>
   Servo myservo; // create servo object to control a servo
   int potpin = 0; // analog pin used to connect the potentiometer
   int val; // variable to read the value from the analog pin

void setup() {
   myservo.attach(9); // attaches the servo on pin 9 to the servo object
}

void loop() {
   val = analogRead(potpin);
   // reads the value of the potentiometer (value between 0 and 1023)
   val = map(val, 0, 1023, 0, 180);
   // scale it to use it with the servo (value between 0 and 180)
   myservo.write(val); // sets the servo position according to the scaled value
   delay(15);
}

Mã cần lưu ý

Động cơ servo có ba đầu cuối – nguồn, mặt đất và tín hiệu. Dây nguồn thường có màu đỏ và phải được kết nối với chân 5V trên Arduino. Dây nối đất thường có màu đen hoặc nâu và phải được kết nối với một đầu cuối của IC ULN2003 (10 -16). Để bảo vệ bo mạch Arduino của bạn khỏi bị hư hỏng, bạn sẽ cần một số IC trình điều khiển để làm điều đó. Ở đây chúng tôi đã sử dụng IC ULN2003 để điều khiển động cơ servo. Chân tín hiệu thường có màu vàng hoặc cam và phải được kết nối với chân số 9 của Arduino.

Kết nối chiết áp

Bộ chia điện áp / bộ chia điện thế là các điện trở trong một mạch nối tiếp có quy mô điện áp đầu ra theo một tỷ lệ cụ thể của điện áp đầu vào được áp dụng. Sau đây là sơ đồ mạch

Arduino - Động cơ Servo

$$ V_ {out} = (V_ {in} \ times R_ {2}) / (R_ {1} + R_ {2}) $$

V out  là điện thế đầu ra, phụ thuộc vào điện áp đầu vào được đặt vào (V in ) và điện trở (R 1 và R 2 ) trong chuỗi. Có nghĩa là dòng điện chạy qua R 1 cũng sẽ chạy qua R 2 mà không bị phân chia. Trong phương trình trên, khi giá trị của R 2 thay đổi, V out sẽ thay đổi tương ứng với điện áp đầu vào, V in . Thông thường, một chiết áp là một bộ chia điện thế, có thể chia tỷ lệ điện áp đầu ra của mạch dựa trên giá trị của biến trở, được chia tỷ lệ bằng cách sử dụng núm vặn. Nó có ba chân: GND, Tín hiệu và + 5V như trong sơ đồ bên dưới

Arduino - Động cơ Servo

Kết quả

Bằng cách thay đổi vị trí NOP của nồi, động cơ servo sẽ thay đổi góc của nó.

Arduino – Động cơ bước

Động cơ bước hoặc động cơ bước là một động cơ đồng bộ, không chổi than, chia một vòng quay đầy đủ thành một số bước. Không giống như động cơ DC không chổi than, quay liên tục khi đặt điện áp DC cố định vào nó, động cơ bước quay theo các góc bước rời rạc.

Do đó, Động cơ bước được sản xuất với các bước trên mỗi vòng quay là 12, 24, 72, 144, 180 và 200, dẫn đến các góc bước là 30, 15, 5, 2,5, 2 và 1,8 độ trên mỗi bước. Động cơ bước có thể được điều khiển có hoặc không có phản hồi.

Hãy tưởng tượng một động cơ trên một chiếc máy bay RC. Động cơ quay rất nhanh theo hướng này hay hướng khác. Bạn có thể thay đổi tốc độ với mức công suất cung cấp cho động cơ, nhưng bạn không thể yêu cầu cánh quạt dừng lại ở một vị trí cụ thể.

Bây giờ hãy tưởng tượng một máy in. Có rất nhiều bộ phận chuyển động bên trong máy in, bao gồm cả động cơ. Một động cơ như vậy hoạt động như bộ nạp giấy, các con lăn quay để di chuyển mảnh giấy khi mực đang được in trên đó. Động cơ này cần có khả năng di chuyển giấy một khoảng cách chính xác để có thể in dòng văn bản tiếp theo hoặc dòng tiếp theo của hình ảnh.

Có một động cơ khác được gắn vào một thanh ren để di chuyển đầu in qua lại. Một lần nữa, thanh ren đó cần được di chuyển một lượng chính xác để in hết chữ cái này đến chữ cái khác. Đây là nơi mà các động cơ bước có ích.

Arduino - Động cơ Servo

Động cơ bước hoạt động như thế nào?

Một động cơ DC thông thường chỉ quay theo một hướng trong khi động cơ Bước có thể quay theo từng bước chính xác.

Động cơ bước có thể quay một lượng độ (hoặc bước) chính xác như mong muốn. Điều này cho phép bạn kiểm soát toàn bộ động cơ, cho phép bạn di chuyển nó đến một vị trí chính xác và giữ vị trí đó. Nó làm như vậy bằng cách cấp nguồn cho các cuộn dây bên trong động cơ trong một khoảng thời gian rất ngắn. Điều bất lợi là bạn phải cung cấp năng lượng cho động cơ mọi lúc để giữ nó ở vị trí mà bạn mong muốn. Tất cả những gì bạn cần biết bây giờ là, để di chuyển một động cơ bước, bạn yêu cầu nó di chuyển một số bước nhất định theo hướng này hay hướng khác và cho nó biết tốc độ để bước theo hướng đó. Có rất nhiều loại động cơ bước. Các phương pháp được mô tả ở đây có thể được sử dụng để suy ra cách sử dụng các động cơ và trình điều khiển khác không được đề cập trong hướng dẫn này. Tuy nhiên, bạn luôn nên tham khảo bảng dữ liệu và hướng dẫn của động cơ và trình điều khiển cụ thể cho các kiểu

Arduino - Động cơ Servo

Thành phần bắt buộc

Bạn sẽ cần các thành phần sau:

  • 1 × bảng Arduino UNO
  • 1 × Động cơ bước lưỡng cực nhỏ như trong hình dưới đây
  • IC điều khiển 1 × LM298
Arduino - Động cơ Servo

Thủ tục

Làm theo sơ đồ mạch và thực hiện các kết nối như trong hình dưới đây

Arduino - Động cơ Servo

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.

Arduino - Động cơ Servo

Mã Arduino

/* Stepper Motor Control */

#include <Stepper.h>
const int stepsPerRevolution = 90;
// change this to fit the number of steps per revolution
// for your motor
// initialize the stepper library on pins 8 through 11:
Stepper myStepper(stepsPerRevolution, 8, 9, 10, 11);

void setup() {
   // set the speed at 60 rpm:
   myStepper.setSpeed(5);
   // initialize the serial port:
   Serial.begin(9600);
}

void loop() {
   // step one revolution in one direction:
   Serial.println("clockwise");
   myStepper.step(stepsPerRevolution);
   delay(500);
   // step one revolution in the other direction:
   Serial.println("counterclockwise");
   myStepper.step(-stepsPerRevolution);
   delay(500);
}

Mã cần lưu ý

Chương trình này điều khiển động cơ bước đơn cực hoặc lưỡng cực. Động cơ được gắn vào chân số 8 – 11 của Arduino.

Kết quả

Động cơ sẽ thực hiện một vòng quay theo một hướng, sau đó một vòng quay theo hướng khác.

Arduino – Thư viện xem thêm

The post Arduino – Động cơ Servo appeared first on Dongthoigian.

]]>
https://dongthoigian.net/arduino-dong-co-servo/feed/ 0
Arduino – Động cơ DC https://dongthoigian.net/arduino-dong-co-dc/ https://dongthoigian.net/arduino-dong-co-dc/#respond Tue, 22 Feb 2022 04:31:37 +0000 https://dongthoigian.net/?p=11528 Tìm hiểu động cơ DC trong Arduino

The post Arduino – Động cơ DC appeared first on Dongthoigian.

]]>
Trong chương này, chúng tôi sẽ giao diện các loại động cơ khác nhau với bảng Arduino (UNO) và hướng dẫn bạn cách kết nối động cơ và điều khiển nó từ bảng của bạn.

Có ba loại động cơ khác nhau –

  • Động cơ DC
  • Động cơ servo
  • Động cơ bước

Động cơ DC (Động cơ dòng điện một chiều) là loại động cơ phổ biến nhất. Động cơ điện một chiều thường chỉ có hai dây dẫn, một dây dẫn dương và một dây dẫn cực âm. Nếu bạn kết nối trực tiếp hai dây dẫn này với pin, động cơ sẽ quay. Nếu bạn chuyển các dây dẫn, động cơ sẽ quay theo hướng ngược lại.

Arduino - Động cơ DC

Cảnh báo – Không điều khiển động cơ trực tiếp từ các chân bảng Arduino. Điều này có thể làm hỏng bảng. Sử dụng Mạch trình điều khiển hoặc IC.

Chúng tôi sẽ chia chương này thành ba phần –

  • Chỉ cần làm cho động cơ của bạn quay
  • Kiểm soát tốc độ động cơ
  • Điều khiển hướng quay của động cơ DC

Thành phần bắt buộc

Bạn sẽ cần các thành phần sau:

  • 1x bảng Arduino UNO
  • 1x bóng bán dẫn PN2222
  • 1x Động cơ DC 6V nhỏ
  • 1x 1N4001 diode
  • Điện trở 1x 270 Ω

Thủ tục

Làm theo sơ đồ mạch và thực hiện các kết nối như trong hình dưới đây.

Arduino - Động cơ DC

Các biện pháp phòng ngừa

Thực hiện các biện pháp phòng ngừa sau đây khi thực hiện các kết nối.

  • Đầu tiên, hãy đảm bảo rằng bóng bán dẫn được kết nối đúng cách. Mặt phẳng của bóng bán dẫn phải đối diện với bảng Arduino như trong hình.
  • Thứ hai, đầu sọc của diode phải hướng về đường nguồn + 5V theo cách sắp xếp như trong hình.

Spin ControlArduino Code

int motorPin = 3;

void setup() {

}

void loop() {
   digitalWrite(motorPin, HIGH);
}

Mã cần lưu ý

Transistor hoạt động giống như một công tắc, điều khiển nguồn điện cho động cơ. Chân 3 của Arduino được sử dụng để bật và tắt bóng bán dẫn và được đặt tên là ‘motorPin’ trong bản phác thảo.

Kết quả

Động cơ sẽ quay hết tốc độ khi chân Arduino số 3 tăng cao.

Kiểm soát tốc độ động cơ

Sau đây là sơ đồ của động cơ DC, được kết nối với bảng Arduino.

Arduino - Động cơ DC

Mã Arduino

int motorPin = 9;

void setup() {
   pinMode(motorPin, OUTPUT);
   Serial.begin(9600);
   while (! Serial);
   Serial.println("Speed 0 to 255");
}

void loop() {
   if (Serial.available()) {
      int speed = Serial.parseInt();
      if (speed >= 0 && speed <= 255) {
         analogWrite(motorPin, speed);
      }
   }
}

Mã cần lưu ý

Transistor hoạt động giống như một công tắc, điều khiển công suất của động cơ. Chân 3 của Arduino được sử dụng để bật và tắt bóng bán dẫn và được đặt tên là ‘motorPin’ trong bản phác thảo.

Khi chương trình bắt đầu, nó sẽ nhắc bạn cung cấp các giá trị để điều khiển tốc độ của động cơ. Bạn cần nhập giá trị từ 0 đến 255 trong Serial Monitor.

Arduino - Động cơ DC

Trong hàm ‘loop’, lệnh ‘Serial.parseInt’ được sử dụng để đọc số được nhập dưới dạng văn bản trong Serial Monitor và chuyển nó thành ‘int’. Bạn có thể gõ bất kỳ số nào ở đây. Câu lệnh ‘if’ trong dòng tiếp theo chỉ đơn giản là ghi một ký tự tương tự với số này, nếu số nằm trong khoảng từ 0 đến 255.

Kết quả

Động cơ DC sẽ quay với các tốc độ khác nhau theo giá trị (0 đến 250) nhận được qua cổng nối tiếp.

Kiểm soát hướng quay

Để điều khiển hướng của spin của DC động cơ, mà không trao đổi các nhân vật chính, bạn có thể sử dụng một mạch gọi là H-Bridge . Cầu H là một mạch điện tử có thể điều khiển động cơ theo cả hai chiều. Cầu H được sử dụng trong nhiều ứng dụng khác nhau. Một trong những ứng dụng phổ biến nhất là điều khiển động cơ trong robot. Nó được gọi là cầu H vì nó sử dụng bốn bóng bán dẫn được kết nối theo cách mà sơ đồ có dạng chữ “H.”

Chúng tôi sẽ sử dụng IC L298 H-Bridge ở đây. L298 có thể điều khiển tốc độ và hướng của động cơ DC và động cơ bước, đồng thời có thể điều khiển hai động cơ đồng thời. Đánh giá hiện tại của nó là 2A cho mỗi động cơ. Tuy nhiên, ở những dòng điện này, bạn sẽ cần phải sử dụng đế tản nhiệt.

Arduino - Động cơ DC

Thành phần bắt buộc

Bạn sẽ cần các thành phần sau:

  • IC cầu 1 × L298
  • 1 × động cơ DC
  • 1 × Arduino UNO
  • 1 × breadboard
  • 10 × dây jumper

Thủ tục

Sau đây là sơ đồ giao diện động cơ DC với bo mạch Arduino Uno.

Sơ đồ trên cho thấy cách kết nối IC L298 để điều khiển hai động cơ. Có ba chân đầu vào cho mỗi động cơ, Input1 (IN1), Input2 (IN2) và Enable1 (EN1) cho Motor1 và Input3, Input4 và Enable2 cho Motor2.

Vì chúng ta sẽ chỉ điều khiển một động cơ trong ví dụ này, chúng ta sẽ kết nối Arduino với IN1 (chân 5), IN2 (chân 7) và Enable1 (chân 6) của IC L298. Chân 5 và 7 là đầu vào kỹ thuật số, tức là đầu vào BẬT hoặc TẮT, trong khi chân 6 cần tín hiệu điều chế độ rộng xung (PWM) để điều khiển tốc độ động cơ. Bảng sau đây cho thấy động cơ sẽ quay theo hướng nào dựa trên các giá trị kỹ thuật số của IN1 và IN2.

TRONG 1TRONG 2Hành vi động cơ
PHANH
1PHÍA TRƯỚC
1PHÍA SAU
11PHANH

Chân IN1 của IC L298 được kết nối với chân 8 của Arduino trong khi IN2 được kết nối với chân 9. Hai chân kỹ thuật số này của Arduino điều khiển hướng của động cơ. Chân A của IC được kết nối với chân PWM 2 của Arduino. Điều này sẽ kiểm soát tốc độ của động cơ.

Để đặt giá trị của các chân 8 và 9 của Arduino, chúng ta đã sử dụng hàm digitalWrite () và để đặt giá trị của chân 2, chúng ta phải sử dụng hàm analogWrite ().

Các bước kết nối

  • Kết nối 5V và nối đất của IC với 5V và nối đất của Arduino, tương ứng.
  • Kết nối động cơ với chân 2 và 3 của IC.
  • Kết nối IN1 của IC với chân 8 của Arduino.
  • Kết nối IN2 của IC với chân 9 của Arduino.
  • Kết nối EN1 của IC với chân 2 của Arduino.
  • Kết nối SENS Một chân của IC với đất.
  • Kết nối Arduino bằng cáp USB Arduino và tải chương trình lên Arduino bằng phần mềm Arduino IDE.
  • Cung cấp nguồn cho bảng Arduino bằng nguồn điện, pin hoặc cáp USB.

Mã Arduino

const int pwm = 2 ; //initializing pin 2 as pwm
const int in_1 = 8 ;
const int in_2 = 9 ;
//For providing logic to L298 IC to choose the direction of the DC motor

void setup() {
   pinMode(pwm,OUTPUT) ; //we have to set PWM pin as output
   pinMode(in_1,OUTPUT) ; //Logic pins are also set as output
   pinMode(in_2,OUTPUT) ;
}

void loop() {
   //For Clock wise motion , in_1 = High , in_2 = Low
   digitalWrite(in_1,HIGH) ;
   digitalWrite(in_2,LOW) ;
   analogWrite(pwm,255) ;
   /* setting pwm of the motor to 255 we can change the speed of rotation
   by changing pwm input but we are only using arduino so we are using highest
   value to driver the motor */
   //Clockwise for 3 secs
   delay(3000) ;
   //For brake
   digitalWrite(in_1,HIGH) ;
   digitalWrite(in_2,HIGH) ;
   delay(1000) ;
   //For Anti Clock-wise motion - IN_1 = LOW , IN_2 = HIGH
   digitalWrite(in_1,LOW) ;
   digitalWrite(in_2,HIGH) ;
   delay(3000) ;
   //For brake
   digitalWrite(in_1,HIGH) ;
   digitalWrite(in_2,HIGH) ;
   delay(1000) ;
}

Kết quả

Đầu tiên động cơ sẽ chạy theo chiều kim đồng hồ (CW) trong 3 giây và sau đó chạy ngược chiều kim đồng hồ (CCW) trong 3 giây.

Arduino – Động cơ Servo xem thêm

The post Arduino – Động cơ DC appeared first on Dongthoigian.

]]>
https://dongthoigian.net/arduino-dong-co-dc/feed/ 0
Arduino – Cảm biến siêu âm https://dongthoigian.net/arduino-cam-bien-sieu-am/ https://dongthoigian.net/arduino-cam-bien-sieu-am/#respond Tue, 22 Feb 2022 03:54:08 +0000 https://dongthoigian.net/?p=11518 Cảm biến siêu âm Hoạt động không bị ảnh hưởng bởi ánh sáng mặt trời hoặc vật liệu đen xem thêm

The post Arduino – Cảm biến siêu âm appeared first on Dongthoigian.

]]>
Cảm biến siêu âm HC-SR04 sử dụng SONAR để xác định khoảng cách của một vật thể giống như loài dơi. Nó cung cấp khả năng phát hiện phạm vi không tiếp xúc tuyệt vời với độ chính xác cao và số đọc ổn định trong một gói dễ sử dụng từ 2 cm đến 400 cm hoặc 1 ”đến 13 feet.

Hoạt động không bị ảnh hưởng bởi ánh sáng mặt trời hoặc vật liệu đen, mặc dù về mặt âm học, các vật liệu mềm như vải có thể khó bị phát hiện. Nó hoàn chỉnh với máy phát và mô-đun thu sóng siêu âm.

Arduino - Cảm biến siêu âm
Arduino - Cảm biến siêu âm

Thông số kỹ thuật

  • Nguồn cung cấp – + 5V DC
  • Dòng tĩnh lặng – <2mA
  • Làm việc hiện tại – 15mA
  • Góc hiệu dụng – <15 °
  • Khoảng cách – 2cm – 400 cm / 1 ″ – 13ft
  • Độ phân giải – 0,3 cm
  • Góc đo – 30 độ

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 × Cảm biến ULTRASONIC (HC-SR04)

Thủ tục

Làm theo sơ đồ mạch và thực hiện các kết nối như trong hình dưới đây.

Arduino - Cảm biến siêu âm

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.

Arduino - Cảm biến siêu âm

Mã Arduino

const int pingPin = 7; // Trigger Pin of Ultrasonic Sensor
const int echoPin = 6; // Echo Pin of Ultrasonic Sensor

void setup() {
   Serial.begin(9600); // Starting Serial Terminal
}

void loop() {
   long duration, inches, cm;
   pinMode(pingPin, OUTPUT);
   digitalWrite(pingPin, LOW);
   delayMicroseconds(2);
   digitalWrite(pingPin, HIGH);
   delayMicroseconds(10);
   digitalWrite(pingPin, LOW);
   pinMode(echoPin, INPUT);
   duration = pulseIn(echoPin, HIGH);
   inches = microsecondsToInches(duration);
   cm = microsecondsToCentimeters(duration);
   Serial.print(inches);
   Serial.print("in, ");
   Serial.print(cm);
   Serial.print("cm");
   Serial.println();
   delay(100);
}

long microsecondsToInches(long microseconds) {
   return microseconds / 74 / 2;
}

long microsecondsToCentimeters(long microseconds) {
   return microseconds / 29 / 2;
}

Mã cần lưu ý

Cảm biến siêu âm có bốn đầu cuối – + 5V, Trigger, Echo và GND được kết nối như sau –

  • Kết nối chân + 5V với + 5v trên bảng Arduino của bạn.
  • Kết nối Trigger với chân số 7 trên bảng Arduino của bạn.
  • Kết nối Echo với chân số 6 trên bảng Arduino của bạn.
  • Kết nối GND với GND trên Arduino.

Trong chương trình của chúng tôi, chúng tôi đã hiển thị khoảng cách được cảm biến đo bằng inch và cm thông qua cổng nối tiếp.

Kết quả

Bạn sẽ thấy khoảng cách được cảm biến đo bằng inch và cm trên màn hình nối tiếp Arduino

Arduino – Công tắc kết nối

Các nút bấm hoặc công tắc kết nối hai thiết bị đầu cuối đang mở trong một mạch điện. Ví dụ này bật đèn LED trên chân 2 khi bạn nhấn công tắc nút bấm được kết nối với chân 8.

Điện trở kéo xuống

Điện trở kéo xuống được sử dụng trong các mạch logic điện tử để đảm bảo rằng đầu vào của Arduino ổn định ở mức logic dự kiến ​​nếu các thiết bị bên ngoài bị ngắt kết nối hoặc ở mức trở kháng cao. Vì không có gì được kết nối với chân đầu vào, điều đó không có nghĩa là nó là số 0 logic. Điện trở kéo xuống được kết nối giữa mặt đất và chân cắm thích hợp trên thiết bị.

Một ví dụ về điện trở kéo xuống trong mạch kỹ thuật số được thể hiện trong hình sau. Một công tắc nút bấm được kết nối giữa điện áp nguồn và chân vi điều khiển. Trong mạch như vậy, khi công tắc đóng, đầu vào của bộ điều khiển vi mô ở giá trị cao hợp lý, nhưng khi công tắc mở, điện trở kéo xuống kéo điện áp đầu vào xuống đất (giá trị 0 hợp lý), ngăn trạng thái không xác định ở đầu vào.

Điện trở kéo xuống phải có điện trở lớn hơn trở kháng của mạch logic, nếu không nó có thể kéo điện áp xuống quá nhiều và điện áp đầu vào tại chân sẽ duy trì ở giá trị logic thấp không đổi, bất kể vị trí công tắc.

Arduino - Cảm biến siêu âm

Thành phần bắt buộc

Bạn sẽ cần các thành phần sau:

  • 1 × bảng Arduino UNO
  • Điện trở 1 × 330 ohm
  • Điện trở 1 × 4,7K ohm (kéo xuống)
  • 1 × LED

Thủ tục

Làm theo sơ đồ mạch và thực hiện các kết nối như trong hình dưới đây.

Arduino - Cảm biến siêu âm

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.

Arduino - Cảm biến siêu âm

Mã Arduino

// constants won't change. They're used here to
// set pin numbers:
const int buttonPin = 8; // the number of the pushbutton pin
const int ledPin = 2; // the number of the LED pin
// variables will change:
int buttonState = 0; // variable for reading the pushbutton status

void setup() {
   // initialize the LED pin as an output:
   pinMode(ledPin, OUTPUT);
   // initialize the pushbutton pin as an input:
   pinMode(buttonPin, INPUT);
}

void loop() {
   // read the state of the pushbutton value:
   buttonState = digitalRead(buttonPin);
   // check if the pushbutton is pressed.
   // if it is, the buttonState is HIGH:
   if (buttonState == HIGH) {
      // turn LED on:
      digitalWrite(ledPin, HIGH);
   } else {
      // turn LED off:
      digitalWrite(ledPin, LOW);
   }
}

Mã cần lưu ý

Khi công tắc mở, (không nhấn nút nhấn), không có kết nối giữa hai đầu cuối của nút nhấn, do đó chân cắm được nối với đất (thông qua điện trở kéo xuống) và chúng tôi đọc là LOW. Khi công tắc đóng (nút ấn được nhấn), nó tạo kết nối giữa hai đầu cực của nó, kết nối chân cắm với 5 volt, do đó chúng tôi đọc là CAO.

Kết quả

Đèn LED BẬT khi nhấn nút và TẮT khi nhả nút.

Arduino – Động cơ DC xem thêm

The post Arduino – Cảm biến siêu âm appeared first on Dongthoigian.

]]>
https://dongthoigian.net/arduino-cam-bien-sieu-am/feed/ 0
Arduino – Cảm biến PIR https://dongthoigian.net/arduino-cam-bien-pir/ https://dongthoigian.net/arduino-cam-bien-pir/#respond Tue, 22 Feb 2022 03:29:14 +0000 https://dongthoigian.net/?p=11509 Tìm hiểu Arduino cảm biến PIR, hồng ngoại, nhiệt điện

The post Arduino – Cảm biến PIR appeared first on Dongthoigian.

]]>
Cảm biến PIR cho phép bạn cảm nhận chuyển động. Chúng được sử dụng để phát hiện con người đã di chuyển vào hoặc ra khỏi phạm vi của cảm biến. Chúng thường được tìm thấy trong các thiết bị và tiện ích được sử dụng tại nhà hoặc cho các doanh nghiệp. Chúng thường được gọi là cảm biến PIR, “Hồng ngoại thụ động”, “Nhiệt điện” hoặc “Chuyển động hồng ngoại”.

Sau đây là những ưu điểm của Cảm biến PIR –

  • Kích cỡ nhỏ
  • Dải ống kính rộng
  • Giao diện dễ dàng
  • Không tốn kém
  • Năng lượng thấp
  • Dễ sử dụng
  • Không mòn
Arduino - Cảm biến PIR

PIR được làm bằng cảm biến nhiệt điện, một lon kim loại tròn với tinh thể hình chữ nhật ở trung tâm, có thể phát hiện mức bức xạ hồng ngoại. Mọi thứ đều phát ra bức xạ ở mức độ thấp, và cái gì càng nóng thì càng phát ra nhiều bức xạ. Cảm biến trong máy dò chuyển động được chia làm hai nửa. Điều này là để phát hiện chuyển động (thay đổi) chứ không phải mức IR trung bình. Hai nửa được kết nối để chúng triệt tiêu lẫn nhau. Nếu một nửa nhìn thấy bức xạ IR nhiều hơn hoặc ít hơn phần còn lại, đầu ra sẽ tăng hoặc thấp.

Arduino - Cảm biến PIR

PIR có các cài đặt có thể điều chỉnh và có một tiêu đề được cài đặt trong miếng đệm nối đất / ra / nguồn 3 chân.

Arduino - Cảm biến PIR

Đối với nhiều dự án hoặc sản phẩm cơ bản cần phát hiện khi một người đã rời khỏi hoặc đi vào khu vực, cảm biến PIR là rất tốt. Lưu ý rằng PIR không cho bạn biết số lượng người xung quanh hoặc mức độ gần gũi của họ với cảm biến. Ống kính thường được gắn cố định vào một khoảng quét nhất định ở một khoảng cách xa và chúng đôi khi bị vật nuôi trong nhà đặt ra.

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
  • Cảm biến 1 × PIR (MQ3)

Thủ tục

Thực hiện theo sơ đồ mạch và thực hiện các kết nối như thể hiện trong hình dưới đây.

Arduino - Cảm biến PIR

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.

Arduino - Cảm biến PIR

Mã Arduino

#define pirPin 2
int calibrationTime = 30;
long unsigned int lowIn;
long unsigned int pause = 5000;
boolean lockLow = true;
boolean takeLowTime;
int PIRValue = 0;

void setup() {
   Serial.begin(9600);
   pinMode(pirPin, INPUT);
}

void loop() {
   PIRSensor();
}

void PIRSensor() {
   if(digitalRead(pirPin) == HIGH) {
      if(lockLow) {
         PIRValue = 1;
         lockLow = false;
         Serial.println("Motion detected.");
         delay(50);
      }
      takeLowTime = true;
   }
   if(digitalRead(pirPin) == LOW) {
      if(takeLowTime){
         lowIn = millis();takeLowTime = false;
      }
      if(!lockLow && millis() - lowIn > pause) {
         PIRValue = 0;
         lockLow = true;
         Serial.println("Motion ended.");
         delay(50);
      }
   }
}

Mã cần lưu ý

Cảm biến PIR có ba đầu cuối – V cc , OUT và GND. Kết nối cảm biến như sau:

  • Kết nối + V cc với + 5v trên bảng Arduino.
  • Kết nối OUT với chân số 2 trên bảng Arduino.
  • Kết nối GND với GND trên Arduino.

Bạn có thể điều chỉnh độ nhạy cảm biến và thời gian trễ thông qua hai biến trở nằm ở dưới cùng của bảng cảm biến.

Arduino - Cảm biến PIR

Khi cảm biến phát hiện bất kỳ chuyển động nào, Arduino sẽ gửi một thông báo qua cổng nối tiếp để nói rằng chuyển động được phát hiện. Cảm giác chuyển động PIR sẽ trì hoãn trong một thời gian nhất định để kiểm tra xem có chuyển động mới hay không. Nếu không có chuyển động nào được phát hiện, Arduino sẽ gửi một thông báo mới nói rằng chuyển động đã kết thúc.

Kết quả

Bạn sẽ thấy một thông báo trên cổng nối tiếp của mình nếu một chuyển động được phát hiện và một thông báo khác khi chuyển động dừng lại.

Arduino – Cảm biến siêu âm xem thêm

The post Arduino – Cảm biến PIR appeared first on Dongthoigian.

]]>
https://dongthoigian.net/arduino-cam-bien-pir/feed/ 0
Arduino – Cảm biến nhiệt độ https://dongthoigian.net/arduino-cam-bien-nhiet-do/ https://dongthoigian.net/arduino-cam-bien-nhiet-do/#respond Tue, 22 Feb 2022 03:11:31 +0000 https://dongthoigian.net/?p=11500 Thiết bị LM35 có lợi thế hơn so với cảm biến nhiệt độ tuyến tính được hiệu chuẩn

The post Arduino – Cảm biến nhiệt độ appeared first on Dongthoigian.

]]>
Dòng cảm biến nhiệt độ LM35 là thiết bị nhiệt độ mạch tích hợp chính xác với điện áp đầu ra tỷ lệ tuyến tính với nhiệt độ độ C.

Thiết bị LM35 có lợi thế hơn so với cảm biến nhiệt độ tuyến tính được hiệu chuẩn, vì người dùng không bắt buộc phải trừ điện áp không đổi lớn từ đầu ra để có được tỷ lệ Centigrade thuận tiện. Thiết bị LM35 không yêu cầu bất kỳ hiệu chuẩn hoặc cắt tỉa bên ngoài nào để cung cấp độ chính xác điển hình là ± ¼ ° C ở nhiệt độ phòng và ± ¾ ° C trong phạm vi nhiệt độ từ -55 ° C đến 150 ° C đầy đủ.

Arduino - Cảm biến nhiệt độ

Thông số kỹ thuật

  • Được hiệu chuẩn trực tiếp bằng độ C (độ C)
  • Hệ số thang đo tuyến tính + 10 mV / ° C
  • 0,5 ° C đảm bảo độ chính xác (ở 25 ° C)
  • Đánh giá cho phạm vi từ -55 ° C đến 150 ° C đầy đủ
  • Thích hợp cho các ứng dụng từ xa

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 × cảm biến LM35

Thủ tục

Làm theo sơ đồ mạch và nối các thành phần trên breadboard như trong hình dưới đây.

Arduino - Cảm biến nhiệt độ

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.

Arduino - Cảm biến nhiệt độ

Mã Arduino

float temp;
int tempPin = 0;

void setup() {
   Serial.begin(9600);
}

void loop() {
   temp = analogRead(tempPin);
   // read analog volt from sensor and save to variable temp
   temp = temp * 0.48828125;
   // convert the analog volt to its temperature equivalent
   Serial.print("TEMPERATURE = ");
   Serial.print(temp); // display temperature value
   Serial.print("*C");
   Serial.println();
   delay(1000); // update sensor reading each one second
}

Mã cần lưu ý

Cảm biến LM35 có ba đầu cuối – V s , V out và GND. Chúng tôi sẽ kết nối cảm biến như sau:

  • Kết nối + V s đến + 5V trên tàu Arduino của bạn.
  • Kết nối V ra Analog0 hoặc A0 trên bảng Arduino.
  • Kết nối GND với GND trên Arduino.

Bộ chuyển đổi tương tự sang kỹ thuật số (ADC) chuyển đổi các giá trị tương tự thành giá trị gần đúng kỹ thuật số dựa trên công thức Giá trị ADC = mẫu * 1024 / điện áp tham chiếu (+ 5v). Vì vậy, với tham chiếu +5 volt, giá trị xấp xỉ kỹ thuật số sẽ bằng điện áp đầu vào * 205.

Kết quả

Bạn sẽ thấy màn hình hiển thị nhiệt độ trên màn hình cổng nối tiếp được cập nhật mỗi giây.

Arduino – Máy dò / cảm biến nước

Gạch cảm biến nước được thiết kế để phát hiện nước, có thể được sử dụng rộng rãi trong việc cảm biến lượng mưa, mực nước và thậm chí rò rỉ chất lỏng.

Arduino - Cảm biến nhiệt độ

Kết nối cảm biến nước với Arduino là một cách tuyệt vời để phát hiện rò rỉ, tràn, lũ lụt, mưa, v.v. Nó có thể được sử dụng để phát hiện sự hiện diện, mức độ, khối lượng và / hoặc không có nước. Mặc dù điều này có thể được sử dụng để nhắc bạn tưới cây, nhưng có một cảm biến Grove tốt hơn cho điều đó. Cảm biến có một loạt các dấu vết tiếp xúc, có giá trị THẤP khi phát hiện có nước.

Trong chương này, chúng tôi sẽ kết nối cảm biến nước với Chân số 8 trên Arduino và sẽ tranh thủ đèn LED rất tiện dụng để giúp xác định khi nào cảm biến nước tiếp xúc với nguồn nướ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 × Cảm biến nước
  • 1 × dẫn
  • Điện trở 1 × 330 ohm

Thủ tục

Làm theo sơ đồ mạch và nối các thành phần trên breadboard như trong hình dưới đây.

Arduino - Cảm biến nhiệt độ

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.

Arduino - Cảm biến nhiệt độ

Mã Arduino

#define Grove_Water_Sensor 8 // Attach Water sensor to Arduino Digital Pin 8
#define LED 9 // Attach an LED to Digital Pin 9 (or use onboard LED)

void setup() {
   pinMode(Grove_Water_Sensor, INPUT); // The Water Sensor is an Input
   pinMode(LED, OUTPUT); // The LED is an Output
}

void loop() {
   /* The water sensor will switch LOW when water is detected.
   Get the Arduino to illuminate the LED and activate the buzzer
   when water is detected, and switch both off when no water is present */
   if( digitalRead(Grove_Water_Sensor) == LOW) {
      digitalWrite(LED,HIGH);
   }else {
      digitalWrite(LED,LOW);
   }
}

Mã cần lưu ý

Cảm biến nước có ba cực – S, V out (+) và GND (-). Kết nối cảm biến như sau:

  • Kết nối + V s đến + 5V trên tàu Arduino của bạn.
  • Kết nối S với chân số 8 trên bảng Arduino.
  • Kết nối GND với GND trên Arduino.
  • Kết nối đèn LED với chân số 9 trong bảng Arduino.

Khi cảm biến phát hiện nước, chân 8 trên Arduino trở nên THẤP và sau đó đèn LED trên Arduino được BẬT.

Kết quả

Bạn sẽ thấy đèn LED chỉ báo BẬT khi cảm biến phát hiện nước.

Arduino – Cảm biến PIR xem thêm

The post Arduino – Cảm biến nhiệt độ appeared first on Dongthoigian.

]]>
https://dongthoigian.net/arduino-cam-bien-nhiet-do/feed/ 0
Arduino – Bàn phím nối tiếp https://dongthoigian.net/arduino-ban-phim-noi-tiep/ https://dongthoigian.net/arduino-ban-phim-noi-tiep/#respond Mon, 21 Feb 2022 03:33:13 +0000 https://dongthoigian.net/?p=11471 Tìm hiểu cách kết nối bàn phím trong Arduino

The post Arduino – Bàn phím nối tiếp appeared first on Dongthoigian.

]]>
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.

Arduino - Bàn phím nối tiếp

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.

Arduino - Bàn phím nối tiếp

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.

Arduino - Bàn phím nối tiếp

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ảm biến độ ẩm (DHT22)

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.

Cảm biến độ ẩm (DHT22)
Cảm biến độ ẩm (DHT22)

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.

Cảm biến độ ẩm (DHT22)

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.

Arduino – Cảm biến nhiệt độ xem thêm

The post Arduino – Bàn phím nối tiếp appeared first on Dongthoigian.

]]>
https://dongthoigian.net/arduino-ban-phim-noi-tiep/feed/ 0
Arduino – Thông báo bàn phím https://dongthoigian.net/arduino-thong-bao-ban-phim/ https://dongthoigian.net/arduino-thong-bao-ban-phim/#respond Mon, 21 Feb 2022 03:10:05 +0000 https://dongthoigian.net/?p=11464 Một chuỗi văn bản sẽ được gửi đến máy tính dưới dạng đầu vào bàn phím. Chuỗi báo cáo số lần nút được nhấn

The post Arduino – Thông báo bàn phím appeared first on Dongthoigian.

]]>
Trong ví dụ này, khi nút được nhấn, một chuỗi văn bản sẽ được gửi đến máy tính dưới dạng đầu vào bàn phím. Chuỗi báo cáo số lần nút được nhấn. Sau khi bạn đã lập trình và kết nối Leonardo, hãy mở trình soạn thảo văn bản yêu thích của bạn để xem kết quả.

Cảnh báo – Khi bạn sử dụng lệnh Keyboard.print () , Arduino 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 bao gồm một nút ấn để bật tắt bàn phím, để bàn phím chỉ chạy sau khi nhấn nút.

Thành phần bắt buộc

Bạn sẽ cần các thành phần sau:

  • 1 × Breadboard
  • 1 × Arduino Leonardo, Micro hoặc bảng Do
  • 1 × nút bấm tạm thời
  • Điện trở 1 × 10k ohm

Thủ tục

Làm theo sơ đồ mạch và nối các thành phần trên breadboard như trong hình dưới đây.

Arduino - Thông báo bàn phím

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.

Arduino - Thông báo bàn phím

Mã Arduino

/*
   Keyboard Message test For the Arduino Leonardo and Micro,
      Sends a text string when a button is pressed.
   The circuit:
   * pushbutton attached from pin 4 to +5V
   * 10-kilohm resistor attached from pin 4 to ground
*/

#include "Keyboard.h"
const int buttonPin = 4; // input pin for pushbutton
int previousButtonState = HIGH; // for checking the state of a pushButton
int counter = 0; // button push counter

void setup() {
   pinMode(buttonPin, INPUT); // make the pushButton pin an input:
   Keyboard.begin(); // initialize control over the keyboard:
}

void loop() {
   int buttonState = digitalRead(buttonPin); // read the pushbutton:
   if ((buttonState != previousButtonState)&& (buttonState == HIGH)) // and it's currently pressed: {
      // increment the button counter
      counter++;
      // type out a message
      Keyboard.print("You pressed the button ");
      Keyboard.print(counter);
      Keyboard.println(" times.");
   }
   // save the current button state for comparison next time:
   previousButtonState = buttonState;
}

Mã cần lưu ý

Gắn một đầu cuối của nút bấm vào chân 4 trên Arduino. Gắn chân kia vào 5V. Sử dụng điện trở như một bộ kéo xuống, cung cấp một tham chiếu đến đất, bằng cách gắn nó từ chân 4 xuống đất.

Khi bạn đã lập trình bảng của mình, hãy rút cáp USB, mở trình soạn thảo văn bản và đặt con trỏ văn bản vào vùng nhập. Kết nối bảng với máy tính của bạn qua USB một lần nữa và nhấn nút để ghi vào tài liệu.

Kết quả

Bằng cách sử dụng bất kỳ trình soạn thảo văn bản nào, nó sẽ hiển thị văn bản được gửi qua Arduino.

Arduino – Điều khiển nút chuột

Sử dụng thư viện Chuột, bạn có thể điều khiển con trỏ trên màn hình của máy tính bằng Arduino Leonardo, Micro hoặc Due.

Ví dụ cụ thể này sử dụng năm nút bấm để di chuyển con trỏ trên màn hình. Bốn trong số các nút là hướng (lên, xuống, trái, phải) và một là để nhấp chuột trái. Chuyển động con trỏ từ Arduino luôn mang tính tương đối. Mỗi khi một đầu vào được đọc, vị trí của con trỏ sẽ được cập nhật so với vị trí hiện tại của nó.

Bất cứ khi nào một trong các nút định hướng được nhấn, Arduino sẽ di chuyển chuột, ánh xạ đầu vào CAO đến phạm vi 5 theo hướng thích hợp.

Nút thứ năm là để điều khiển một cú nhấp chuột trái từ chuột. Khi nút được nhả ra, máy tính sẽ nhận ra sự kiện.

Thành phần bắt buộc

Bạn sẽ cần các thành phần sau:

  • 1 × Breadboard
  • 1 × Arduino Leonardo, bảng mạch Micro hoặc bảng do
  • Điện trở 5 × 10k ohm
  • 5 × nút bấm tạm thời

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.

Arduino - Thông báo bàn phím

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.

Đối với ví dụ này, bạn cần sử dụng Arduino IDE 1.6.7

Arduino - Thông báo bàn phím

Mã Arduino

/*
   Button Mouse Control
   For Leonardo and Due boards only .Controls the mouse from 
   five pushbuttons on an Arduino Leonardo, Micro or Due.
   Hardware:
   * 5 pushbuttons attached to D2, D3, D4, D5, D6
   The mouse movement is always relative. This sketch reads
   four pushbuttons, and uses them to set the movement of the mouse.
   WARNING: When you use the Mouse.move() command, the Arduino takes
   over your mouse! Make sure you have control before you use the mouse commands.
*/

#include "Mouse.h"
// set pin numbers for the five buttons:
const int upButton = 2;
const int downButton = 3;
const int leftButton = 4;
const int rightButton = 5;
const int mouseButton = 6;
int range = 5; // output range of X or Y movement; affects movement speed
int responseDelay = 10; // response delay of the mouse, in ms

void setup() {
   // initialize the buttons' inputs:
   pinMode(upButton, INPUT);
   pinMode(downButton, INPUT);
   pinMode(leftButton, INPUT);
   pinMode(rightButton, INPUT);
   pinMode(mouseButton, INPUT);
   // initialize mouse control:
   Mouse.begin();
}

void loop() {
   // read the buttons:
   int upState = digitalRead(upButton);
   int downState = digitalRead(downButton);
   int rightState = digitalRead(rightButton);
   int leftState = digitalRead(leftButton);
   int clickState = digitalRead(mouseButton);
   // calculate the movement distance based on the button states:
   int xDistance = (leftState - rightState) * range;
   int yDistance = (upState - downState) * range;
   // if X or Y is non-zero, move:
   if ((xDistance != 0) || (yDistance != 0)) {
      Mouse.move(xDistance, yDistance, 0);
   }

   // if the mouse button is pressed:
   if (clickState == HIGH) {
      // if the mouse is not pressed, press it:
      if (!Mouse.isPressed(MOUSE_LEFT)) {
         Mouse.press(MOUSE_LEFT);
      }
   } else {                           // else the mouse button is not pressed:
      // if the mouse is pressed, release it:
      if (Mouse.isPressed(MOUSE_LEFT)) {
         Mouse.release(MOUSE_LEFT);
      }
   }
   // a delay so the mouse does not move too fast:
   delay(responseDelay);
}

Mã cần lưu ý

Kết nối bo mạch của bạn với máy tính bằng cáp micro-USB. Các nút được kết nối với đầu vào kỹ thuật số từ chân 2 đến chân 6. Đảm bảo rằng bạn sử dụng điện trở kéo xuống 10k.

Arduino – Bàn phím nối tiếp

The post Arduino – Thông báo bàn phím appeared first on Dongthoigian.

]]>
https://dongthoigian.net/arduino-thong-bao-ban-phim/feed/ 0
Arduino – Đồ thị thanh LED https://dongthoigian.net/arduino-do-thi-thanh-led/ https://dongthoigian.net/arduino-do-thi-thanh-led/#respond Mon, 21 Feb 2022 03:01:48 +0000 https://dongthoigian.net/?p=11454 Tìm hiểu Arduino IDE sơ đồ mạch và nối các thành phần trên breadboard

The post Arduino – Đồ thị thanh LED appeared first on Dongthoigian.

]]>
Ví dụ này cho bạn thấy cách đọc đầu vào tương tự ở chân 0 tương tự, chuyển đổi các giá trị từ analogRead () thành điện áp và in nó ra màn hình nối tiếp của Phần mềm Arduino (IDE).

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 × 5k ohm biến trở (chiết áp)
  • 2 × Jumper
  • 8 × LED hoặc bạn có thể sử dụng (hiển thị biểu đồ thanh LED như trong hình ảnh bên dưới)

Thủ tục

Làm theo sơ đồ mạch và nối các thành phần trên breadboard như trong hình dưới đây.

Arduino - Đồ thị thanh LED
Arduino - Đồ thị thanh LED

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.

Arduino - Đồ thị thanh LED

Đồ thị thanh LED 10 đoạn

Arduino - Đồ thị thanh LED

Đèn LED biểu đồ thanh 10 đoạn này có rất nhiều công dụng. Với kích thước nhỏ gọn, móc treo đơn giản, chúng dễ dàng cho các sản phẩm nguyên mẫu hoặc thành phẩm. Về cơ bản, chúng là 10 đèn LED màu xanh lam riêng lẻ được đặt cùng nhau, mỗi đèn có kết nối cực dương và cực âm riêng.

Chúng cũng có các màu vàng, đỏ và xanh lá cây.

Lưu ý – Ghim trên các biểu đồ thanh này có thể khác với những gì được liệt kê trên biểu dữ liệu. Xoay thiết bị 180 độ sẽ sửa thay đổi, làm cho chân 11 trở thành chân đầu tiên thẳng hàng.

Mã Arduino

/*
   LED bar graph
   Turns on a series of LEDs based on the value of an analog sensor. 
   This is a simple way to make a bar graph display. 
   Though this graph uses 8LEDs, you can use any number by
      changing the LED count and the pins in the array.
   This method can be used to control any series of digital
      outputs that depends on an analog input.
*/

// these constants won't change:
const int analogPin = A0; // the pin that the potentiometer is attached to
const int ledCount = 8; // the number of LEDs in the bar graph
int ledPins[] = {2, 3, 4, 5, 6, 7, 8, 9}; // an array of pin numbers to which LEDs are attached

void setup() {
   // loop over the pin array and set them all to output:
   for (int thisLed = 0; thisLed < ledCount; thisLed++) {
      pinMode(ledPins[thisLed], OUTPUT);
   }
}

void loop() {
   // read the potentiometer:
   int sensorReading = analogRead(analogPin);
   // map the result to a range from 0 to the number of LEDs:
   int ledLevel = map(sensorReading, 0, 1023, 0, ledCount);
   // loop over the LED array:
   for (int thisLed = 0; thisLed < ledCount; thisLed++) {
      // if the array element's index is less than ledLevel,
      // turn the pin for this element on:
      if (thisLed < ledLevel) {
         digitalWrite(ledPins[thisLed], HIGH);
      }else { // turn off all pins higher than the ledLevel:
         digitalWrite(ledPins[thisLed], LOW);
      }
   }
} 

Mã cần lưu ý

Bản phác thảo hoạt động như thế này: đầu tiên, bạn đọc đầu vào. Bạn ánh xạ giá trị đầu vào cho phạm vi đầu ra, trong trường hợp này là mười đèn LED. Sau đó, bạn thiết lập vòng lặp for để lặp lại các kết quả đầu ra. Nếu số của đầu ra trong chuỗi thấp hơn phạm vi đầu vào được ánh xạ, bạn bật nó lên. Nếu không, bạn tắt nó đi.

Kết quả

Bạn sẽ thấy đèn LED BẬT từng cái một khi giá trị của số đọc tương tự tăng lên và TẮT từng cái một trong khi số đọc đang giảm.

Arduino – Đăng xuất bàn phím

Ví dụ này sử dụng thư viện Bàn phím để đăng xuất bạn khỏi phiên người dùng trên máy tính của bạn khi chân 2 trên ARDUINO UNO được kéo xuống đất. Bản phác thảo mô phỏng thao tác nhấn phím theo chuỗi hai hoặc ba phím cùng lúc và sau một khoảng thời gian ngắn, nó sẽ nhả chúng ra.

Cảnh báo – Khi bạn sử dụng lệnh Keyboard.print () , Arduino 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 một chốt đã được kéo xuống đất.

Thành phần bắt buộc

Bạn sẽ cần các thành phần sau:

  • 1 × Breadboard
  • 1 × Arduino Leonardo, Micro hoặc bảng Do
  • 1 × nút bấm
  • 1 × Jumper

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.

Arduino - Đồ thị thanh LED

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. Đối với ví dụ này, bạn cần sử dụng Arduino IDE 1.6.7

Arduino - Đồ thị thanh LED

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 với các thư viện tên (được đánh dấu) như được hiển thị trong ảnh chụp màn hình sau.

Arduino - Đồ thị thanh LED

Mã Arduino

/*
   Keyboard logout
   This sketch demonstrates the Keyboard library.
   When you connect pin 2 to ground, it performs a logout.
   It uses keyboard combinations to do this, as follows:
   On Windows, CTRL-ALT-DEL followed by ALT-l
   On Ubuntu, CTRL-ALT-DEL, and ENTER
   On OSX, CMD-SHIFT-q
   To wake: Spacebar.
   Circuit:
   * Arduino Leonardo or Micro
   * wire to connect D2 to ground.
*/

#define OSX 0
#define WINDOWS 1
#define UBUNTU 2

#include "Keyboard.h"

// change this to match your platform:
int platform = WINDOWS;

void setup() {
   // make pin 2 an input and turn on the
   // pullup resistor so it goes high unless
   // connected to ground:
   
   pinMode(2, INPUT_PULLUP);
   Keyboard.begin();
}

void loop() {
   while (digitalRead(2) == HIGH) {
      // do nothing until pin 2 goes low
      delay(500);
   }
   
   delay(1000);
   
   switch (platform) {
      case OSX:
      Keyboard.press(KEY_LEFT_GUI);
	  
      // Shift-Q logs out:
      Keyboard.press(KEY_LEFT_SHIFT);
      Keyboard.press('Q');
      delay(100);
	  
      // enter:
      Keyboard.write(KEY_RETURN);
      break;
	  
      case WINDOWS:
      // CTRL-ALT-DEL:
      Keyboard.press(KEY_LEFT_CTRL);
      Keyboard.press(KEY_LEFT_ALT);
      Keyboard.press(KEY_DELETE);
      delay(100);
      Keyboard.releaseAll();
	  
      //ALT-l:
      delay(2000);
      Keyboard.press(KEY_LEFT_ALT);
      Keyboard.press('l');
      Keyboard.releaseAll();
      break;
	  
      case UBUNTU:
      // CTRL-ALT-DEL:
      Keyboard.press(KEY_LEFT_CTRL);
      Keyboard.press(KEY_LEFT_ALT);
      Keyboard.press(KEY_DELETE);
	  
      delay(1000);
      Keyboard.releaseAll();
	  
      // Enter to confirm logout:
      Keyboard.write(KEY_RETURN);
      break;
   }
   
   // do nothing:
   while (true);
}

Keyboard.releaseAll();

   // enter:
      Keyboard.write(KEY_RETURN);
      break;
      case WINDOWS:
	  
   // CTRL-ALT-DEL:
      Keyboard.press(KEY_LEFT_CTRL);
      Keyboard.press(KEY_LEFT_ALT);
      Keyboard.press(KEY_DELETE);
      delay(100);
      Keyboard.releaseAll();
	  
   //ALT-l:
      delay(2000);
      Keyboard.press(KEY_LEFT_ALT);
      Keyboard.press('l');
      Keyboard.releaseAll();
      break;
	  
   case UBUNTU:
      // CTRL-ALT-DEL:
      Keyboard.press(KEY_LEFT_CTRL);
      Keyboard.press(KEY_LEFT_ALT);
      Keyboard.press(KEY_DELETE);
      delay(1000);
      Keyboard.releaseAll();
	  
      // Enter to confirm logout:
      Keyboard.write(KEY_RETURN);
      break;
   }
   
// do nothing:
   while (true);
}

Mã cần lưu ý

Trước khi bạn tải chương trình lên bảng, hãy đảm bảo rằng bạn chỉ định đúng hệ điều hành mà bạn hiện đang sử dụng cho biến nền tảng.

Trong khi phác thảo đang chạy, nhấn nút sẽ kết nối chân 2 với mặt đất và bảng sẽ gửi chuỗi đăng xuất đến PC được kết nối USB.

Kết quả

Khi bạn kết nối chân 2 với mặt đất, nó sẽ thực hiện thao tác đăng xuất.

Nó sử dụng các tổ hợp bàn phím sau để đăng xuất:

  • Trên Windows , CTRL-ALT-DEL theo sau là ALT-l
  • Trên Ubuntu , CTRL-ALT-DEL và ENTER
  • Trên OSX , CMD-SHIFT-q

Arduino – Thông báo bàn phím xem thêm

The post Arduino – Đồ thị thanh LED appeared first on Dongthoigian.

]]>
https://dongthoigian.net/arduino-do-thi-thanh-led/feed/ 0