Đăng bởi Để lại phản hồi

Hướng dẫn mạch Cảm biến khoảng cách siêu âm với Arduino trên Tinkercad

Ở bài viết này, chúng ta sẽ học cách đo khoảng cách bằng Cảm biến khoảng cách (thiết bị dò khoảng cách siêu âm) và đầu vào digital của Arduino. Cụ thể, ta sẽ nối một mạch breadboard và sử dụng code Arduino đơn giản để điều khiển một đèn LED.

Ở những bài trước, bạn đã học được cách sử dụng nút nhấncảm biến chuyển động PIR (với đầu vào digital của Arduino). Hôm nay, chúng ta sẽ ôn lại những kỹ năng đó nhé.

Cảm biến khoảng cách sử dụng sóng âm để nhận tín diệu bật lại từ các vật thể trước mặt chúng, giống như loài dơi sử dụng khả năng định vị bằng tiếng vang để cảm nhận môi trường xung quanh. Cảm biến khoảng cách gửi đi tín hiệu và đo thời gian tín hiệu quay trở lại. Chương trình Arduino nhận thông tin này và tính toán khoảng cách giữa cảm biến và vật thể.

Mạch mẫu Cảm biến khoảng cách siêu âm với Arduino trên Tinkercad

Hãy xem mạch mẫu trên, nhấp Start Simulation và nhấp vào cảm biến khoảng cách. Thao tác này sẽ kích hoạt ra một khu vực hình quạt ở phía trước cảm biến, với một “đối tượng” hình tròn bên trong.

Nhấp và kéo vòng tròn “đối tượng” lại gần (hoặc ra xa hơn), bạn sẽ thấy giá trị khoảng cách thay đổi trên màn hình. Nhiều đèn LED sẽ sáng hơn khi đối tượng đến gần cảm biến.

Bước 1: Xây dựng mạch LED

Tương tự các bài viết trước, ta bắt đầu đấu dây Arduino và breadboard với nguồn và đất. Sau đó thêm ba đèn LED vào breadboard, như hình minh họa. Đây sẽ là các đèn hoạt động như một “biểu đồ” trực quan hiển thị khoảng cách đo được của cảm biến.

Kéo Arduino Uno và breadboard từ bảng components vào bảng làm việc.

Kết nối chân 5 voltchân nối đất trên Arduino với đường dây nguồn (+)đất (-) trên breadboard. Bạn có thể thay đổi màu sắc dây nếu muốn (sử dụng mục inspector hoặc phím số trên bàn phím).

Kéo ba đèn LED vào hàng E của breadboard, đặt cách nhau 2 lỗ. Bạn cũng có thể thay đổi màu đèn trong mục inspector (khi nhấp vào từng đèn).

Sử dụng điện trở 220 Ohm để nối từng cực âm của các đèn LED (chân trái) với thanh nối đất (màu đen) của bảng mạch. Bạn có thể thay đổi giá trị của điện trở bằng cách chọn nó và điều chỉnh từ menu.

Kết nối các cực dương của đèn LED (chân phải) với các chân digital  4, 3 và 2 trên Arduino. Cực dương của đèn LED (+) là nơi dòng điện chạy vào. Chúng sẽ nối với các chân đầu ra digital trên Arduino. Cực âm (-) là nơi mà dòng điện chạy qua, sẽ kết nối với đất.

Bước 2: Thêm cảm biến tiệm cận

Cảm biến tiệm cận có nhiều loại. Trong Tinkercad Circuits, bạn có thể chọn cảm biến ba chân hoặc cảm biến bốn chân. Nhìn chung, cảm biến khoảng cách có một chân nối với đất, một chân nối với 5 volt, chân thứ ba để gửi tín hiệu và chân thứ tư để nhận tín hiệu. Các chân “gửi” và “nhận” thường được kết hợp thành một chân.

Trong trình chỉnh sửa mạch (circuits editor), bạn hãy tìm cảm biến khoảng cách. Để tìm cảm biến bốn chân, hãy xem mục “ALL” trong bảng components (sử dụng menu thả xuống).

Đặt cảm biến ở phía bên trái các đèn LED, như trong hình.

Nối dây cảm biến để chân 5V kết nối với thanh điện áp 5V, chân GND kết nối với thanh nối đất, chân SIG hoặc TRIG với chân 7 của Arduino (và nếu sử dụng cảm biến bốn chân, chân ECHO kết nối với chân 6 của Arduino).

Bước 3: Code với khối

Giờ ta sẽ dùng trình chỉnh sửa code để xem trạng thái của cảm biến, sau đó thiết lập để đèn LED sáng dựa trên giá trị của cảm biến nhé.

Nhấp vào nút “Code” để mở trình chỉnh sửa. Các khối màu xám là chú thích để ghi lại nhận xét. Chúng không bắt buộc và sẽ không được thực thi khi chương trình .

Nhấp vào danh mục Variables. Tạo một biến mới có tên là “distanceThreshold” và sử dụng khối “set” để đặt nó thành 350 (cm).

Để lưu trữ giá trị cảm biến, hãy tạo một biến có tên là “cm“.

Kéo ra khối “set” và điều chỉnh từ menu thành biến cm vừa tạo.

Trong danh mục Input, hãy kéo khối “read ultrasonic distance sensor on” và đặt nó vào bên trong khối set.

Điều chỉnh từ menu bên trong khối input để đặt chân trigger thành 7, chân echo thành “same as trigger” và đơn vị tính thành cm.

Tùy chọn tạo một biến mới để chuyển đổi cm sang inch, với một khối set và một khối arithmetic để đặt inch bằng (cm / 2,54).

Thêm một số khối serial monitoring (giám sát) để xuất ra khoảng cách cảm biến, theo đơn vị cm và inch.

Nhấp vào danh mục Control và kéo ra một khối if then, sau đó điều hướng đến Math và kéo một khối comparator (so sánh) vào khối if.

Trong danh mục Variables, lấy biến cm và biến distanceThreshold; kéo chúng vào khối comparator, điều chỉnh từ menu để nó có nội dung “if cm > distanceThreshold then“.

Thêm ba khối đầu ra digital bên trong câu lệnh if để đặt các chân 2, 3 và 4 thành LOW.

Nhân đôi câu lệnh if này bốn lần, sau đó thêm các khối arithmetic và khối and/or để tạo ra năm câu lệnh if phát hiện các trạng thái tổng thể.

  1. Trạng thái đầu tiên là “the distance is farther than our threshold” nên không có đèn LED nào sáng.
  2. Khi khoảng cách gần hơn hoặc bằng khoảng cách Threshold và lớn hơn khoảng cách Threshold-100, chỉ sáng đèn LED của chân 2.
  3. Khi khoảng cách nằm giữa Threshold-100Threshold-250, thì làm sáng hai đèn LED.

Như vậy ta đã có tất cả các trạng thái mong muốn.

Bước 4: Giải thích code cảm biến khoảng cách

Khi mở trình sửa code, bạn có thể nhấp vào menu ở bên trái và chọn “Block + Text” để hiển thị code Arduino được tạo bởi các khối code.

Trước setup(), ta tạo các biến để lưu trữ ngưỡng khoảng cách mong muốn, cũng như giá trị cảm biến theo đơn vị cm và inch. Chúng được khai báo bằng int vì là số nguyên.

Tiếp theo là một đoạn code để đọc cảm biến khoảng cách siêu âm. Đối với các bài viết trước, bạn đã khá quen thuộc với hàm setup()loop(). Trong bài viết này, hàm readUltrasonicDistance() sẽ được sử dụng để mô tả code cảm biến và giữ nó tách biệt với phần chính của chương trình. Định nghĩa hàm bắt đầu với kiểu dữ liệu mà hàm sẽ trả về (hoặc gửi lại chương trình chính). Trong trường hợp này, hàm trả về  long, là một số thập phân có nhiều chữ số. Tiếp theo là tên của hàm (tuỳ ý người dùng). Sau đó, trong dấu ngoặc đơn là các đối số mà hàm nhận. int triggerPin, int echoPin là các khai báo biến cho các chân kết nối của cảm biến. Các số pin sẽ được chỉ định khi bạn gọi hàm trong chương trình chính loop(). Bên trong hàm, các biến cục bộ này được sử dụng để tham chiếu thông tin bạn đã truyền cho nó từ vòng lặp chính loop() (hoặc từ một hàm khác). Bản thân hàm readUltrasonicDistance() này sẽ gửi một tín hiệu qua trigger Pin và báo cáo lại thời gian cần thiết để lấy lại tín hiệu qua echoPin.

Trong setup, các chân được cấu hình bằng pinMode(). Kết nối serial monitor được thiết lập bằng Serial.begin. Các chân 2, 3 và 4 được cấu hình làm đầu ra để điều khiển đèn LED.

Trong vòng lặp chính, distanceThreshold được đặt thành là 350 cm.

Để chuyển đổi cm sang inch, ta chia giá trị cho 2,54. Việc xuất ra serial monitor sẽ giúp bạn quan sát được sự thay đổi (khoảng cách) rõ ràng hơn, so với khi chỉ có mỗi đèn LED hiển thị trạng thái.

Sáu câu lệnh if của vòng lặp đánh giá các phạm vi khoảng cách khác nhau (từ 0 đến 350cm), sau đó chiếu sáng lượng đèn LED đưa trên khoảng cách.

Nếu muốn thấy sự thay đổi rõ ràng hơn trên các đèn, bạn có thể thay đổi biến distanceThreshold và/hoặc phạm vi mà bạn đang xem (bằng cách thay đổi các đối số trong câu lệnh if). Việc này được gọi là hiệu chuẩn.

Bước 5: Xây dựng mạch thật

Nếu thực hành trên mạch thật, bạn có thể dùng thử serial monitor của phần mềm Arduino (nút kính lúp ở phía trên bên phải của cửa sổ phác thảo).

Bạn có thể hiệu chuẩn bằng cách sau:

  1. Hãy đặt một vật gì đó trước cảm biến và quan sát khoảng cách trên serial monitor. Sau đó, thiết lập distanceThreshold thành giá trị đó.
  2. Điều chỉnh “giới hạn” ngưỡng khoảng cách khác nhau thành một khoảng phù hợp với giá trị ban đầu, ví dụ: nếu bàn tay của bạn cách 60 cm, phạm vi của bạn có thể là 60-40, 40-20 và 20-0.
  3. Cuối cùng, tải lại code và thử di chuyển vật thể trước cảm biến. Khi càng đến gần, bạn sẽ thấy các đèn LED bật sáng lên từng cái một.

Nguồn: instructables.com
Lượt dịch: Fuvitech.vn

Đăng bởi Để lại phản hồi

Hướng dẫn mạch Cảm biến nhiệt độ TMP36 với Arduino trên Tinkercad

Trong bài hướng dẫn hôm nay, ta sẽ “biến” Arduino thành một nhiệt kế – sử dụng Cảm biến nhiệt độ để đo nhiệt độ (bề mặt cơ thể người) và đưa tín hiệu đầu ra đến ba đèn LED. Mặc dù Arduino là một công cụ kỹ thuật số, nó vẫn có thể chuyển đổi các tín hiệu analog đầu vào (ví dụ như Cảm biến nhiệt độ TMP36) bằng bộ chuyển đổi Analog-to-Digital (ADC) tích hợp sẵn (truy cập thông qua các chân analog A0 đến A5). 

Mạch mẫu Cảm biến nhiệt độ TMP36 với Arduino trên Tinkercad.

Bạn hãy tự khám phá mạch mẫu bên trên. Nhấp Start Simulation, nhấp vào cảm biến TMP, sau đó kéo thanh trượt để điều chỉnh nhiệt độ mô phỏng đầu vào và quan sát các đèn LED hiển thị kết quả.

Trong bài viết này, bạn sẽ tự xây dựng một mạch mô phỏng tương tự mạch mẫu. Nếu muốn thực hành thực tế, bạn sẽ cần sử dụng:

  • 1 Arduino Uno
  • 1 cáp USB
  • 1 breadboard và dây
  • 3 đèn LED
  • 3 điện trở giống nhau (giá trị bất kỳ từ 100 – 1K, tốt nhất nên sử dụng 220 Ohms)
  • 1 cảm biến nhiệt độ TMP36

Tham khảo thêm: Sản phẩm Cảm Biến Nhiệt Độ LM35

Bước 1: Xây dựng mạch LED

Tương tự như những bài viết trước, ta bắt đầu bằng cách đấu dây Arduino và breadboard với nguồn và đất, sau đó thêm ba đèn LED màu đỏ. Đây sẽ là các đèn chỉ báo hoặc “bar graph” cho mạch.

Kéo Arduino Uno và breadboard từ bảng components vào bảng làm việc, đặt bên cạnh mạch hiện có.

Nối chân 5 voltchân đất trên Arduino với đường dây nguồn (+) và đất (-) trên breadboard. Bạn có thể thay đổi màu sắc dây nếu muốn (sử dụng inspector hoặc phím số trên bàn phím).

Kéo ba đèn LED vào hàng E của breadboard, đặt cách nhau 2 lỗ. Bạn có thể thay đổi màu đèn trong mục inspector khi nhấp vào từng đèn.

Sử dụng điện trở 220 Ohm để nối cực âm của mỗi đèn LED (chân trái) với thanh nối đất (màu đen) của bảng mạch. Trong Tinkercad Circuits, bạn có thể thay đổi giá trị điện trở bằng cách chọn nó và chỉnh từ menu thả xuống của inspector.

Nối cực dương của các đèn LED (bên phải, chân dài hơn) với các chân digital 4, 3 và 2 trên Arduino. Đây là nơi mà dòng điện sẽ chạy vào.

Cực âm (-) là cực mà dòng điện chạy qua, được nối với đất.

Bước 2: Thêm cảm biến nhiệt độ

Cảm biến nhiệt độ tạo ra một tín hiệu điện áp thay đổi, tùy thuộc vào nhiệt độ mà nó cảm nhận được. Cảm biến có ba chân: một chân kết nối với đất, một chân kết nối với 5V và một chân thứ ba tạo ra điện áp thay đổi cho Arduino (tương tự như tín hiệu analog phát ra từ biến trở).

HIện tại thị trường có nhiều mẫu cảm biến nhiệt độ khác nhau. Tuy nhiên, mẫu TMP36 khá tiện lợi vì điện áp đầu ra của nó tỷ lệ thuận với nhiệt độ tính bằng độ C.

Trong trình chỉnh sửa mạch, tìm cảm biến nhiệt độ trong mục components.

Đặt cảm biến (TMP36) trên breadboard với phần tròn quay ra xa Arduino, như trong hình (đây là hướng mặc định).

Đặt cảm biến nhiệt độ trên hàng E của breadboard, như minh họa.

Nối dây cảm biến nhiệt độ để chân trái nối với thanh điện áp 5V, chân giữa kết nối với A0 trên Arduino và chân phải nối với thanh GND.

Bước 3: Quan sát đầu vào analog

Trong sơ đồ mạch trên, bạn có thể thấy rằng cảm biến nhiệt độ được kết nối với nguồn 5V, đất 0V và chân analog A0. Khi nhiệt độ tăng, chân nối với A0 cũng tăng điện áp. Ngoài ra, bạn cũng có thể thấy rằng ba đèn LED được kết nối với các chân digital của riêng chúng.

Mặc dù Arduino là một công cụ digital, nó vẫn có thể lấy thông tin từ các cảm biến analog để đo những yếu tố như nhiệt độ hoặc ánh sáng. Để làm được điều này, ta sẽ sử dụng bộ chuyển đổi Analog-to-Digital (ADC) được tích hợp sẵn của Arduino.

Các chân Analog-in từ A0 đến A5 có thể đọc điện áp (từ 0 đến 5V) và chuyển dịch điện áp đó thành giá trị (từ 0 đến 1023) để Arduino sử dụng. Trên thực tế, các chân analog này chủ yếu được dùng để đọc thông tin từ các cảm biến.

Trên mạch mẫu mô phỏng của Tinkercad Circuits, nhấp vào “Start Simulation”.

Mở trình chỉnh sửa code (Code Editor) và tìm nút ” Serial Monitor ” để xem các giá trị cảm biến được đổ vào.

Bước 4: Khối Code

Giờ bạn hãy thử sử dụng trình chỉnh sửa code để xem trạng thái của cảm biến, sau đó đoán xem đèn LED nào sẽ sáng, dựa trên giá trị của cảm biến nhé.

Ta nhấp vào nút “Code” để mở trình chỉnh sửa. Các khối màu xám là chú thích để ghi lại nhận xét. Chúng không bắt buộc và sẽ không được thực thi khi chương trình chạy.

Nhấp vào danh mục Variables trong trình chỉnh sửa. Tạo một biến mới có tên là baselineTemp và sử dụng khối “set” để đặt nó thành 40 (độ C).

Để lưu trữ giá trị cảm biến, hãy tạo một biến có tên “celsius“.

Kéo khối “set” ra và điều chỉnh từ menu thành biến celsius vừa tạo.

Trong danh mục Math, hãy kéo một khối “map” ra và lồng hai khối arithmetic (“1 + 1“) trong ô đầu tiên.

Điều chỉnh phạm vi từ -40 đến 125.

Nhấp vào danh mục Input, kéo ra một khối “analog read pin” và đặt nó vào ô arithmetic đầu tiên, bên trong khối “map“.

Điều chỉnh các khối arithmetic thành “(read analog pin A0 – 20) x 3.04“.

Bạn có thể tuỳ chọn tạo một biến mới để chuyển đổi nhiệt độ sang độ F, bằng một khối set và một số khối arithmetic thành “set fahrenheit to (celsius x 9)/5 + 32“.

Thêm một số khối serial monitoring để xuất ra nhiệt độ (độ C, độ F hoặc cả hai).

Nhấp vào danh mục Control và kéo ra một khối “if then”, sau đó điều hướng đến mục Math và kéo một khối so sánh (comparator) vào khối “if”.

Trong danh mục Variables, lấy biến “celsius” và biến “baselineTemp” rồi kéo chúng vào khối so sánh comparator, điều chỉnh từ menu để nó thành “if celsius < baselineTemp then“.

Thêm ba khối đầu ra digital bên trong câu lệnh if để đặt các chân 2, 3 và 4 thành LOW.

Nhân bản câu lệnh if này bốn lần, thêm các khối số học arithmetic và khối “and/or” để tạo ra năm câu lệnh if phát hiện các trạng thái tổng thể.

  1. Trạng thái đầu tiên là “the temperature is below our target baseline” (nhiệt độ dưới mức cơ sở) nên không có đèn LED nào sáng lên.
  2. Khi nhiệt độ lớn hơn hoặc bằng baselineTemp (“the temperature is greater than or equal to the baselineTemp“) và nhỏ hơn baselineTemp+10 (“less than baselineTemp+10“), chỉ sáng đèn LED của pin 2.
  3. Khi nhiệt độ nằm giữa baselineTemp+10baselineTemp+20 (“the temperature is between baselineTemp+10 and baselineTemp+20“), thì sáng hai đèn LED.

Và như vậy ta đã có tất cả các trạng thái mong muốn.

Bước 5: Giải thích code Arduino

Khi trình chỉnh sửa code mở, bạn có thể nhấp vào menu bên trái và chọn “Blocks + Text” để hiển thị mã Arduino được tạo bởi các khối.

int baselineTemp = 0;
int celsius = 0;
int fahrenheit = 0;

Trước hàm setup(), chúng ta tạo các biến để lưu trữ nhiệt độ cơ sở (baseline temperature) và giá trị cảm biến. Chúng được khai báo bằng int vì là số nguyên.

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

  pinMode(2, OUTPUT);
  pinMode(3, OUTPUT);
  pinMode(4, OUTPUT);
}

Bên trong setup, các chân được cấu hình bằng hàm pinMode (). Chân A0 được cấu hình như một đầu vào, để chúng ta có thể nhận tín hiệu điện của Cảm biến nhiệt độ. Các chân 2, 3 và 4 được cấu hình làm đầu ra để điều khiển đèn LED.

void loop()
{
  // set threshold temperature to activate LEDs
  baselineTemp = 40;
  // measure temperature in Celsius
  celsius = map(((analogRead(A0) - 20) * 3.04), 0, 1023, -40, 125);

Các nội dung sau hai dấu gạch chéo // đều là phần nhận xét, chỉ để chúng ta đọc (và không được đưa vào chương trình khi Arduino chạy). Trong vòng lặp chính, baselineTemp được đặt thành 40 độ C.

// convert to Fahrenheit
  fahrenheit = ((celsius * 9) / 5 + 32);
  Serial.print(celsius);
  Serial.print(" C, ");
  Serial.print(fahrenheit);
  Serial.println(" F");

Công thức chuyển đổi giữa độ C và độ F là F = (C * 9) / 5 + 32. Việc hiển thị ra màn hình (serial monitor ) sẽ giúp bạn quan sát được sự thay đổi nhiệt độ chi tiết hơn (so với khi chỉ có duy nhất đèn LED hiển thị trạng thái).

if (celsius < baselineTemp) {
    digitalWrite(2, LOW);
    digitalWrite(3, LOW);
    digitalWrite(4, LOW);
  }
  if (celsius >= baselineTemp && celsius < baselineTemp + 10) {
    digitalWrite(2, HIGH);
    digitalWrite(3, LOW);
    digitalWrite(4, LOW);
  }
  if (celsius >= baselineTemp + 10 && celsius < baselineTemp + 20) {
    digitalWrite(2, HIGH);
    digitalWrite(3, HIGH);
    digitalWrite(4, LOW);
  }
  if (celsius >= baselineTemp + 20 && celsius < baselineTemp + 30) {
    digitalWrite(2, HIGH);
    digitalWrite(3, HIGH);
    digitalWrite(4, HIGH);
  }
  if (celsius >= baselineTemp + 30) {
    digitalWrite(2, HIGH);
    digitalWrite(3, HIGH);
    digitalWrite(4, HIGH);
  }
  delay(1000); // Wait for 1000 millisecond(s)
}

Sáu câu lệnh if của vòng lặp đánh giá các phân đoạn khác nhau của một phạm vi nhiệt độ nhất định, từ 40 đến 46 độ C. Càng nhiều đèn LED sáng sẽ cho thấy nhiệt độ càng ấm.

Nếu bạn muốn thấy sự thay đổi rõ ràng hơn ở các đèn (bộ ba đèn còn được gọi là bar graph lights), bạn có thể thay đổi biến nhiệt độ cơ sở baselineTemp và/hoặc phạm vi mà bạn đang xem, bằng cách thay đổi các đối số trong câu lệnh if (). Việc này được gọi một cách chuyên môn là hiệu chuẩn (calibration).

Bước 6: Sử dụng mạch

Nếu bạn đã dựng mạch thực tế, hãy dùng thử mạch với serial monitor của phần mềm Arduino (nút kính lúp ở phía trên bên phải của cửa sổ phác thảo), kích hoạt cảm biến bằng ngón tay của bạn. Kết quả có thể sẽ không như mong muốn nếu nhiệt độ phòng (hoặc ngón tay của bạn) lạnh hoặc ấm hơn.

Nếu sử dụng bảng mạch vật lý, hãy quan sát nhiệt độ phòng bằng serial monitor và đặt baselineTemp thành giá trị đó.

Hãy điều chỉnh “nhóm” ngưỡng nhiệt độ khác biệt thành một phạm vi nhỏ hơn (2, 4, 6, thay vì 10, 20, 30).

Cuối cùng, tải lại mã và thử giữ cảm biến bằng ngón tay. Khi nhiệt độ tăng lên, bạn sẽ thấy các đèn LED bật lên từng cái một.

Bước 7: Khám phá thêm

Ở bài hướng dẫn này, bạn đã sử dụng analogRead(), serial monitor để theo dõi những thay đổi bên trong Arduino và tạo một màn hình hiển thị nhiệt độ đơn giản với đèn LED. Hãy thử áp dụng kỹ thuật này với các loại cảm biến khác nhé.

Một hướng nâng cao để mở rộng cho mạch này là tạo ra giải pháp để hai người cùng so sánh nhiệt độ ngón tay. Trong trường hợp này, bạn sẽ làm như thế nào? cần hai cảm biến hay để các cảm biến thay phiên nhau? Bạn sẽ xây dựng code như thế nào để mạch hoạt động? Nếu có ý tưởng, hoặc thực hiện thành công, hãy comment bên dưới để chia sẻ cho mọi người cùng biết nhé. ?

Nguồn: instructables.com
Lượt dịch: Fuvitech.vn

Đăng bởi Để lại phản hồi

Hướng dẫn mạch Cảm biến ánh sáng (điện trở quang) với Arduino trên Tinkercad

Bài viết này ta sẽ tìm hiểu cách đọc một Điện trở quang (một loại biến trở nhạy sáng) bằng cách sử dụng đầu vào analog của Arduino. Linh kiện này còn được gọi là LDR (light-dependent resistor – điện trở phụ thuộc vào ánh sáng).

Các bài hướng dẫn trước đã chỉ ta cách Điều khiển đèn LED với đầu ra analog của Arduinođọc biến trở (một loại điện trở khác). Chúng ta cũng sẽ thực hành lại các kỹ năng đó trong bài viết này. Hãy nhớ rằng đầu vào analog của Arduino (chân được đánh dấu từ A0-A6) có thể phát hiện tín hiệu điện thay đổi dần dần, và chuyển tín hiệu đó thành một giá trị từ 0 đến 1023.

Mạch mẫu Cảm biến ánh sáng (điện trở quang) với Arduino trên Tinkercad

Ở mạch mẫu trên, nhấp vào “ Start simulation” và nhấp vào điện trở quang (hình bầu dục màu nâu), sau đó kéo thanh trượt độ sáng để điều chỉnh lượng ánh sáng đầu vào.

Để thực hành xây dựng mạch thật giống với mẫu trên, bạn sẽ cần sử dụng:

  • 1 Arduino Uno
  • 1 cáp USB
  • 1 breadboard và dây
  • 1 đèn LED
  • 1 điện trở 220 ohm
  • 1 điện trở 4,7k ohm
  • 1 điện trở quang

Tham khảo thêm: Sản phẩm Quang Trở GL5559

Bước 1: Xây dựng mạch

Hình 1
Hình 2

Hãy nhìn vào mạch breadboard trong hình 1 (hoặc mạch gọn hơn ở hình 2). Trong bước này, bạn sẽ xây dựng một bản mạch này của riêng mình (theo như mạch mẫu) trong bảng làm việc (workplane).

Trong bảng làm việc của Tinkercad Circuits, hãy xác định các linh kiện: điện trở quang, đèn LED, điện trở và dây nối với Arduino

Kéo Arduino Uno và breadboard từ bảng components vào bảng làm việc.

Nối đường ray nguồn (+)đường ray đất (-) của bảng mạch đến Arduino 5Vđất (GND), bằng cách nhấp chuột để tạo dây.

Mở rộng đường ray nguồn và đường ray đất với cạnh đối diện của bảng mạch. Cắm đèn LED vào hai hàng breadboard khác nhau để cực âm (chân ngắn hơn) kết nối với một chân của điện trở (giá trị bất kỳ từ 100-1K ohms đều được). Điện trở có thể lắp theo một trong hai hướng vì điện trở không phân cực (khác với đèn LED, phải được nối theo một hướng nhất định để có thể hoạt động).

Nối chân điện trở còn lại với đất.

Nối dây cực dương của đèn LED (chân dài hơn) vào chân 9 của Arduino.

Kéo một điện trở quang từ bảng components vào bảng mạch, để các chân của nó cắm vào hai hàng khác nhau.

Nhấp chuột để tạo dây nối một chân điện trở quang với nguồn điện.

Kết nối chân còn lại (*) với chân analog A0 của Arduino.

Kéo một điện trở từ bảng components để nối chân điện trở quang (*) và điều chỉnh giá trị thành 4.7k ohms.

Bước 2: Lập trình với các khối code

Hãy sử dụng trình chỉnh sửa khối code để xem trạng thái của điện trở quang, sau đó đặt đèn LED ở độ sáng tương đối dựa trên lượng ánh sáng mà cảm biến nhìn thấy. Nếu cần, bạn có thể xem lại nội dung bài Hướng dẫn làm đèn LED thay đổi độ sáng.

Nhấp vào nút “Code” để mở trình chỉnh sửa. Các khối màu xám là chú thích và chúng sẽ không được thực thi khi chương trình chạy đâu nhé.

Nhấp vào danh mục Variables trong trình chỉnh sửa code.

Để lưu trữ giá trị điện trở của Điện trở quang, hãy tạo một biến có tên “sensorValue“.

Kéo ra một khối “set“. Chúng ta sẽ lưu trữ trạng thái của Điện trở quang trong biến sensorValue.

Nhấp vào danh mục Input, kéo ra khối “analog read pin” và đặt nó vào trong khối “set“, sau từ “to

Vì biến trở được kết nối với Arduino ở chân A0, hãy thay đổi từ menu thành A0.

Nhấp vào danh mục Output và kéo ra khối “print to serial monitor“.

Chuyển đến đến danh mục Variables và kéo biến sensorValue vào khối “print to serial monitor“, đồng thời chỉnh từ Menu để thành “with newline”. Tại đây, bạn có thể mô phỏng thử (Start Simulation) và mở màn hình serial monitor để xem các số có hiển thị khi điều chỉnh cảm biến không nhé. Giá trị Analog input sẽ nằm trong khoảng từ 0-1023.

Hiện tại, ta muốn chuyển đến đèn LED một tín hiệu giá trị từ 0 (tắt hẳn) đến 255 (độ sáng cao nhất). Ta sử dụng khối “map” để thực hiện một số phép nhân chéo. Di chuyển chuột đến danh mục Math và kéo ra khối “map“.

Ở vị trí ô trống đầu tiên, hãy kéo biến sensorValue vào, sau đó đặt phạm vi từ 0 đến 255.

Quay lại danh mục Output, kéo ra khối “set pin” analog (mặc định sẽ có nội dung là “set pin 3 to 0.“) và điều chỉnh thành chân số 9.

Kéo khối map bạn đã thực hiện trước đó vào ô “to” của khối “set pin” để ghi giá trị đã điều chỉnh vào chân đèn LED.

Nhấp vào danh mục Control, kéo ra một khối wait và điều chỉnh để nó delay chương trình trong khoảng 0,1 giây.

Bước 3: Giải thích code Arduino của điện trở quang

Khi trình chỉnh sửa code mở, bạn có thể nhấp vào menu bên trái và chọn “Block + Text” để hiển thị code Arduino được tạo bởi các khối code này. 

int sensorValue = 0;

Trước hàm setup(), ta tạo một biến để lưu trữ giá trị hiện tại đọc được từ biến trở. Nó được khai báo là int vì là một số nguyên.

void setup()
{
  pinMode(A0, INPUT);
  pinMode(9, OUTPUT);
  Serial.begin(9600);
}

Bên trong setup, các chân được cấu hình bằng pinMode(). Chân A0 được cấu hình như một đầu vào (INPUT), để ta có thể xem trạng thái điện của biến trở. Chân 9 được cấu hình làm đầu ra (OUTPUT) để điều khiển đèn LED.

Để có thể gửi thông điệp giúp theo dõi, Arduino có một kênh giao tiếp là hàm Serial.begin(), với đối số là tốc độ giao tiếp (trong trường hợp này là 9600 bit mỗi giây).

void loop()
{
  // read the value from the sensor
  sensorValue = analogRead(A0);
  // print the sensor reading so you know its range
  Serial.println(sensorValue);

Các nội dung ghi sau hai dấu gạch chéo // đều là phần nhận xét, giúp ghi chú thông tin để người lập trình hiểu chương trình. Trong vòng lặp chính loop(), hàm analogRead(); sẽ kiểm tra trạng thái của chân A0 (là một số nguyên từ 0-1023) và lưu trữ giá trị đó trong biến sensorValue.

  // map the sensor reading to a range for the LED
  analogWrite(9, map(sensorValue, 0, 1023, 0, 255));
  delay(100); // Wait for 100 millisecond(s)
}

Hãy nhớ hàm analogWrite() lấy hai đối số: số pin (trong trường hợp này là 9) và giá trị cần ghi (phải nằm trong khoảng từ 0 đến 255). Hàm map() bên trong nhận năm đối số: số để đánh giá (biến sensorValue luôn thay đổi), giá trị tối thiểu dự kiến, tối đa dự kiến, giá trị tối thiểu mong muốntối đa mong muốn. Vì vậy, hàm map() trong trường hợp này có chức năng là đánh giá giá trị cảm biến đưa vào, và thực hiện một số phép nhân chéo để chia tỷ lệ đầu ra giảm từ 0-1023 xuống còn 0-255. Kết quả được trả về đối số thứ hai của analogWrite(); và từ đó thiết lập độ sáng của đèn LED (được kết nối với chân 9).

Bước 4: Thực hành xây dựng mạch Arduino 

Để lập trình Arduino Uno thực tế, cần cài đặt phần mềm Arduino Uno và mở nó lên. Các tế bào quang điện khác nhau có các giá trị khác nhau, vì vậy nếu mạch không hoạt động, có thể bạn sẽ cần thay đổi một điện trở khác.

Ta nối mạch Arduino Uno bằng cách cắm các linh kiện và dây sao cho khớp với mạch mẫu trong Tinkercad circuits. Sao chép code từ cửa sổ code Tinkercad circuits và dán vào một bản thảo trống trong phần mềm (hoặc nhấp tải xuống và mở tệp bằng phần mềm). Ngoài ra, bạn cũng có thể tìm thấy ví dụ này ở mục Tệp -> Ví dụ -> 03.Analog -> AnalogIn OutSerial.

Cắm cáp USB, chọn bo mạch và cổng trong Menu Tools của phần mềm.

Tải code lên, sau đó dùng tay che cảm biến hoặc chiếu sáng vào cảm biến).

Mở serial monitor để quan sát các giá trị được ghi nhận. Ngoài thực tế, có khả năng các giá trị này sẽ không đạt được đến mức 0 hoặc 1023, do tùy thuộc vào điều kiện ánh sáng. Hãy điều chỉnh phạm vi 0-1023 thành mức tối thiểu quan sát đượcmức tối đa quan sát được, để có được phạm vi độ sáng tối đa trên đèn LED nhé.

Nguồn: instructables.com
Lượt dịch: Fuvitech.vn

Đăng bởi Để lại phản hồi

Hướng dẫn mạch Cảm biến chuyển động PIR với Arduino trên Tinkercad

Trong bài viết này chúng ta sẽ học cách phát hiện chuyển động trong phòng, bằng cách sử sụng Cảm biến chuyển động PIRĐầu vào digital của Arduino. Ta sẽ nối một mạch bằng breadboard và dùng code Arduino đơn giản để điều khiển một đèn LED. Phần mềm mô phỏng Tinkercad Circuits cũng được sử dụng để giúp bạn bắt kịp với nội dung và trợ giúp quá trình thực hành lắp mạch.

Trong chuỗi bài viết về Arduino trên Tinkercad, bạn có thể đã học được cách Đọc tín hiệu nút bấm với Đầu vào Digital của Arduino. Hôm nay, chúng ta sẽ dùng kiến thức đó trong bài viết này. Mặc dù cảm biến chuyển động dường như có vẻ khá phức tạp trong mạch chuyên dụng, tuy nhiên nó cũng được cấu hình để gửi tín hiệu HIGH hoặc LOW – giống như một nút bấm thông thường.

PIR là viết tắt của Passive InfraRed. Thuật ngữ này mô tả công nghệ mà linh kiện sử dụng – đó chính là phát hiện thụ động các mức ánh sáng hồng ngoại (khác với camera hồng ngoại: phát ra ánh sáng hồng ngoại để ghi lại tín hiệu phản xạ). Vòm trắng là một thấu kính giúp mở rộng trường nhìn của máy dò hồng ngoại. Cảm biến này mặc định ghi nhận tín hiệu LOW. Khi đọc lượng ánh sáng hồng ngoại xung quanh đi vào, cảm biến kích hoạt tín hiệu HIGH trong một khoảng thời gian nhất định (khi mức độ ánh sáng thay đổi) để báo có sự chuyển động. RIP có thể cho bạn biết liệu có chuyển động trong tầm nhìn hay không, nhưng sẽ không thể phát hiện được khoảng cách bao xa. Vì vậy, nếu cần, bạn có thể cân nhắc một loại cảm biến tương tự là Máy đo khoảng cách siêu âm.

Để thực hành xây dựng mạch thực tế, ta sẽ cần sử dụng:

  • 1 Arduino Uno
  • 1 cáp USB
  • 1 breadboard và dây
  • 1 đèn LED
  • 1 điện trở bất kỳ giá trị từ 100-1K Ohm
  • 1 cảm biến chuyển động PIR

Tham khảo thêm: Sản phẩm Cảm Biến Vật Cản Hồng Ngoại

Bước 1: Xây dựng mạch

Bạn hãy xem mạch mẫu bên dưới bằng cách nhấp Start Simulation và nhấp vào Cảm biến chuyển động. Thao tác này sẽ kích hoạt mở ra một khu vực được đánh dấu ở phía trước cảm biến, với một “đối tượng” hình tròn bên trong. Nhấp và kéo vòng tròn “đối tượng” phía trước cảm biến để mô phỏng sự chuyển động. Đèn LED sẽ bật trong một thời gian ngắn khi phát hiện chuyển động.

Mạch mẫu Cảm biến chuyển động PIR với Arduino trong Tinkercad Circuits

Đầu tiên, ta xác định vị trí các linh kiện: cảm biến chuyển động PIR, đèn LED, điện trở và dây kết nối với Arduino.

Kéo Arduino Unobreadboard từ bảng components vào bảng làm việc.

Kết nối đường ray nguồn (+) và đường ray đất (-) của bảng mạch tương ứng với Arduino 5Vchân đất (GND) (nhấp chuột để tạo dây).

Mở rộng đường ray nguồn và đường ray đất ở mép đối diện của bảng mạch bằng cách tạo một dây màu đỏ giữa hai thanh nguồn và một dây màu đen giữa hai thanh đất.

Cắm đèn LED vào hai hàng breadboard khác nhau để cực âm (chân ngắn hơn) kết nối với một chân của điện trở (giá trị bất kỳ từ 100-1K Ohms). Điện trở có thể lắp theo một trong hai hướng vì điện trở không phân cực (khác với đèn LED, cần phải được nối theo một chiều nhất định để có thể hoạt động).

Nối chân điện trở còn lại với đất.

Nối dây cực dương của đèn LED (chân dài hơn) vào chân 13 của Arduino.

Kéo Cảm biến chuyển động PIR từ bảng components vào bảng mạch, đặt sao cho các chân của nó cắm vào ba hàng khác nhau.

Nhấp chuột để tạo dây nối chân ngoài cùng bên phải với nguồn điện.

Nối chân giữa với đất.

Cuối cùng, tạo một dây nối chân ngoài cùng bên trái với chân A0 của Arduino.

Bước 2: Lập trình bằng các khối code

Nhấp vào nút “Code” để mở trình chỉnh sửa.

Nhấp vào danh mục Variables và tạo một biến mới gọi là sensorState.

Kéo ra một khối “set“.

Chúng ta sẽ lưu trữ trạng thái của cảm biến chuyển động PIR vào biến sensorState. Nhấp vào danh mục Input Block, kéo khối “read digital pin” ra và đặt vào khối “set”, sau từ “to”.

Vì cảm biến của chúng ta được kết nối với Arduino ở chân 2, hãy thay đổi giá trị từ menu của khối “read digital pin” thành “2“. Bây giờ, các khối của bạn sẽ là “set sensor State to read digital pin 2” nghĩa là lưu trữ tín hiệu digital của chân cảm biến vào sensorState.

Nhấp vào danh mục Control và kéo ra một khối “if then“.

Ta cấu hình để khối này thực hiện chức năng đánh giá xem liệu sensorState phải đang ở trạng thái HIGH hay không (bằng cách sử dụng khối So sánh toán học). Kéo khối So sánh toán học vào câu lệnh if.

Kết quả cuối cùng ta mong muốn là đèn LED sẽ sáng nếu cảm biến được kích hoạt, ngược lại, đèn LED sẽ tắt. Trong danh mục Output Block, tìm khối “set built-in LED to HIGH“. Hãy thử đặt thêm hai khối này vào câu lệnh if (sao cho đèn LED chỉ sáng lên khi cảm biến được kích hoạt). Khối “set built-in LED” nên có giá trị là HIGH khi trạng thái cảm biến là HIGH, và ngược lại.

Bước 3: Giải thích code Cảm biến chuyển động PIR

Khi trình chỉnh sửa code mở, nhấp vào menu bên trái và chọn “Block + Text” để hiển thị code Arduino được tạo bởi các khối code này. 

Trước setup(), ta tạo một biến để lưu trữ trạng thái hiện tại của cảm biến. Nó được khai báo bằng int vì là số nguyên (mặc dù rằng chúng ta sẽ chỉ sử dụng các giá trị là 0 và 1, tương ứng LOW và HIGH).

Bên trong setup(), các chân được cấu hình bằng pinMode(). Chân 2 được cấu hình như một INPUT, để chúng ta có thể xem trạng thái điện của cảm biến. Chân 13 được cấu hình làm OUTPUT để điều khiển đèn LED. Để có thể truyền ra thông điệp tín hiệu, ta mở một kênh giao tiếp với hàm Serial.begin() có đối số là tốc độ truyền (tốc độ giao tiếp), trong trường hợp này là 9600 bit mỗi giây.

Sau 2 dấu gạch chéo // là một nhận xét, để ghi chú cho dễ hiểu khi chương trình Arduino chạy. Trong vòng lặp chính, hàm digitalRead(); sẽ kiểm tra trạng thái của chân 2 (sẽ là 5V – CAO, hoặc nối đất -THẤP) và lưu trữ trạng thái đó trong biến sensorState đã tạo ở trên.

Bên dưới hai hàng chú thích nữa là câu lệnh if để kiểm tra xem liệu sensorState có phải là HIGH hay không (“==” là một toán tử so sánh , khác với “=” là một toán tử gán ). Nếu đúng, đèn LED tích hợp được đặt thành HIGH (bật). Nếu sai, code chứa bên trong else { sẽ được thực hiện: khiến đèn LED đặt thành LOW (tắt). Câu lệnh if có thể tồn tại một mình, hoặc đi kèm với nhiều câu lệnh else khác.

Bước 4: Thiết lập cảm biến chuyển động PIR

Nếu đang thực hành xây dựng mạch Arduino thật, bạn sẽ cần thiết lập Cảm biến chuyển động PIR của mình một chút.

Xác định vị trí 3 header trên bảng mạch. Chúng sẽ hướng về tâm của một cạnh và được gắn nhãn GND, OUT+5v (hoặc giá trị khác tương tự).

Cắm đầu nối có dây đi kèm vào ba chân, với dây màu đen được nối với GND.

Kiểm tra kỹ đầu nối đã được lắp chắc chắn hay chưa.

Ngoài ra, bạn cũng có thể kết nối ba dây mẫu riêng lẻ, từ đực sang cái, với các chân.

Bước 5: Thực hành xây dựng mạch Arduino

Để lập trình Arduino Uno, bạn cần cài đặt phần mềm Arduino Uno và mở nó lên.

Nối dây mạch Arduino Uno bằng cách cắm các linh kiện và dây, sao cho khớp với các kết nối ở mạch mẫu trên Tinkercad Circuit. .

Sao chép code  từ cửa sổ code Tinkercad Circuits và dán vào một bản thảo trống trong phần mềm (hoặc nhấp tải xuống và mở file bằng Arduino). Bạn cũng có thể tìm thấy ví dụ này ở mục Tệp -> Ví dụ -> 02.Digital -> Nút.

Cắm cáp USB, chọn bo mạch và cổng trong menu Tools của phần mềm.

Cuối cùng, tải code và xem đèn LED của bạn sáng có lên khi ta di chuyển vào vùng cảm biến không nhé.

Bước 6: Điều chỉnh cảm biến chuyển động PIR

Một số cảm biến chuyển động PIR đi kèm với hai biến trở có thể điều chỉnh để thay đổi độ nhạy và thời lượng của tín hiệu kích hoạt. Cảm biến chuyển động PIR trong bài viết này không có những điều chỉnh này.

Do đó, bạn có thể tuỳ ý sử dụng tua vít nhỏ để điều chỉnh độ nhạy và số thời lượng trên mặt bảng mạch của cảm biến chuyển động PIR.

Nguồn: instructables.com
Lượt dịch: Fuvitech.vn

Đăng bởi Để lại phản hồi

Hướng dẫn sử dụng Arduino Serial Monitor trên Tinkercad

Trong trình mô phỏng Tinkercad Circuits, Serial Monitor nằm ở cuối bảng Code và được dùng để vẽ biểu đồ các biến (khi chúng thay đổi). Ta sử dụng Serial Monitor để “giao tiếp” với máy tính như là một cách để kiểm tra xem code Arduino có đang thực hiện đúng như những gì ta mong muốn không. Việc này có thể rất hữu ích khi cần giải quyết các vấn đề liên quan đến code (thường được gọi là ‘serial debugging’).

Hai mạch trong bài viết này sử dụng các cấu hình tương tự như hai bài viết trước là: Digital input với nút nhấnAnalog input với biến trở. Sự khác biệt duy nhất là các mạch này không có breadboard và không có đèn LED rời.

Bước 1: Hiện kết quả ra Serial Monitor

Link mạch mô phỏng: Arduino Serial Monitor trên Tinkercad

Ta sẽ sử dụng trình chỉnh sửa code để thu tín hiệu từ một chân đầu vào của Arduino, sau đó xuất ra giá trị (analog hoặc digital) đó vào cửa sổ Serial Monitor.

Đầu tiên, ta nhấp vào nút “Code” để mở bảng code. Nhấp vào Serial Monitor ở cuối bảng code.

Nhấp vào “Start Simulation” để chạy code Arduino mẫu và quan sát các số trên màn hình serial khi bạn tương tác với biến trở. Bạn có thể nhấp qua lại giữa hai Arduino khi mô phỏng đang chạy, tuy nhiên chỉ có mạch analog mới hiển thị trong module nhúng bên trên.

Sau khi tạo một bản sao mạch mẫu vào tài khoản Tinkercad cá nhân, bạn sẽ có thể chỉnh sửa code theo như mong muốn.

Ta di chuột đến danh mục code Output, kéo ra một khối “print to serial monitor” và đặt nó ngay trước khối serial đã có trong chương trình.

Thay đổi văn bản mặc định (default text) để dán nhãn dữ liệu Serial của bạn (ví dụ như “sensor: “) và điều chỉnh từ menu để dữ liệu in mà không xuống dòng mới.

Bắt đầu mô phỏng và quan sát sự thay đổi trong Serial monitor. Bạn có thể đặt các khối serial như thế này để tạo các thông báo phản hồi giúp ích trong quá trình xây dựng code của bất kỳ dự án nào.

Bước 2: Giải thích code Arduino Serial Monitor

Trên Tinkercad Circuits, khi trình chỉnh sửa code mở, bạn có thể nhấp vào menu bên trái và chọn “Block + Text” để hiển thị code Arduino được tạo bởi các khối. Code này sẽ gửi dữ liệu từ Arduino đến Serial monitor.

Trước setup() là một đoạn nhận xét nhiều dòng, bắt đầu bằng /* và kết thúc bằng */.

Lúc bắt đầu chương trình, ta sẽ tạo một biến để giữ trạng thái của đầu vào (input).

Bên trong hàm setup, tương tự như các bài viết về analog input và digital input trước đó, chân nối với công tắc hoặc cảm biến được định cấu hình để trở thành đầu vào, bằng cách sử dụng pinMode(). Để có thể gửi thông điệp tín hiệu, Arduino cần mở một kênh giao tiếp mới bằng hàm Serial.begin(). Kể từ lúc gọi hàm, bạn sẽ mở ra một đường truyền thông tin. Đối số bên trong sẽ thiết lập tốc độ giao tiếp của Arduino, ở ví dụ bên trên là 9600 bit mỗi giây (hay còn gọi là baud).

Code bên trong vòng lặp sẽ đọc trạng thái của đầu vào bằng digitalRead () và lưu trữ nó trong biến buttonState. Sau đó, Serial.println() sẽ gửi dữ liệu đến màn hình (thông qua cáp USB nếu ta thực hành trên board Arduino thực tế). Nếu như bạn đã thay đổi các khối code trong chương trình (ở bước trước), thì bạn cũng sẽ thấy dòng code Serial.print().

Lưu ý rằng lệnh println sẽ ngắt dòng mới sau mỗi thông điệp và lệnh print thì không ngắt dòng. Đồng thời ta phải sử dụng dấu ngoặc kép xung quanh các text, ví dụ: Serial.print(sensor: );.

Nếu kết quả của serial debugging nằm trên cùng một dòng, bạn có thể sử dụng nhiều lệnh Serial.print() theo sau bởi một lệnh Serial.println().

Bước 3: Code Debugger (Gỡ lỗi code)

Tinkercad Circuit có một tính năng đặc biệt gọi là Trình gỡ lỗi (debugger). Tính năng này sẽ xem xét từng dòng code và cho phép bạn xem các biến của mình.

Khi mở trình chỉnh sửa code, hãy tìm Trình gỡ lỗi bằng cách nhấp vào nút có biểu tượng bug.

Ở chế độ “Block + Text” (hoặc “ Text-only”), hãy nhấp vào số dòng để thêm điểm ngắt. Đây sẽ là nơi trình gỡ lỗi dừng lại mỗi khi vòng lặp thực hiện.

Ta bấm Start Simulation. Sau đó di chuột qua các biến (khi chương trình tạm dừng) để xem giá trị của chúng nhé.

Bước 4: Khởi động Serial Circuit

Các mạch này cũng có sẵn trong mục Starters. Bạn có thể sử dụng chúng khi muốn đọc một digital input hoặc analog input nào đó, và xuất trạng thái của nó lên serial monitor.

Mạch có thể được lấy từ bảng components (menu -> Starters -> Arduino).

Bước 5: Biểu đồ dữ liệu serial

Tinkercad Circuits cũng tích hợp sẵn đồ thị dữ liệu serial. Tính năng này rất hữu ích cho việc xem xét các thay đổi trong lúc đọc tín hiệu cảm biến và input, cũng như để theo dõi các biến trong chương trình.

Khi Màn hình serial mở, hãy nhấp vào nút biểu đồ để mở bảng biểu đồ. Xóa khối nhãn sensor mà bạn đã thêm trước đó.

Sau đó, nhấp Start Simulation và tương tác với đầu vào để xem các giá trị trên đồ thị thay đổi nhé.

Bước 6: Thực hành với board Arduino

Bạn có thể tuỳ ý xây dựng một board Arduino, sau đó sử dụng phần mềm Arduino của máy tính để xem dữ liệu serial qua cáp USB.

Đầu tiên, ta nối dây mạch Arduino Uno bằng cách cắm các linh kiện và dây sao cho khớp với Mạch mẫu trên Tinkercad Circuits. Sao chép code từ cửa sổ code và dán vào một bản thảo trống trong phần mềm Arduino (hoặc nhấp tải xuống và mở file bằng Arduino). Ngoài ra, bạn cũng có thể tìm thấy ví dụ này trong phần mềm, ở mục Tệp -> Ví dụ -> 03.Analog -> AnalogInOutSerial hoặc Tệp -> Ví dụ -> 02.Digital -> DigitalInputPullup.

Sau đó, cắm cáp USB, chọn bo mạch và cổng trong menu Tools của phần mềm.

Tải code lên, nhấp vào biểu tượng kính lúp ở góc trên bên phải để mở màn hình serial. Nhớ kiểm tra kỹ xem tốc độ truyền có khớp với tốc độ được thiết lập không nhé, ở ví dụ này là Serial.begin(9600).

Cuối cùng, ta nhấn nút hoặc xoay núm (tuỳ theo mạch mà bạn thực hiện) và xem các thông số thay đổi trong cửa sổ Serial Monitor.

Nguồn: instructables.com
Lượt dịch: Fuvitech.vn