Mục lục:
- Bước 1: Thiết bị
- Bước 2: Thiết lập bộ vi điều khiển
- Bước 3: Thiết lập MATLAB
- Bước 4: Chức năng
- Bước 5: Kiểm tra
- Bước 6: Kết luận
Video: Mô hình điều hòa Arduino: 6 bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:35
Là một phần của cuộc chứng minh khả năng của nhóm chúng tôi trong việc tạo ra một mô hình thiết bị xe lửa thông minh cho mục đích tiếp thị, mục tiêu là tạo ra một hệ thống trong đó cảm biến nhiệt độ đọc dữ liệu từ mạch và chuyển đổi thông tin thành giá trị nhiệt độ. hiển thị trên màn hình sáng và tập trung vào việc quạt bật hay tắt. Mục đích là để giúp điều chỉnh các điều kiện đi xe của hành khách bằng cách sử dụng một hệ thống tự động cũng hoạt động để hiển thị nhiệt độ ở khu vực lân cận.
Bằng cách sử dụng bộ vi điều khiển Arduino và MATLAB phiên bản 2016b và 2017b, chúng tôi đã có thể chứng minh những kết quả này tương đối thành công.
Bước 1: Thiết bị
Bộ vi điều khiển với những thứ sau:
-Bảng đỏ Parkfun
-Sparkfun Breadboard
-Ban CD
-Chiết áp
-Cảm biến nhiệt độ
-Servo
-Bộ chuyển đổi USB / Arduino
-Dây chấn lưu (25, tối thiểu)
Máy tính xách tay (Windows 10) với đầu vào USB
Đối tượng in 3D (tùy chọn)
Bước 2: Thiết lập bộ vi điều khiển
Hãy xem xét điều này: toàn bộ hệ thống bao gồm các đơn vị đơn lẻ mà mỗi đơn vị áp dụng một yếu tố quan trọng cho kết quả cuối cùng. Vì lý do này, chúng tôi khuyên bạn nên thiết lập hình ảnh của mạch trước khi gắn dây trong một mớ hỗn độn.
Hình ảnh của từng mô hình riêng lẻ có thể được tìm thấy trong sách hướng dẫn của bộ công cụ Vi điều khiển hoặc tại trang web của nó tại
Bắt đầu với việc gắn cảm biến nhiệt độ, chiết áp, đầu nối servo và màn hình LCD lên bo mạch. Khuyến cáo rằng do kích thước của màn hình LCD và yêu cầu về số lượng dây cho nó, nó nên được đặt trên một nửa của bảng mạch chính với các miếng khác ở nửa còn lại và để chiết áp nằm trong khu vực cho ai đó dễ dàng xoay núm của nó.
Để tham khảo:
LCD: c1-16
Servo: i1-3 (GND + -)
Cảm biến nhiệt độ: i13-15 (- GND +)
Chiết áp: g24-26 (- GND +)
Tiếp theo, bắt đầu kết nối dây jumper với mỗi chân của bộ vi điều khiển; mặc dù tùy ý trong sơ đồ tổng thể, thiết kế đã được tạo ra với những kết nối quan trọng sau:
Kết nối chiết áp với màn hình LCD: f25 - e3
Dây Servo GND: j1 - Đầu vào Kỹ thuật số 9
Cảm biến nhiệt độ GND: j14 - Đầu vào tương tự 0
Đầu vào LCD: e11-e15 - Đầu vào kỹ thuật số 2-5
e4 - Đầu vào kỹ thuật số 7
e6 - Đầu vào kỹ thuật số 6
(Lưu ý: Nếu thành công, cả hai đèn trên cạnh màn hình LCD sẽ bật sáng và chiết áp có thể giúp điều chỉnh độ sáng của nó sau khi được cấp nguồn từ bộ chuyển đổi.)
Tùy chọn: Đối tượng in 3D được sử dụng như một phần của yêu cầu. Để tránh hư hỏng có thể xảy ra đối với các bộ phận dễ vỡ hơn, một hộp đựng mở rộng đã được đặt làm ống bọc xung quanh màn hình LCD. Các phép đo của màn hình LCD được chứng minh là xấp xỉ 2-13/16 "x 1-1 / 16" x 1/4 "và do đó chỉ có chiều cao bị thay đổi đáng kể. Nếu có sẵn máy in 3D, hãy cân nhắc thêm một đối tượng cá nhân, mặc dù không cần thiết. Ngoài ra, hãy lưu ý rằng các phép đo có thể khác nhau.
Bước 3: Thiết lập MATLAB
Cài đặt phiên bản cập nhật hơn của MATLAB (2016a trở đi), có tại trang web MathWorks https://www.mathworks.com/products/matlab.html?s_tid=srchtitle. Sau khi mở, hãy chuyển đến Phần bổ trợ trên tab Trang chủ và tải xuống "Gói Hỗ trợ MATLAB cho Phần cứng Arduino" để có thể truy cập các lệnh của bộ vi điều khiển.
Sau khi hoàn thành, một bài kiểm tra có thể được thực hiện để tìm kết nối của bộ vi điều khiển với máy tính / máy tính xách tay của một người. Sau khi kết nối chúng với bộ điều hợp USB từ bộ công cụ, hãy chèn lệnh "fopen (serial ('nada'))."
Một thông báo lỗi sẽ bật lên cho biết trình kết nối là "COM #", cần thiết để tạo một đối tượng arduino miễn là nó luôn là cùng một đầu vào.
Do màn hình LCD không có kết nối trực tiếp đến thư viện Arduino, nên một thư viện mới phải được tạo để hiển thị thông báo. Một khuyến nghị là tạo tệp LCDAddon.m từ ví dụ LCD được tìm thấy trong cửa sổ trợ giúp MATLAB sau khi tìm kiếm "Arduino LCD" và đặt nó vào thư mục + arduinoioaddons hoặc sử dụng thư mục nén được đính kèm và sao chép tất cả nội dung của nó vào phần nói trên thư mục.
Nếu thành công, thì mã để tạo một đối tượng Arduino trong MATLAB như hình dưới đây.
a = arduino ('com #', 'una', 'Thư viện', 'Ví dụLCD / LCDAddon');
Bước 4: Chức năng
Tạo một hàm MATLAB. Đối với các đầu vào, chúng tôi sử dụng các biến "eff" và "T_min"; đối với đầu ra, mặc dù không cần thiết trong thiết kế tổng thể, chúng tôi đã sử dụng biến "B" như một cách để chứa dữ liệu từ kết quả. Đầu vào "eff" cho phép quản lý tốc độ tối đa của servo và đầu vào "T_min" kiểm soát nhiệt độ tối thiểu mong muốn. Do đó, giá trị "B" sẽ tạo ra một ma trận chứa ba cột cho thời gian, nhiệt độ và hiệu suất của quạt. Ngoài ra, như một phần thưởng cho chi tiết, đoạn mã được liệt kê bên dưới cũng có câu lệnh if sao cho tốc độ quạt sẽ giảm 50 phần trăm khi nó gần đạt đến nhiệt độ tối thiểu mong muốn.
Nếu tất cả các đầu vào và dây jumper được đặt chính xác và giả sử cổng kết nối arduino là COM4 và tên chức năng là "fanread", thì mã sau là đủ:
function [B] = fanread (Tmin, eff)
rõ ràng a; clear lcd; a = arduino ('com4', 'una', 'Libraries', 'ExampleLCD / LCDAddon');
t = 0; t_max = 15; % thời gian tính bằng giây
lcd = addon (a, 'ExampleLCD / LCDAddon', {'D7', 'D6', 'D5', 'D4', 'D3', 'D2'});
khởi tạoLCD (lcd, 'Hàng', 2, 'Cột', 2);
nếu eff> = 1 || e <0
lỗi ('Quạt sẽ không kích hoạt trừ khi hiệu lực được đặt từ 0 đến 1.')
kết thúc
đối với t = 1: 10% số vòng / khoảng
rõ ràng c; % ngăn lỗi lặp lại
v = readVoltage (a, 'A0');
TempC = (v-0,5) * 100; % ước tính cho dải điện áp 2,7-5,5 V
nếu TempC> Tmin nếu TempC
c = ['Temp', num2str (TempC, 3), 'C On'];
writePWMDutyCycle (a, 'D9', eff / 2); % bật servo ở tốc độ một nửa
spd = 50;
khác
c = ['Temp', num2str (TempC, 3), 'C On'];
writePWMDutyCycle (a, 'D9', eff); % bật servo ở tốc độ đã cho
spd = 100;
kết thúc
khác
c = ['Temp', num2str (TempC, 3), 'C Off'];
writePWMDutyCycle (a, 'D9', 0); % tắt nếu đã bật
spd = 0;
kết thúc
printLCD (LCD, c);
tạm dừng (3); % ba giây trôi qua mỗi vòng lặp
thời gian (t) = t. * 3;
tempplot (t) = TempC;
act (t) = spd;
subplot (2, 1, 1)
đồ thị đường kẻ (thời gian, tempplot, 'b-o')%
trục ([0 33 0 40])
xlabel ('Thời gian (giây)')
ylabel ('Nhiệt độ (C)')
Giữ lấy
âm mưu ([0 33], [Tmin Tmin], 'r-')
Giữ lấy
âm mưu ([0 33], [Tmin + 2 Tmin + 2], 'g-')
subplot (2, 1, 2)
bar (thời gian, hành động)% bar graph
xlabel ('Thời gian (giây)')
ylabel ('Hiệu quả (%)')
kết thúc
B = transpose ([time; tempplot; act]);
kết thúc
Bây giờ chức năng đã hoàn thành, đã đến lúc kiểm tra.
Bước 5: Kiểm tra
Bây giờ hãy kiểm tra chức năng trong cửa sổ lệnh bằng cách chèn "function_name (input_value_1, input_value_2)" và quan sát. Đảm bảo rằng không có đối tượng Arduino nào đã tồn tại; nếu vậy, hãy sử dụng lệnh "clear a" để loại bỏ nó. Nếu lỗi xảy ra, hãy kiểm tra và xem có bất kỳ đầu nối nào được đặt sai vị trí hoặc đầu vào kỹ thuật số hoặc tương tự có được sử dụng sai hay không. Kết quả dự kiến sẽ khác nhau, mặc dù điều này có thể được gây ra bởi vị trí của một số dây nhảy và cảm biến nhiệt độ.
Những kỳ vọng về kết quả sẽ tạo ra những thay đổi trong hiệu suất của servo và dữ liệu trên màn hình LCD. Với mỗi khoảng thời gian ba giây, một dòng văn bản sẽ hiển thị nhiệt độ theo độ C và quạt có hoạt động hay không trong khi quạt chạy ở tốc độ tối đa, nửa tốc độ hoặc không tốc độ. Dữ liệu hầu như không được nhất quán, mặc dù nếu muốn có nhiều kết quả khác nhau, hãy đặt giá trị "Tmin" gần với nhiệt độ trung bình do mạch tạo ra.
Bước 6: Kết luận
Mặc dù một nhiệm vụ khó khăn để hoàn thành bằng cách thử và sai, kết quả cuối cùng tỏ ra khá thú vị và hài lòng. Một hệ thống như vậy giúp minh họa có bao nhiêu máy móc phức tạp, hoặc thậm chí một số bộ phận của chúng, có thể được xem như một tập hợp các bộ phận độc lập được đặt cùng nhau để hoàn thành một mục tiêu cụ thể.
Do thiết kế khá đơn giản của dự án cuối cùng, những người quan tâm đến việc cải thiện hiệu suất của nó có thể thực hiện các chỉnh sửa và thay đổi trong sản phẩm cuối cùng để có thể làm cho dự án tốt hơn và công phu hơn. Tuy nhiên, nó bộc lộ những điểm yếu trong mạch như sự kích hoạt của servo dẫn đến sự dao động lẻ tẻ trong việc đọc điện áp của mạch, điều này có thể khiến hệ thống không bao giờ tạo ra kết quả giống hệt nhau. Ngoài ra, đã có vấn đề với việc nhìn thấy sự thay đổi trong tốc độ servo khi "eff" được đặt 0,4 trở lên. Nếu sử dụng cảm biến nhiệt độ và độ ẩm, mô hình cuối cùng sẽ phức tạp hơn nhưng hiển thị các giá trị nhất quán hơn. Tuy nhiên, đây là một trải nghiệm cho thấy một cỗ máy phức tạp có thể hoạt động như một tổ hợp các bộ phận đơn giản của nó.
Đề xuất:
Tự động hóa Nói chuyện -- Âm thanh từ Arduino -- Tự động hóa điều khiển bằng giọng nói -- HC - 05 Mô-đun Bluetooth: 9 bước (có Hình ảnh)
Tự động hóa Nói chuyện || Âm thanh từ Arduino || Tự động hóa điều khiển bằng giọng nói || HC - 05 Mô-đun Bluetooth: …………………………. Please SUBSCRIBE To my YouTube channel for more videos … …. Trong video này, chúng tôi đã xây dựng Tự động hóa nói chuyện .. Khi bạn gửi lệnh thoại qua thiết bị di động thì lệnh đó sẽ bật các thiết bị gia đình và gửi phản hồi tôi
Đầu máy mô hình điều khiển động cơ bước - Động cơ bước như một bộ mã hóa quay: 11 bước (có hình ảnh)
Đầu máy mô hình điều khiển động cơ bước | Động cơ bước làm bộ mã hóa quay: Trong một trong những phần Hướng dẫn trước, chúng ta đã học cách sử dụng động cơ bước làm bộ mã hóa quay. Trong dự án này, bây giờ chúng ta sẽ sử dụng bộ mã hóa quay động cơ bước đó để điều khiển đầu máy mô hình bằng vi điều khiển Arduino. Vì vậy, không có fu
Động cơ bước Điều khiển động cơ bước Động cơ bước - Động cơ bước như một bộ mã hóa quay: 11 bước (có hình ảnh)
Động cơ bước Điều khiển động cơ bước Động cơ bước | Động cơ bước như một bộ mã hóa quay: Có một vài động cơ bước nằm xung quanh và muốn làm điều gì đó? Trong Có thể hướng dẫn này, hãy sử dụng động cơ bước làm bộ mã hóa quay để điều khiển vị trí của động cơ bước khác bằng vi điều khiển Arduino. Vì vậy, không cần phải quảng cáo thêm, chúng ta hãy
Treo tường cho IPad làm bảng điều khiển tự động hóa tại nhà, sử dụng nam châm điều khiển Servo để kích hoạt màn hình: 4 bước (có hình ảnh)
Giá treo tường cho iPad làm Bảng điều khiển tự động hóa tại nhà, Sử dụng Nam châm điều khiển Servo để Kích hoạt màn hình: Gần đây, tôi đã dành khá nhiều thời gian để tự động hóa mọi thứ trong và xung quanh nhà mình. Tôi đang sử dụng Domoticz làm ứng dụng Tự động hóa tại nhà của mình, hãy xem www.domoticz.com để biết thêm chi tiết. Trong tìm kiếm của tôi cho một ứng dụng bảng điều khiển hiển thị tất cả thông tin Domoticz
Màn hình cảm ứng Đồng bộ hóa gia đình & Bảng điều khiển gia đình gắn trên màn hình: 7 bước (có Hình ảnh)
Bảng điều khiển Home & Family Sync & Home trên màn hình cảm ứng: Chúng tôi có lịch được cập nhật hàng tháng với các sự kiện nhưng lịch được thực hiện theo cách thủ công. Chúng ta cũng có xu hướng quên những việc đã làm hết hoặc những việc vặt khác. Ở thời đại này, tôi nghĩ sẽ dễ dàng hơn nhiều nếu có một hệ thống đồng bộ lịch và sổ ghi chú mà c