GIỚI THIỆU CHUNG
Giới thiệu chung
Động cơ điện servo, hay còn gọi là servo motor, là một thiết bị máy móc chuyên dụng cung cấp cơ năng cho các thiết bị và dây chuyền sản xuất Chúng đóng vai trò quan trọng trong việc cung cấp lực kéo, giúp các dây chuyền và cơ cấu động cơ khác hoạt động hiệu quả trong quy trình chế tạo.
- Thiết bị này thường sử dụng từ trường để biến đổi điện năng thành cơ năng dưới dạng xoay nhằm mục đích kéo tải
Hình 1.1: Các loại servo motor thông dụng
Servo là động cơ dễ dàng điều khiển vị trí với độ chính xác cao Mặc dù servo có ưu điểm về tốc độ và độ chính xác, nhưng công suất của nó lại thấp Do đó, servo không phù hợp cho các ứng dụng cần mô men lớn như đẩy, kéo hay nâng hạ các vật nặng Tuy nhiên, servo rất phổ biến trong các ứng dụng yêu cầu độ chính xác cao.
- Trục đầu ra của động cơ servo có thể di chuyển đến một góc, vị trí và vận tốc cụ thể mà động cơ thông thường không có được
Hình 1.2: Hoạt động của hệ thống servo
Hệ thống động cơ Servo là một thành phần quan trọng trong hệ thống vòng kín, bao gồm các bộ phận như mạch điều khiển, động cơ Servo, trục, chiết áp, bánh răng truyền động, bộ khuếch đại và bộ mã hóa hoặc bộ phân giải.
Servo là hệ thống truyền động điều khiển hồi tiếp vòng kín, hoạt động nhanh chóng và chính xác theo lệnh từ PLC Bộ servo bao gồm bộ điều khiển servo, động cơ servo và encoder để phản hồi tín hiệu từ động cơ về bộ điều khiển Hệ thống này được sử dụng để điều khiển vị trí chính xác, điều chỉnh momen phù hợp với các ứng dụng khác nhau và thay đổi tốc độ cực kỳ nhanh, với thời gian đáp ứng chỉ trong mili giây.
- Hệ thống servo là một cơ chế vòng kín kết hợp phản hồi vị trí để kiểm soát tốc độ và vị trí quay hoặc tuyến tính
- Động cơ servo được điều khiển bằng tín hiệu điện, tương tự hoặc số
3 Ứng dụng của động cơ Servo và hệ thống điều khiển servo
Động cơ servo nổi bật với nhiều tính năng ưu việt, mang lại hiệu suất cao và khả năng điều khiển chính xác vị trí, tốc độ và lực căng Sản phẩm này không chỉ vận hành mạnh mẽ mà còn đảm bảo hoạt động ổn định trong thời gian dài.
- 11 - phù hợp với nhiều ứng dụng từ cơ bản, đa năng đến chuyên dụng, hiện đại trong nhiều ngành công nghiệp khác nhau
Động cơ Servo được ứng dụng rộng rãi trong các hệ thống và sản phẩm công nghiệp cũng như thương mại, đặc biệt trong lĩnh vực robot Chúng được sử dụng tại mọi "khớp" của robot, giúp thực hiện các góc chuyển động một cách chính xác.
Hình 1.3: Ứng dụng trong cánh tay robot
Hệ thống định vị ăng-ten và động cơ Servo là những ứng dụng tiêu biểu, được sử dụng để xác định phương vị và trục độ cao cho ăng-ten và kính thiên văn Những công nghệ này thường được áp dụng tại các đài quan sát thiên văn vô tuyến quốc gia.
Hình 1.4: Ứng dụng trong định vị ăng-ten
Giải quyết vấn đề
- Vấn đề đặt ra đó là thiết kế một mạch điều khiển động cơ servo và thực nghiệm một nhiệm vụ cụ thể
- Nêu cấu tạo cụ thể và chi tiết của động cơ servo sử dụng
- Hệ thống điều khiển servo
- Mạch/thiết bị điều khiển servo
- Lựa chọn thiết bị phần cứng
- Chọn thuật toán cho phần việc điều khiển servo và sử dụng
Hình 1.5: Mạch điều khiển động cơ servo
THIẾT KẾ PHẦN CỨNG
Động cơ R/C servo (micro servo)
Động cơ servo có đa dạng kiểu dáng và kích thước, được ứng dụng rộng rãi trong nhiều loại máy móc, từ máy tiện điều khiển bằng máy tính đến mô hình máy bay và xe hơi Gần đây, động cơ servo còn được sử dụng trong các robot, tương tự như các động cơ trong mô hình máy bay và xe hơi.
- Các động cơ servo điều khiển bằng liên lạc vô tuyến được gọi là động cơ servo R/C
Động cơ servo không nhất thiết phải được điều khiển bằng tín hiệu vô tuyến; nó chỉ cần kết nối với máy thu vô tuyến trên máy bay hoặc xe hơi Động cơ này nhận tín hiệu từ máy thu, cho phép người dùng điều khiển nó thông qua máy tính, bộ vi xử lý hoặc mạch điện tử đơn giản như IC 555, nếu không cần sử dụng tín hiệu vô tuyến.
Động cơ servo R/C là một loại động cơ phổ biến trong lĩnh vực robot, được sử dụng rộng rãi nhờ vào tính linh hoạt và hiệu suất cao Trong phần này, chúng ta sẽ khám phá cách sử dụng servo trong các ứng dụng robot khác nhau Mặc dù có nhiều loại động cơ servo, nhưng servo R/C vẫn là lựa chọn hàng đầu cho nhiều dự án.
Hình 2.1: Một động cơ servo R/C kích thước chuẩn điển hình dùng trong mô hình máy bay và xe đua
Ngoài ra còn có nhiều loại kích thước thông dụng khác
2 Electronics Board - Bảng điện tử 3.Positive Power Wire (Red) - Dây nguồn dương (Đỏ)
4 Signal Wire (Yellow or White) - Dây tín hiệu (Vàng hoặc Trắng)
5 Negative or Ground Wire (Black) - Dây âm hoặc dây nối đất (Đen)
6 Potentiometer - Chiết áp 7.Output Shaft/Gear - Trục đầu ra/Bánh răng
8 Servo Attachment Horn/Wheel/Arm - Còi/Bánh xe/Cánh tay Servo
10 Integrated Control Chip - Chip điều khiển tích hợp
Hình 2.2: Bên trong của một động cơ servo R/C Servo bao gồm một động cơ, một chuỗi các bánh răng giảm tốc, một mạch điều khiển và một vôn kế
Vỏ chính (main housing) và các kết nối điện (electrical connections) bên cạnh Trong đó:
- Dây đỏ(positive) là dây điện áp dương
- Dây nâu(negative) là dây nối đất
- Dây cam(signal) là dây điều chế độ rộng xung
Bên ngoài vỏ servo, phần trên cùng có một bánh răng nhỏ (splined gear) có khả năng kết nối với các tay đòn với chiều dài khác nhau, giúp sử dụng hiệu quả cho nhiều loại tải khác nhau.
Bên trong servo Phần phía trên là các bánh răng(gears) và vòng bi(bearing)
Bánh răng đầu vào (input) và bánh răng đầu ra (output)
Bánh răng đầu vào sẽ kết nối với động cơ 1 chiều (DC motor) DC motor và bánh răng đầu vào sẽ quay cùng một tốc độ góc
Hệ truyền động cơ học gồm các bánh răng gọi là bộ truyền bánh răng phức hợp (compound gear train)
Các bánh răng thiết kế để đảm bảo gọn nhất có thể
DC motor có tốc độ quay cao nhưng momen sinh ra thấp do tay đòn ngắn Do đó, hệ thống bánh răng được sử dụng để chuyển đổi tốc độ đầu ra thành thấp hơn, đồng thời tăng cường momen xoắn.
Động cơ DC được kết nối với một bảng mạch nhỏ bên trong, giúp kiểm soát tốc độ và hướng quay của động cơ một cách hiệu quả.
Bảng mạch được kết nối với một chiết áp, mà chiết áp này liên kết với bánh răng đầu ra trong hệ thống bánh răng Khi bánh răng đầu ra quay, nó sẽ làm cho chiết áp quay theo Vận tốc góc của bánh răng đầu ra tương ứng với vận tốc góc của momen kéo tải Sự quay của chiết áp sẽ thay đổi điện trở và xác định vị trí đầu ra.
Hình 2.3: Cấu tạo chi tiết động cơ servo
Hoạt động của hệ thống servo
Động cơ và chiết áp kết hợp với mạch điều khiển tạo thành một mạch hồi tiếp vòng kín, với nguồn cấp DC từ 4.8 – 7.2 V Để khởi động động cơ, tín hiệu số được gửi đến mạch điều khiển, qua đó động cơ quay thông qua chuỗi bánh răng kết nối với vôn kế Vị trí của trục vôn kế phản ánh vị trí trục ra của servo, và khi vôn kế đạt được vị trí mong muốn, mạch điều khiển sẽ tắt động cơ.
Động cơ servo được thiết kế để quay có giới hạn, khác với động cơ DC hay động cơ bước có khả năng quay liên tục Mặc dù có thể điều chỉnh động cơ servo R/C để quay liên tục, nhưng chức năng chính của nó là đạt được góc quay chính xác trong khoảng nhất định.
0 𝑜 – 180 𝑜 Việc điều khiển này có thể ứng dụng để lái robot, di chuyển các tay máy lên xuống, quay một cảm biến để quét khắp phòng
- Trục của động cơ servo R/C được định vị nhờ vào kỹ thuật gọi là điều biến độ rộng xung (PWM)
Trong hệ thống servo, đáp ứng của servo được điều khiển bởi một chuỗi các xung số ổn định, với tín hiệu số có độ dài xung biến đổi từ 1 đến 2 ms, được gửi đi với tần suất 50 lần/giây Điều quan trọng là không chỉ số lượng xung trong một giây mà còn là chiều dài của các xung, với yêu cầu khoảng 30 đến 60 xung/giây Nếu tần suất này quá thấp, độ chính xác và khả năng duy trì hoạt động của servo sẽ bị giảm sút.
Bộ điều khiển gửi tín hiệu đến động cơ servo để xác định vị trí mà nó sẽ quay
Phương pháp điều chế độ rộng xung (PWM) được sử dụng để điều khiển servo, trong đó bộ điều khiển gửi các xung điện áp qua dây dẫn Độ rộng của các xung này thay đổi tùy thuộc vào yêu cầu điều khiển, với tần số phát xung là 50Hz, tức là khoảng 50 xung mỗi giây Việc điều chỉnh độ rộng xung sẽ xác định vị trí của trục ra của động cơ, với xung rộng khiến đầu kim gắn với trục đi sang trái, trong khi xung hẹp làm đầu kim di chuyển sang phải.
Khi thay đổi điện áp nguồn, độ cao của xung sẽ thay đổi, nhưng độ rộng xung vẫn được duy trì, khiến cho động cơ servo không di chuyển.
Hình 2.4: Hoạt động của động cơ servo
Hình 2.5: Sơ đồ hoạt động của động cơ servo
Hình 2.6: Sơ đồ điều khiển hệ thống servo
- Tín hiệu đi từ bộ điều khiển vào servo và sẽ được chuyển đổi thành điện áp
- Nó đi qua 1 bộ so sánh điện áp sau đó đi đến Motor Driver
- Motor Driver sẽ điều khiển tốc độ góc của DC motor
Hình 2.7: Mạch cầu H bên trong Motor Driver
Mạch cầu H trong Motor Driver điều chỉnh hướng quay của động cơ DC, cho phép nó quay theo chiều kim đồng hồ hoặc ngược chiều kim đồng hồ để đạt được vị trí mong muốn.
- Vòng quay này làm cho hệ thống bánh răng quay và cánh tay nối với trục đầu ra servo cũng quay
• Vai trò của chiết áp:
Chiết áp trong servo đóng vai trò quan trọng trong việc định vị trục ra, với chiết áp thường gắn trực tiếp vào trục này Vị trí của chiết áp phản ánh chính xác vị trí trục ra, nhờ vào việc cung cấp điện áp biến thiên cho mạch điều khiển Khi servo hoạt động, điện thế thay đổi trong Vôn kế chuyển động, và mạch điều khiển so sánh điện thế này với độ dài xung số đầu vào Nếu điện thế không khớp, tín hiệu sai số được phát ra, tỷ lệ với độ lệch giữa vị trí chiết áp và tín hiệu vào Mạch điều khiển sử dụng tín hiệu sai số để điều chỉnh động cơ, và khi điện thế của chiết áp khớp với độ dài xung số, tín hiệu sai số sẽ được loại bỏ, khiến động cơ ngừng hoạt động.
Chiết áp hoạt động dựa trên nguyên lý của mạch phân áp, trong đó việc xoay núm sẽ làm thay đổi điện trở, từ đó điều chỉnh điện áp tỉ lệ thuận với vị trí của núm.
- Chiết áp được nối với bộ so sánh trong bảng mạch và điện áp theo dõi để cung cấp phản hồi
Bộ so sánh (Comparator) sẽ so sánh điện áp của chiết áp với điện áp tín hiệu điều khiển Khi có sự khác biệt, động cơ sẽ quay cho đến khi sai lệch đạt giá trị bằng 0, lúc này servo sẽ đứng đúng vị trí.
Các servo khác nhau có khả năng quay ở các góc khác nhau khi nhận tín hiệu từ 1 – 2 ms Servo tiêu chuẩn thường được thiết kế để quay từ 0° đến 180°, với phần lớn servo có thể đạt gần 180° Tuy nhiên, nếu cố gắng điều khiển servo vượt quá giới hạn cơ học của nó, trục ra của động cơ có thể bị va chạm.
Vật cản bên trong có thể gây ra mài mòn và rơ ở bánh răng, dẫn đến nguy cơ phá hủy bánh răng động cơ nếu hiện tượng này kéo dài hơn vài giây.
Hình 2.9: Các góc quay của động cơ servo tương ứng với độ rộng xung
Mạch/thiết bị điều khiển hệ thống Servo
Sử dụng Vi điều khiển Arduino để điều khiển hệ thống servo
Hình 2.10: Mạch điều khiển hệ thống servo sử dụng hệ Arduino
Vi điều khiển Arduino là bộ vi điều khiển tích hợp trên các board mạch Arduino, đóng vai trò là "bộ não" của hệ thống Nó thực hiện các chức năng điều khiển, xử lý dữ liệu và giao tiếp với các linh kiện khác như cảm biến và module mạng.
Vi điều khiển trên board Arduino được lập trình bằng ngôn ngữ C/C++ thông qua IDE của Arduino, mang lại sự tiện lợi cho các nhà phát triển Chức năng mạnh mẽ của vi điều khiển kết hợp với môi trường lập trình dễ sử dụng giúp thực hiện các dự án IoT và ứng dụng điện tử một cách dễ dàng.
Hình 2.11: Hình ảnh kết nối biến trở và động cơ servo với IoT Maker
Arduino là một hệ thống máy tính nhỏ gọn, cho phép lập trình để tương tác với nhiều loại đầu vào và đầu ra khác nhau Mẫu bo mạch phổ biến hiện nay, Arduino Uno, có kích thước nhỏ hơn bàn tay trung bình của con người.
Ở bên trái của bo mạch Arduino là đầu nối USB, có chức năng kết nối với máy tính để cung cấp năng lượng, tải chương trình và truyền dữ liệu Bên phải là đầu nối nguồn, cho phép cấp nguồn cho Arduino thông qua bộ đổi nguồn chính tiêu chuẩn.
Hình 2.13: Đầu nối USB và nguồn
Bộ vi điều khiển là "bộ não" của Arduino, hoạt động như một máy tính nhỏ với bộ xử lý để thực hiện các lệnh Nó bao gồm nhiều loại bộ nhớ khác nhau để lưu trữ dữ liệu và hướng dẫn từ các bản phác thảo, đồng thời cung cấp nhiều phương thức để gửi và nhận dữ liệu.
Hình 2.14: Vi điều khiển ATMEGA
Hàng chân đầu tiên của mạch cung cấp kết nối nguồn và nút RESET bên ngoài, trong khi hàng chân thứ hai có sáu đầu vào tương tự để đo các tín hiệu điện với điện áp khác nhau Bên cạnh đó, chân A4 và A5 có khả năng gửi và nhận dữ liệu từ các thiết bị khác.
Hình 2.15: Ổ cắm nguồn và analog
Các chân đầu vào/đầu ra kỹ thuật số (I/O) được đánh số từ 0 đến 13 có khả năng phát hiện tín hiệu điện hoặc tạo ra tín hiệu theo lệnh Trong đó, chân 0 và 1 được gọi là cổng nối tiếp, dùng để gửi và nhận dữ liệu đến các thiết bị khác như máy tính qua kết nối USB Các chân được đánh dấu bằng dấu ngã (~) cũng có thể phát sinh tín hiệu điện khác nhau, hỗ trợ cho các ứng dụng như tạo hiệu ứng ánh sáng hoặc điều khiển động cơ điện.
Hình 2.16: Các chân đầu vào/ra kỹ thuật số
Đi-ốt phát quang (đèn LED) là những thiết bị nhỏ gọn, phát sáng khi có dòng điện chạy qua Bo mạch Arduino được trang bị bốn đèn LED: một đèn ở bên phải có nhãn ON, cho biết bo mạch đang có nguồn điện, và ba đèn còn lại nằm trong một nhóm khác, như thể hiện trong Hình 2-17.
Các đèn LED có nhãn TX và RX sẽ sáng lên khi dữ liệu được truyền hoặc nhận giữa Arduino và các thiết bị kết nối qua cổng nối tiếp và USB Đèn LED L có thể được sử dụng cho các mục đích cá nhân, vì nó được kết nối với chân I/O kỹ thuật số.
Bên trái của đèn LED có một bộ vi điều khiển nhỏ màu đen, chức năng của nó là điều khiển giao diện USB, giúp Arduino của bạn có khả năng gửi và nhận dữ liệu từ máy tính.
Hình 2.17: Các đèn LED trên bo mạch
- Và cuối cùng, nút RESET được hiển thị trong Hình 2-18
Lựa chọn linh kiện
1 Lựa chọn động cơ servo
- Chọn động cơ servo là ĐỘNG CƠ SERVO SG90
Hình 2.19: Động cơ SERVO SG90
Servo nhỏ và nhẹ nhưng có công suất đầu ra cao, cho phép xoay khoảng 180 độ (90 độ mỗi hướng) Thiết bị này hoạt động tương tự như các loại servo tiêu chuẩn nhưng có kích thước nhỏ hơn, phù hợp cho những không gian hạn chế Bạn có thể sử dụng bất kỳ mã servo, phần cứng hoặc thư viện nào để điều khiển servo này Sản phẩm đi kèm với 3 sừng (cánh tay) và phần cứng cần thiết.
Hình 2.20: Kích thước và thông số kĩ thuật của SG90
Hình 2.21: Xung PWM trong điều khiển góc quay
2 Lựa chọn vi điều khiển
- Chọn vi điều khiển là ARDUINO UNO R3
Hình 2.22: Cấu tạo Arduino Uno R3
- Một số thông tin chính của Board:
Hình 2.23: Các thông số của Board
• Sử dụng vi điều khiển ATmega328 của hãng Atmel
• Lập trình thông qua giao diện cổng USB
• Header cho các chân GPIO
• Gồm 4 LED: nguồn, RX, TX và Debug
• Nút nhấn Reset board mạch
• Có jack để cấp nguồn khi không dùng nguồn ở cổng USB
Header cho In-circuit serial programmer (ICSP) là các đầu nối cho phép kết nối với mạch nạp chip, đặc biệt khi không sử dụng cổng USB để nạp dữ liệu.
Bảng 2.1: Các thông số của Board
- Giới thiệu về vi điều khiển ATmega328
Hình 2.24: Các chân của vi điều khiển Atmega328
Vi điều khiển, hay còn gọi là microcontroller hoặc microcontroller unit, đóng vai trò quan trọng như trái tim của các board mạch lập trình Nó có khả năng thực thi mã lệnh theo yêu cầu của người sử dụng.
Inside a microcontroller, there are numerous electronic circuits containing functional blocks such as the Central Processing Unit (CPU), Random Access Memory (RAM), Read Only Memory (ROM), input/output ports, and communication buses like I2C and SPI.
Vi điều khiển giúp chúng ta có thể giao tiếp với sensor, điều khiển thiết bị
Board Arduino Uno R3 được trang bị vi điều khiển ATmega328 từ Atmel, một công ty nổi tiếng trong lĩnh vực thiết kế và sản xuất vật liệu bán dẫn tại Mỹ Vi điều khiển ATmega328 thuộc dòng 8 bit, với bus dữ liệu 8 bit, mang đến hiệu suất ổn định cho các ứng dụng điện tử.
Bảng 2.2: Các thông số kỹ thuật của Atmega328
3 Bảng mạch bánh mỳ - Bộ cắm dây (breadboard)
- Bộ cắm dây (breadboard) là những mạch không cần sử dụng mỏ hàn dùng để tạo mẫu những mạch điện tử
- Loài bộ cắm dây sử dụng ở đây làm bằng nhựa trắng có lỗ để cắm dây
Hình 2.25: Breadboard circuit dùng để kết nối thành mạch kín giữa các thiết bị
Hình 2.26: Cấu tạo bên dưới của 1 breadboard circuit
Chiết áp, hay còn gọi là potentiometer, là một loại điện trở có ít nhất một tiếp điểm di động trên thân, cho phép điều chỉnh điện áp Thiết bị này hoạt động như một "bộ chia điện áp" có thể thay đổi giá trị, giúp kiểm soát dòng điện trong mạch.
Khi một điện trở được chia thành các phần có giá trị bù nhau, điện áp (tín hiệu) V được đặt lên điện trở sẽ tạo ra điện áp tại các tiếp điểm, tỷ lệ với giá trị của các điện trở.
Hình 2.27: Cấu tạo chiết áp
Hình 2.28: Chiết áp sử dụng là loại 10k
• Thông số kĩ thuật: Điện trở 10𝑘Ω
Loại điều chỉnh Tuyến tính
Trọng lượng của chiết áp đơn 10𝑔
Bảng 2.3: Các thông số kỹ thuật của chiết áp
5 Cảm biến nhiệt độ TMP36
Hình 2.29: Cảm biến nhiệt độ TMP36
Cảm biến này nhìn qua thì chúng ta thấy giống như một transistor TMP36 sử dụng rất đơn giản, nếu nhìn thẳng vào mặt phẳng thì:
Chân số 1 là chân cấp nguồn 5V (chân này có thể cắm vào nguồn 5V của Arduino khi sử dụng nó với Arduino)
Chân thứ 2 là chân xuất tín hiệu tương tự (tín hiệu dạng xung)
Chân thứ 3 là chân nối đất hay chân GND (khi sử dụng với Arduino có thể lấy từ chân GND từ Arduino)
TMP36 là cảm biến nhiệt độ điện áp thấp, cung cấp đầu ra điện áp tỷ lệ tuyến tính với nhiệt độ C mà không cần hiệu chuẩn bên ngoài Độ chính xác của cảm biến đạt ±1°C ở +25°C và ±2°C trong khoảng nhiệt độ từ −40°C đến +125°C Việc sử dụng TMP36 rất đơn giản, chỉ cần nối đất và cấp nguồn từ 2,7 đến 5,5 VDC, sau đó đọc điện áp trên chân Vout Điện áp đầu ra có thể dễ dàng chuyển đổi thành nhiệt độ với hệ số thang đo 10 mV/°C.
Cảm biến TMP 36 này xuất tín hiệu là tín hiệu điện áp, tín hiệu này tỷ lệ thuận với nhiệt độ Cứ 10mV tương đương với 1 o C nó có thể đo được nhiệt độ từ -40 o đến 25 o C)
Thông số kĩ thuật cơ bản:
• Điện áp đầu vào: 2,7 V đến 5,5 VDC
• Hệ số thang đo 10 mV/° C
• Độ chính xác ± 2°C theo nhiệt độ
• Phạm vi hoạt động: −40°C đến +125°C
6 Cảm biến siêu âm hc-sr04
Hình 2.30: Cảm biến siêu âm HC-SR04
Cảm biến siêu âm HC-SR04 là thiết bị lý tưởng để đo khoảng cách từ vật thể đến cảm biến bằng sóng siêu âm Với thời gian phản hồi nhanh và độ chính xác cao, cảm biến này rất phù hợp cho các ứng dụng phát hiện vật cản và đo khoảng cách.
Cảm biến siêu âm HC-SR04 sử dụng chân Echo và Trigger để phát và nhận tín hiệu, là một trong những cảm biến phổ biến nhất cho các dự án Arduino nhờ vào nhiều thư viện và mã mẫu có sẵn.
Cảm biến siêu âm HC-SR04 là thiết bị phổ biến để đo khoảng cách, sử dụng sóng siêu âm để xác định khoảng cách trong khoảng từ 2 đến 300cm Độ chính xác của cảm biến HC-SR04 chủ yếu phụ thuộc vào cách lập trình.
VCC (5V), TRIG (chân điều khiển phát), ECHO (chân nhận tín hiệu phản hồi), GND (nối đất)
Cảm biến siêu âm SR04 hoạt động dựa trên nguyên lý phản xạ sóng siêu âm, bao gồm hai module: một module phát sóng siêu âm và một module thu sóng phản xạ Khi cảm biến phát ra sóng siêu âm với tần số 40kHz, nếu có chướng ngại vật trên đường đi, sóng sẽ bị phản xạ và tác động lên module nhận Bằng cách đo thời gian từ khi phát đến khi nhận sóng, chúng ta có thể xác định khoảng cách từ cảm biến đến chướng ngại vật.
Hình 2.31: Nguyên lý truyền sóng của cảm biến siêu âm HC-SR04
Khoảng cách = thời gian × vận tốc âm thanh
2 Thông số kỹ thuật cảm biến siêu âm HC-SR04:
Hình 2.32: Thông số kỹ thuật của cảm biến siêu âm HC-SR04
Hình 2.33: Nguyên lý hoạt động của cảm biến siêu âm HC-SR04
THIẾT KẾ PHẦN MỀM
Building an Analog thermometer (xây dựng nhiệt kế analog)
Sử dụng servo và cảm biến nhiệt độ TMP36, chúng em sẽ chế tạo một nhiệt kế tương tự
Cảm biến nhiệt độ sẽ đo và chuyển đổi giá trị đo được thành góc từ 0 đến 180 độ, tương ứng với nhiệt độ từ 0 đến 30 độ C Servo sẽ xoay theo góc phù hợp với nhiệt độ hiện tại.
Phần cứng: Phần cứng cần thiết tối thiểu là:
• Một cảm biến nhiệt độ TMP36
• Các loại dây kết nối
Hình 3.7: Mạch xây dựng nhiệt kế analog
Mạch thiết kế cho project này
Hình 3.8: Tay quay của servo chỉ đến nhiệt độ tương ứng được hiển thị trong bảng
Mặc dù ứng dụng điều khiển servo này rất thú vị, nhưng nó gặp một số hạn chế, đặc biệt là trong việc mô phỏng sự thay đổi nhiệt độ môi trường trong khoảng 0-30 độ Do đó, ứng dụng sẽ không được trình bày bằng thực nghiệm Tuy nhiên, việc thay đổi nhiệt độ và chuyển đổi thông qua cảm biến nhiệt độ đã được mô phỏng, tương tự như việc sử dụng chiết áp để điều chỉnh dải điện áp đầu vào, giúp người đọc có thể hiểu rõ hơn về quá trình này.
Một cách sơ bộ, nhiệt độ được chuyển thành góc tương ứng qua công thức: góc = nhiệt độ × 6 Chương trình:
Servo myservo; float voltage = 0; float sensor = 0; float currentC = 0; int angle = 0; int potPin = A0;
{ float resulta; int resultb; resulta = 6 * temperature; resultb = int(resulta); return resultb;
// đọc nhiệt độ hiện tại sensor = analogRead(potPin); voltage = (sensor*5000)/1024; voltage = voltage-500; currentC = voltage/10;
// hiển thị nhiệt độ hiện tại trên servo angle = calculateservo(currentC);
// chuyển đổi nhiệt độ sang vị trí servo if (angle>=0 && currentC =0 && currentC