Giáo trình Điều khiển nhúng (Nghề Cơ điện tử Cao đẳng)

155 0 0
Giáo trình Điều khiển nhúng (Nghề Cơ điện tử  Cao đẳng)

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

ỦY BAN NHÂN DÂN THÀNH PHỐ HÀ NỘI TRƯỜNG CAO ĐẲNG NGHỀ VIỆT NAM - HÀN QUỐC THÀNH PHỐ HÀ NỘI TRƯƠNG VĂN HỢI (Chủ biên) TẠ VĂN BẰNG – BÙI VĂN CƠNG GIÁO TRÌNH ĐIỀU KHIỂN NHÚNG Nghề: Cơ điện tử Trình độ: Cao đẳng (Lưu hành nội bộ) Hà Nội - Năm 2019 LỜI NĨI ĐẦU Giáo trình Kỹ thuật nhúng đóng góp phần bổ sung kiến thức điều khiển, bán tự động, tự động, phương pháp tổng hợp, phương pháp nhúng Để thực biên soạn giáo trình đào tạo nghề Cơ điện tử trình độ CĐN TCN, giáo trình mơ đun Kỹ thuật nhúng giáo trình đào tạo chun ngành tự động hóa cơng nghiệp được biên soạn theo nội dung chương trình khung, chương trình dạy nghề được Bộ Lao động -Thương binh Xã hội Tổng cục dạy nghề phê duyệt Nội dung biên soạn ngắn gọn, dễ hiểu, tích hợp kiến thức kỹ chặt chẽ với Tác giả biên soạn cố gắng cập nhật kiến thức có liên quan đến nội dung chương trình đào tạo phù hợp với mục tiêu đào tạo, nội dung lý thuyết thực hành được biên soạn gắn với nhu cầu thực tế sản xuất đồng thời có tính thực tiễn cao Tuy nhiên, theo điều kiện sở vật chất trang thiết bị, các trường có thề sử dụng cho phù hợp Mặc dù cố gắng tổ chức biên soạn để đáp ứng được mục tiêu đào tạo không tránh được thiếu sót cần bổ sung Rất mong nhận được đóng góp ý kiến người sử dụng, người đọc để nhóm biên soạn chỉnh hồn thiện sau thời gian sử dụng Xin chân thành cảm ơn! Hà Nội, ngày … tháng … năm 2019 Chủ biên: Trương Văn Hợi MỤC LỤC LỜI NÓI ĐẦU MỤC LỤC GIÁO TRÌNH MÔ ĐUN ĐIỀU KHIỂN NHÚNG Chương Kết nối dây Arduino thiết bị ngoại vi 1.1 Arduino kết nối Led 1.2 Arduino kết nối LCD 71 1.3 Arduino kết nối động 92 1.4 Arduino kết nối cảm biến 117 1.5 Arduino kết nối thiết bị khác 120 Chương 123 Lắp đặt mơ hình điều khiển Arduino 123 2.1 Điều khiển Arduino kết nối Led 123 2.2 Điều khiển Arduino kết nối LCD 126 2.3 Điều khiển Arduino kết nối động 127 2.4 Điều khiển Arduino kết nối cảm biến 129 Chương 133 Lập trình điều khiển tổng hợp hệ thống điện tử 133 3.1 Điều khiển sa bàn đèn giao thông 133 3.2 Điều khiển robot 146 3.3 Điều khiển ứng dụng mạng cảm biến 146 3.4 Điều khiển hệ điện tử 148 Tài liệu tham khảo 154 GIÁO TRÌNH MƠ ĐUN ĐIỀU KHIỂN NHÚNG Tên mô đun: Điều khiển nhúng Mã số mô đun: MĐ 39 Thời gian mô đun: 90 (LT: 12 giờ; TH/TT/TN/BT/TL: 78 giờ) I VỊ TRÍ, TÍNH CHẤT CỦA MƠ ĐUN - Vị trí mơ đun: Mơđun được bố trí dạy cuối chương trình sau học xong các môn chuyên môn kỹ tḥt cảm biến, điện tử cơng suất, Vi xử lí, PLC bản - Tính chất mơ đun: Là mơ đun chun mơn nghề II MỤC TIÊU CỦA MƠ ĐUN + Về kiến thức: - Trình bày được cấu trúc phương thức hoạt động các loại vi điều khiển họ AVR theo nội dung học - Mơ tả cấu trúc các phần hệ thống điều khiển: ngôn ngữ, liên kết, định thời các loại Arduino khác + Về kỹ năng: - Viết chương trình cho các loại Arduino khác đạt yêu cầu kỹ thuật - Thực các kết nối Arduino thiết bị ngoại vi + Về thái độ: Rèn luyện tính tỷ mỉ, xác an tồn vệ sinh cơng nghiệp III NỘI DUNG MƠ ĐUN Nội dung tổng quát phân bổ thời gian Thời gian TT Tên mô đun Thực hành/thực Tổng Lý tập/thí Kiểm số thuyết nghiệm/bài tra tập/thảo luận Kết nối dây Arduino thiết 18 bị ngoại vi 1.1 Arduino kết nối Led 1.2 Arduino kết nối LCD 1.3 Arduino kết nối động 1.4 Arduino kết nối cảm biến 1.5 Arduino kết nối thiết bị khác Kiểm tra Lắp đặt mơ hình điều khiển 24 Arduino 14 19 41 12 74 2.1 Điều khiển Arduino kết nối Led2.2 Điều khiển Arduino kết nối LCD 2.3 Điều khiển Arduino kết nối động 2.4 Điều khiển Arduino kết nối cảm biến Kiểm tra Lập trình điều khiển tổng hợp 48 hệ thống điện tử 3.1 Điều khiển sa bàn đèn giao thông 3.2 Điều khiển robot 3.3 Điều khiển ứng dụng mạng cảm biến 3.4 Điều khiển hệ điện tử Kiểm tra Cộng 90 Chương Kết nối dây Arduino thiết bị ngoại vi 1.1 Arduino kết nối Led Tổng quan Arduino Hình 1.1: Arduino Uno Hình 1.2 Sơ đồ chân Arduino Uno Arduino board mạch vi xử lý, nhằm xây dựng các ứng dụng tương tác với với môi trường được thuận lợi Phần cứng bao gồm board mạch nguồn mở được thiết kế tảng vi xử lý AVR Atmel 8bit, ARM Atmel 32-bit Những Model được trang bị gồm cổng giao tiếp USB, chân đầu vào analog, 14 chân I/O kỹ thuật số tương thích với nhiều board mở rộng khác Được giới thiệu vào năm 2005, Những nhà thiết kế Arduino cố gắng mang đến phương thức dễ dàng, khơng tốn cho người u thích, sinh viên giới chuyên nghiệp để tạo thiết bị có khả tương tác với mơi trường thơng qua các cảm biến các cấu chấp hành Những ví dụ phổ biến cho người yêu thích bắt đầu bao gồm các robot đơn giản, điều khiển nhiệt độ phát chuyển động Đi với mơi trường phát triển tích hợp (IDE) chạy các máy tính cá nhân thơng thường cho phép người dùng viết các chương trình cho Aduino ngôn ngữ C C++ Các thiết bị kết nối LED đoạn Hình 1.3: Sơ đờ ngun lý LED đoạn Màn hình LCD Hình 1.4: Màn hình LCD Cảm biến nhiệt độ DS18B20 Hình 1.5: Sơ đồ khối cảm biến nhiệt độ DS18B20 IC cầu H (L298) Hình 1.6: Sơ đờ ngun lý IC cầu H L298 Kết nối lập trình LED Lập trình bật/tắt LED đơn theo chương trình * Bài tập 1: Lập trình bật tắt 01 LED đơn sáng cổng P13 Arduino Sơ đồ nguyên lý điện tử Hình 1.7: Sơ đờ ngun lý điện tử thí nghiệm bật/tắt LED đơn cổng P13 Arduino Nguyên lý hoạt động Nhiệm vụ tập điều khiển bật/tắt LED đơn Việc bật/tắt LED đơn tương ứng với việc đưa tín hiệu cổng vào/ra Arduino LED đơn được điều khiển chân P13 (digital) Arduino LED sáng chân P13 mức thấp (LOW) tắt chân P13 mức cao (HIGH) đầu còn lại LED nối với nguồn 5V qua điện trở 220 Ohm LED sáng 1giây tắt Lưu đồ thuật toán BẮT ĐẦU Khai báo cổng sử dụng để bật/tắt LED (P13) Bật LED (P13) Trễ 1s Tắt LED (P13) KẾT THÚC Hình 1.8: Lưu đờ thuật tốn chương trình bật/tắt 01 LED đơn cổng P13 Các bước thực - Bước 1: Dùng dây điện có phích cắm hai đầu để nối chốt ‘P13’ Arduino với chốt ‘IN1’ LED đơn ‘D1’ Module IA01 Sau kết nối các chốt, ta có sơ đồ kết nối hồn chỉnh thí nghiệm sau: Hình 1.9: Sơ đờ đấu nối hồn chỉnh thí nghiệm bật/tắt LED đơn cổng P13 Arduino - Bước 2: Viết chương trình bật/tắt cho LED đơn cổng P13 với các lệnh sau, tên file bat.tat.ino: Bài tập mở rộng Bài tập: Lập trình bật/tắt LED đơn cổng P2 Arduino Báo cáo kết quả Sinh viên thực thí nghiệm, nhận xét kết quả quan sát được có đúng theo yêu cầu toán đặt không? Các lỗi phát sinh có, hướng kiểm tra khắc phục Sinh viên vận dụng kiến thức có được làm tập mở rộng Bài tập 2: Lập trình bật/tắt 08 LED đơn sáng cổng P0-P7 Arduino Mục đích Giúp người học thành thạo với cách nhập/xuất liệu các cổng I/O Arduino Giúp người học vận dụng kiến thức được học mơn lập trình chun dụng Sơ đồ nguyên lý điện tử Hình 1.10: Sơ đờ ngun lý điện tử thí nghiệm bật/tắt 08 LED đơn cổng P0-P7 Arduino Nguyên lý hoạt động Nhiệm vụ tập điều khiển bật/tắt 08 LED đơn Việc bật/tắt LED đơn tương ứng với việc đưa tín hiệu cổng vào/ra Arduino LED đơn được điều khiển chân P0-P7 (digital) Arduino LED sáng 08 chân P0-P7 mức thấp (LOW) tắt 08 chân P0-P7 mức cao (HIGH) đầu Lưu đồ thuật toán Bắt đầu Bắt đầu Xuất tín hiệu điều khiển đến chân A9, A10 để bật LED đoạn trục Xuất tín hiệu điều khiển đến chân A9, A10 để bật LED đoạn trục Xuất tín hiệu điều khiển đến các chân a, b, c, d, e, f, g LED đoạn trục để hiển thị số 15 Xuất tín hiệu điều khiển đến các chân a, b, c, d, e, f, g LED đoạn trục để hiển thị số 04 Trễ 1s Trễ 1s Xuất tín hiệu điều khiển đến các chân a, b, c, d, e, f, g LED đoạn trục để hiển thị số 14 Xuất tín hiệu điều khiển đến các chân a, b, c, d, e, f, g LED đoạn trục để hiển thị số 03 Trễ 1s Trễ 1s Xuất tín hiệu điều khiển đến các chân a, b, c, d, e, f, g LED đoạn trục để hiển thị số 00 Xuất tín hiệu điều khiển đến các chân a, b, c, d, e, f, g LED đoạn trục để hiển thị số 00 Trễ 1s Trễ 1s Hình 3.5: Lưu đờ thuật tốn chương trình bật đèn xanh ở trục đèn Hình 3.6: Lưu đờ thuật tốn chương trình bật đèn vàng ở trục đèn 140 Bắt đầu Bắt đầu Xuất tín hiệu điều khiển đến chân A9, A10 để bật LED đoạn trục Xuất tín hiệu điều khiển đến chân A7, A8 để bật LED đoạn trục phụ Xuất tín hiệu điều khiển đến các chân a, b, c, d, e, f, g LED đoạn trục để hiển thị số 20 Xuất tín hiệu điều khiển đến các chân a, b, c, d, e, f, g LED đoạn trục phụ để hiển thị số 20 Trễ 1s Trễ 1s Xuất tín hiệu điều khiển đến các chân a, b, c, d, e, f, g LED đoạn trục để hiển thị số 19 Xuất tín hiệu điều khiển đến các chân a, b, c, d, e, f, g LED đoạn trục phụ để hiển thị số 19 Trễ 1s Trễ 1s Xuất tín hiệu điều khiển đến các chân a, b, c, d, e, f, g LED đoạn trục để hiển thị số 00 Xuất tín hiệu điều khiển đến các chân a, b, c, d, e, f, g LED đoạn trục phụ để hiển thị số 00 Trễ 1s Trễ 1s Hình 3.7: Lưu đờ thuật tốn chương trình bật đèn đỏ ở trục đèn Hình 3.8: Lưu đờ thuật tốn chương trình bật đèn đỏ ở trục đèn phụ 141 Bắt đầu Bắt đầu Xuất tín hiệu điều khiển đến chân A7, A8 để bật LED đoạn trục phụ Xuất tín hiệu điều khiển đến các chân a, b, c, d, e, f, g LED đoạn trục phụ để hiển thị số 15 Xuất tín hiệu điều khiển đến chân A7, A8 để bật LED đoạn trục phụ Xuất tín hiệu điều khiển đến các chân a, b, c, d, e, f, g LED đoạn trục phụ để hiển thị số 04 Trễ 1s Trễ 1s Xuất tín hiệu điều khiển đến các chân a, b, c, d, e, f, g LED đoạn trục phụ để hiển thị số 14 Xuất tín hiệu điều khiển đến các chân a, b, c, d, e, f, g LED đoạn trục phụ để hiển thị số 03 Trễ 1s Trễ 1s Xuất tín hiệu điều khiển đến các chân a, b, c, d, e, f, g LED đoạn trục phụ để hiển thị số 00 Xuất tín hiệu điều khiển đến các chân a, b, c, d, e, f, g LED đoạn trục phụ để hiển thị số 00 Trễ 1s Trễ 1s Hình 3.9: Lưu đờ thuật tốn chương trình bật đèn xanh ở trục đèn phụ Hình 3.10: Lưu đờ thuật tốn chương trình bật đèn vàng ở trục đèn phụ Các bước thực Bước 1: Dùng dây điện có phích cắm đầu để nối chốt Arduino với chốt các LED mơ hình sa bàn đèn giao thông Nối chốt D1 với chốt A13 Nối chốt D2 với chốt A12 142 Nối chốt D3 với chốt A11 Nối chốt D4với chốt P1 Nối chốt D5 với chốt P0 Nối chốt D6 với chốt P2 Nối chốt D7 với chốt P3 Nối chốt D8 với chốt P4 Nối chốt D9 với chốt A14 Nối chốt D10 với chốt A15 Nối chốt A với chốt A6 Nối chốt B với chốt A5 Nối chốt C với chốt A4 Nối chốt D với chốt A3 Nối chốt E với chốt A2 Nối chốt F với chốt A1 Nối chốt G với chốt A0 Nối chốt T1 với chốt A10 Nối chốt T2 với chốt A9 Nối chốt T3 với chốt A7 Nối chốt T4 với chốt A8 Nối chốt nguồn 12V Arduino với chốt 12V khối nguồn chiều Nối chốt nguồn 5V hệ thống LED đơn với chốt 5V khối nguồn chiều Nối chốt nguồn 5V Transistor với chốt 5V khối nguồn chiều Nối chốt GND Arduino với chốt GND khối nguồn chiều Sau kết nối các chốt, ta có sơ đồ kết nối hồn chỉnh thí nghiệm sau: 143 Hình 3.11: Sơ đờ đấu nối tập lập trình điều khiển bật/tắt tự động hệ thống LED đơn (xanh, đỏ, vàntheo thời gian sa bàn mơ hình đèn giao thơng Bước 3: Biên dịch chương trình để kiểm tra chương trình có lỗi hay khơng Nếu chương trình khơng có lỗi chuyển sang bước Bước 4: Nạp chương trình vào Arduino Bước 5: Gạt cơng tắc nguồn chiều khối nguồn chiều đế chung sang vị trí ‘on’ để chạy chương trình theo dõi quá trình chạy chương trình Bài tập mở rộng Bài tập: Lập trình điều khiển bật/tắt tự động hệ thống LED đơn (xanh, đỏ, vàng theo thời gian tăng dần Sa bàn mơ hình đèn giao thơng Báo cáo kết quả Sinh viên thực thí nghiệm, nhận xét kết quả quan sát được có đúng theo yêu cầu toán đặt không? Các lỗi phát sinh có, hướng kiểm tra khắc phục Sinh viên vận dụng kiến thức có được làm tập mở rộng Lập trình điều khiển tự động bật/tắt, tốc độ động theo thời gian sa bàn mô hình đèn giao thơng Mục đích Giúp sinh viên củng cố kiến thức thiết kế lập trình cho hệ thống Vi xử lý Vi điều khiển 144 Giúp Sinh viên chuyển đổi tư từ kiến thức lý thuyết đến tiếp cận với thực tế Giúp cho sinh viên hiểu rõ được thí nghiệm phận công việc người làm công tác khoa học kỹ thuật Sơ đồ nguyên lý điện tử Hình 3.12: Sơ đờ ngun lý thí nghiệm điều khiển thay đổi tốc độ động theo thời gian sa bàn mơ hình đèn giao thơng Ngun lý hoạt động Sau cấp nguồn cho Arduino Arduino xuất tín hiệu điều khiển lần lượt Transistor Do người lập trình quy định mà thời điểm có Transistor có tín hiệu Ứng với mức logic (5V) cấp vào chân B (Bazơ) Transistor Transistor mở, ngược lại mức logic Transistor khóa, đầu E (Emitơ) Transistor được nối với chân chung LED đoạn để điều khiển bật/tắt LED đoạn Các chân điều khiển A, B, C, D, E, F, G LED đoạn được nối với các chân từ A0 tới A6 Arduino Khi chân chung LED đoạn được cấp tín hiệu logic mức (5V) các chân A, B, C, D, E, F, G có tín hiệu logic mức LED đoạn sáng các vị trí A, B, C, D, E, F, G tương ứng Còn các chân A, B, C, D, E, F, G LED đoạn có tín hiệu mức logic thì vị trí A, B, C, D, E, F, G LED đoạn tắt Các chân 0, 1, 2, 3, 4, A11, A12, A13, A14, A15 Arduino kết nối với cực Katot các LED đơn (xanh, đỏ, vàng) Người lập trình điều khiển bật/tắt các LED đơn (xanh, đỏ, vànthơng qua việc đưa tín hiệu từ các chân Arduino mức logic (5V) hay mức logic (0V) Khi đầu các chân mức logic LED phân cực thuận sáng đầu mức logic LED tắt phân cực ngược 145 Người lập trình đặt thời gian trễ đèn xanh 60s, đèn vàng 3s đèn đỏ 63s Ta kết nối Arduino với module L298 thông qua chân 7, 8, Trong chân Arduino kết nối với IN1, IN2 L298 hai chân quy định L298 điều khiển chiều quay động số chân kết nối với ENA quy định L298 cho phép điều khiển động Cụ thể ta lập trình cấp tín hiệu vào chân ENA = động khơng được phép quay, lập trình cấp tín hiệu digital ENA = động được phép quay Người lập trình điều khiển tốc độ động cách xuất tín hiệu PWM tới chân ENA với tín hiệu đèn xanh ta cho động quay với tốc độ cực đại, tín hiệu đèn vàng động giảm tốc độ tín hiệu đèn đỏ động ngừng quay 3.2 Điều khiển robot “Tên "Tên "Tên "Tên "Tên "Tên "Tên "Tên "Tên 10 11 12 13 14 15 16 17 thiết thiết thiết thiết thiết thiết thiết thiết thiết "Tên "Tên "Tên "Tên "Tên "Tên "Tên "Tên bị".dung(); bị".tien(); bị".lui(); bị".reTrai(); bị".rẹPhai(); bị".luiTrai(); bị".luiPhai(); bị".xoayTrai(); bị".xoayPhai(); thiết bị".tienPWM(speed); thiết bị".luiPWM(speed); thiết bị".reTraiPWM(speed); thiết bị".rẹPhaiPWM(speed); thiết bị".luiTraiPWM(speed); thiết bị".luiPhaiPWM(speed); thiết bị".xoayTraiPWM(speed); thiết bị".xoayPhaiPWM(speed); 3.3 Điều khiển ứng dụng mạng cảm biến Mạng cảm biến không dây (Wireless Sensor Network) bao gồm tập hợp các thiết bị cảm biến sử dụng các liên kết không dây (vô tuyến, hồng ngoại quang học) để phối hợp thực nhiệm vụ thu thập thông tin liệu phân tán với quy mô lớn bất kỳ điều kiện bất kỳ vùng địa lý Mạng cảm biến khơng dây liên kết trực tiếp với nút quản lý giám sát trực tiếp hay gián tiếp thông qua điểm thu phát (Sink) môi trường mạng công cộng Internet hay vệ tinh Lợi chủ yếu chúng khả xử lý tốc độ cao, triển khai loại hình địa lý kể cả các môi trường nguy hiểm sử dụng mạng cảm biến có dây truyền thống Một mạng cảm biến không dây bao gồm số lượng lớn các nút được triển khai dầy đặc bên gần đối tượng cần thăm dò, thu thập thông tin liệu Vị trí các cảm biến khơng cần định trước vậy cho phép triển khai 146 ngẫu nhiên các vùng tiếp cận các khu vực nguy hiểm Khả tự tổ chức mạng cộng tác làm việc các cảm biến không dây đặc trưng bản mạng Với số lượng lớn các cảm biến không dây được triển khai gần truyền thơng đa liên kết được lựa chọn để công suất tiêu thụ nhỏ (so với truyền thông đơn liên kết) mang lại hiệu quả truyền tín hiệu tốt so với truyền khoảng cách xa Hình 3.13 : Mạng cảm biến không dây Các nút cảm biến được triển khai trường cảm biến (sensor field) Mỗi nút cảm biến được phát tán mạng có khả thu thập thông số liệu, định tuyến số liệu thu nhận (Sink) để chuyển tới người dùng (User) định tuyến các bản tin mang theo yêu cầu từ nút Sink đến các nút cảm biến Số liệu được định tuyến phía thu nhận (Sink) theo cấu trúc đa liên kết khơng có sở hạ tầng tảng (Multihop Infrastructureless Architecture), tức khơng có các trạm thu phát gốc hay các trung tâm điều khiển Bộ thu nhận liên lạc trực tiếp với trạm điều hành (Task Manager Node) người dùng gián tiếp thông qua Internet hay vệ tinh (Satellite) Mỗi nút cảm biến bao gồm bốn thành phần bản là: cảm biến, xử lý, thu phát không dây nguồn điện Tuỳ theo ứng dụng cụ thể, nút cảm biến còn có các thành phần bổ sung hệ thống tìm vị trí, sinh lượng thiết bị di động Các thành phần nút cảm biến được thể hình Bộ cảm biến thường gồm hai đơn vị thành phần đầu đo cảm biến (Sensor) chuyển đổi tương tự/số (ADC) Các tín hiệu tương tự được thu nhận từ đầu đo, sau được chuyển sang tín hiệu số chuyển đổi ADC, được đưa tới xử lý Bộ xử lý, thường kết hợp với nhớ nhỏ, phân tích thơng tin cảm biến quản lý các thủ tục cộng tác với các nút khác để phối hợp thực nhiệm vụ Bộ thu phát đảm bảo thông tin nút cảm biến mạng kết nối không dây, vơ tuyến, hồng ngoại tín hiệu quang Một thành phần quan trọng nút cảm biến nguồn Bộ nguồn, pin ắcquy, cung cấp lượng cho nút cảm biến 147 không thay được nên nguồn lượng nút thường giới hạn Bộ nguồn được hỗ trợ các thiết bị sinh điện, ví dụ các pin mặt trời nhỏ Hầu hết các công nghệ định tuyến mạng cảm biến các nhiệm vụ cảm biến yêu cầu phải có sự nhận biết vị trí với độ xác cao Do đó, các nút cảm biến thường phải có hệ thống tìm vị trí Các thiết bị di động đơi cần thiết để di chuyển các nút cảm biến theo yêu cầu để đảm bảo nhiệm vụ được phân công Phục vụ việc thu thập thông tin, giám sát trạng thái hoạt động hệ thống, trạng thái các van, trạng thái thiết bị, nhiệt độ áp suất nguyên liệu được lưu trữ; hệ thống điều khiển không dây ánh sáng quảng cáo Mục đích lớn các mạng cảm biến khơng dây gia đình được mong chờ mức tiêu thụ điện thấp Ứng dụng khác gia đình việc hỗ trợ các dịch vụ gia đình ơtơ: ổ khoá không dây, các cảm biến cửa vào cửa sổ, các điều khiển bóng đèn khơng dây, chủ nhà có thiết bị tương tự key-fob với nút bấm Khi bấm nút, thiết bị khoá tất cả các cửa vào cửa sổ nhà, tắt hầu hết các bóng đèn nhà (trừ vài bóng đèn ngủ), bật các bóng đèn an toàn nhà, thiết lập hệ thống HVAC đến chế độ ngủ Người sử dụng nhận tiếng beep đáp thể tất cả thực thành cơng, nghỉ ngơi hồn tồn, vậy ngơi nhà an tồn Khi cánh cửa hỏng mở, vấn đề tồn tại, hình hiển thị thiết bị thị nơi bị hỏng 3.4 Điều khiển hệ điện tử 10 11 12 13 14 15 16 17 18 19 /*Create *Date: 18-7-2016 *Thanks For Using */ #ifndef RobotMove_h #define RobotMove_h #include "Arduino.h" class RobotMove { public: RobotMove(int in1, int in2, int in3, int in4, int enA, int enB); void dung(); void tien(); void lui(); void xoayTrai(); void xoayPhai(); void reTrai(); void rePhai(); void luiTrai(); 148 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 void luiPhai(); void tienPWM(int speed); void luiPWM(int speed); void xoayTraiPWM(int speed); void xoayPhaiPWM(int speed); void reTraiPWM(int speed); void rePhaiPWM(int speed); void luiTraiPWM(int speed); void luiPhaiPWM(int speed); private: int _in1; int _in2; int _in3; int _in4; int _enA; int _enB; int _speed; }; #endif /*Create By Huynh Duc Nham 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 *Date: 18-7-2016 *Thanks For Using */ #include "Arduino.h" #include "RobotMove.h" RobotMove::RobotMove(int in1, int in2, int in3, int in4, int enA, int enB) { if(enA!=0) pinMode(enA,OUTPUT); if(enB!=0) pinMode(enB,OUTPUT); pinMode(in1,OUTPUT); pinMode(in2,OUTPUT); pinMode(in3,OUTPUT); pinMode(in4,OUTPUT); _in1=in1; _in2=in2; _in3=in3; _in4=in4; _enA=enA; _enB=enB; } void RobotMove::dung() { digitalWrite(_in1,0); digitalWrite(_in2,0); digitalWrite(_in3,0); digitalWrite(_in4,0); } void RobotMove::tien() { digitalWrite(_in1,1); digitalWrite(_in2,0); 149 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 digitalWrite(_in3,1); digitalWrite(_in4,0); if(_enA!=0) analogWrite(_enA,255); if(_enB!=0) analogWrite(_enB,255); } void RobotMove::lui() { digitalWrite(_in1,0); digitalWrite(_in2,1); digitalWrite(_in3,0); digitalWrite(_in4,1); if(_enA!=0) analogWrite(_enA,255); if(_enB!=0) analogWrite(_enB,255); } void RobotMove::xoayTrai() { digitalWrite(_in1,1); digitalWrite(_in2,0); digitalWrite(_in3,0); digitalWrite(_in4,1); if(_enA!=0) analogWrite(_enA,255); if(_enB!=0) analogWrite(_enB,255); } void RobotMove::xoayPhai() { digitalWrite(_in1,0); digitalWrite(_in2,1); digitalWrite(_in3,1); digitalWrite(_in4,0); if(_enA!=0) analogWrite(_enA,255); if(_enB!=0) analogWrite(_enB,255); } void RobotMove::reTrai() { digitalWrite(_in1,1); digitalWrite(_in2,0); digitalWrite(_in3,0); digitalWrite(_in4,0); if(_enA!=0) analogWrite(_enA,255); } void RobotMove::rePhai() { digitalWrite(_in1,0); 150 84 digitalWrite(_in2,0); 85 digitalWrite(_in3,1); 86 digitalWrite(_in4,0); 87 if(_enB!=0) 88 analogWrite(_enB,255); 89 } 90 void RobotMove::luiTrai() 91 { 92 digitalWrite(_in1,0); 93 digitalWrite(_in2,0); 94 digitalWrite(_in3,0); 95 digitalWrite(_in4,1); 96 if(_enB!=0) 97 analogWrite(_enB,255); 98 } 99 void RobotMove::luiPhai() 100 { 101 digitalWrite(_in1,0); 102 digitalWrite(_in2,1); 103 digitalWrite(_in3,0); 104 digitalWrite(_in4,0); 105 if(_enA!=0) 106 analogWrite(_enA,255); 107 } 108 void RobotMove::tienPWM(int speed) 109 { 110 digitalWrite(_in1,1); 111 digitalWrite(_in2,0); 112 digitalWrite(_in3,1); 113 digitalWrite(_in4,0); 114 if(_enA!=0) 115 analogWrite(_enA,speed); 116 if(_enB!=0) 117 analogWrite(_enB,speed); 118 } 119 void RobotMove::luiPWM(int speed) 120 { 121 digitalWrite(_in1,0); 122 digitalWrite(_in2,1); 123 digitalWrite(_in3,0); 124 digitalWrite(_in4,1); 125 if(_enA!=0) 126 analogWrite(_enA,speed); 127 if(_enB!=0) 128 analogWrite(_enB,speed); 129 } 130 void RobotMove::xoayTraiPWM(int speed) 131 { 132 digitalWrite(_in1,1); 133 digitalWrite(_in2,0); 134 digitalWrite(_in3,0); 135 digitalWrite(_in4,1); 151 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 if(_enA!=0) analogWrite(_enA,speed); if(_enB!=0) analogWrite(_enB,speed); } void RobotMove::xoayPhaiPWM(int speed) { digitalWrite(_in1,0); digitalWrite(_in2,1); digitalWrite(_in3,1); digitalWrite(_in4,0); if(_enA!=0) analogWrite(_enA,speed); if(_enB!=0) analogWrite(_enB,speed); } void RobotMove::reTraiPWM(int speed) { digitalWrite(_in1,1); digitalWrite(_in2,0); digitalWrite(_in3,0); digitalWrite(_in4,0); if(_enA!=0) analogWrite(_enA,speed); } void RobotMove::rePhaiPWM(int speed) { digitalWrite(_in1,0); digitalWrite(_in2,0); digitalWrite(_in3,1); digitalWrite(_in4,0); if(_enB!=0) analogWrite(_enB,speed); } void RobotMove::luiTraiPWM(int speed) { digitalWrite(_in1,0); digitalWrite(_in2,0); digitalWrite(_in3,0); digitalWrite(_in4,1); if(_enB!=0) analogWrite(_enB,speed); } void RobotMove::luiPhaiPWM(int speed) { digitalWrite(_in1,0); digitalWrite(_in2,1); digitalWrite(_in3,0); digitalWrite(_in4,0); if(_enA!=0) analogWrite(_enA,speed); } 152 10 11 12 #include RobotMove myRobot(6,7,8,9,0,0); void setup() { } void loop() { myRobot.tien(); delay(2000); myRobot.lui(); delay(2000); } 153 Tài liệu tham khảo [1] Đề cương môđun/môn học nghề Sửa chữa thiết bị điện tử công nghiệp”, Dự án Giáo dục kỹ thuật Dạy nghề (VTEP), Tổng cục Dạy Nghề, Hà Nội, 2003 [2] Automatisieren mit sps - Guenter, Wellenreuther, Dieter Zastrow nxb Viweg [3] Stuerung von – ELWE [4].Tự động hóa với simatic s7-200 Nguyễn Dỗn Phước nxb nông nghiệp 154 ... Kiểm tra Lập trình điều khiển tổng hợp 48 hệ thống điện tử 3.1 Điều khiển sa bàn đèn giao thông 3.2 Điều khiển robot 3.3 Điều khiển ứng dụng mạng cảm biến 3.4 Điều khiển hệ điện tử Kiểm... Lập trình điều khiển tổng hợp hệ thống điện tử 133 3.1 Điều khiển sa bàn đèn giao thông 133 3.2 Điều khiển robot 146 3.3 Điều khiển ứng dụng mạng cảm biến 146 3.4 Điều. .. tra Lắp đặt mơ hình điều khiển 24 Arduino 14 19 41 12 74 2.1 Điều khiển Arduino kết nối Led2.2 Điều khiển Arduino kết nối LCD 2.3 Điều khiển Arduino kết nối động 2.4 Điều khiển Arduino kết nối

Ngày đăng: 05/01/2023, 17:41