Đồ án điện điện tử điều khiển tốc độ động cơ Encoder dùng Arduino. Đo tốc độ động cơ dùng Encoder, tín hiệu từ Encoder tạo ra các dạng xung vuông có tần số thay đổi phụ thuộc vào tốc độ động cơ. Do đó các xung vuông này được đưa vào bộ vi xử lý để đếm số xung trong khoảng thời gian cho phép từ đó ta có thể tính được giá trị vận tốc của động cơ. Đây cũng là phương pháp mà người ta sử dụng để ổn định tốc độ động cơ hay điều khiển nhanh chậm….2.Nội dung đề tàiKhảo sát phân tích tổng hợp các cách thức hoạt động của Encoder để có độ chính xác cao nhất, bộ phận xử lí tín hiệu có tốc độ cao nhất… Tìm hiểu về arduino và áp dụng vào EncoderĐiều chỉnh Encoder chạy ổn định theo ý muốn
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THỰC PHẨM TP HCM KHOA CÔNG NGHỆ KỸ THUẬT ĐIỆN - ĐIỆN TỬ BÁO CÁO ĐỒ ÁN ĐỀ TÀI: ĐIỀU KHIỂN TỐC ĐỘ ĐỘNG CƠ ENCODER DÙNG ARDUINO GVHD : Võ Song Vệ SVTH : Huỳnh Thiệu Vinh Lớp : 08DHDT2 MSSV : 2002170313 TP HỒ CHÍ MINH, NĂM 2019 LỜI CẢM ƠN Trong suốt trình thực đồ án em gặp khơng khó khăn thiếu sót, nhờ hướng dẫn dạy tận tình thầy Võ Song Vệ - người gợi mở cho em đề tài “Điều khiển tốc độ động encoder” này, giúp đỡ em khắc phục thiếu sót để hồn thành đề tài thời hạn Em xin bày tỏ lòng biết ơn sâu sắc đến thầy Võ Song Vệ! Em xin chân thành cảm ơn quý thầy cô khoa Điện – Điện tử tận tình giảng dạy, trang bị cho em kiến thức quý báu suốt q trình học tập từ giúp em thực hoàn chỉnh đề tài Do kiến thức em hạn chế nên nhiều thiếu sót đồ án mong nhận thơng cảm góp ý q thầy để đồ án em hoàn chỉnh Em xin chân thành cảm ơn! Tp Hồ Chí Minh, ngày … tháng … năm 2019 Tác giả đồ án TÓM TẮT BÁO CÁO Đặt vấn đề Đo tốc độ động dùng Encoder, tín hiệu từ Encoder tạo dạng xung vng có tần số thay đơi phụ thuộc vào tốc độ động Do xung vuông đưa vào vi xử lý để đếm số xung khoảng thời gian cho phép từ ta tính giá trị vận tốc động Đây phương pháp mà người ta sử dụng để ổn định tốc độ động hay điều khiển nhanh chậm… Nội dung đề tài Khảo sát phân tích tổng hợp cách thức hoạt động Encoder để có độ xác cao nhất, phận xử lí tín hiệu có tốc độ cao nhất… Tìm hiểu arduino áp dụng vào Encoder Điều chỉnh Encoder chạy ổn định theo ý muốn Nội dung chương đề tài Chương 1: Mở đầu Chương giới thiệu sơ khai đề tài, tìm hiểu khái quát Encoder mục đích chọn đề tài Chương 2: Tìm hiểu arduino để điều khiển Encoder Nội dung chương trình bày phương pháp thường dùng để điều khiển Encoder Đi sâu vào tìm hiểu arduino ứng dụng vào sống, đặc biệt ứng dụng vào Encoder Chương 3: Tìm hiểu thành phần điều khiển Encoder Chương chủ yếu trình bày sơ lược cấu trúc hoạt động Arduino Uno R3, chi tiết mạch điều khiển động Chương 4: Chương trình nạp vào Encoder Chương trình bày chương trình nạp vào Encoder để vận hành Chương 5: Kết luận hướng phát triển Chương trình bày kết đạt báo cáo xu hướng phát triển DANH MỤC HÌNH ẢNH CHƯƠNG 1: Hình 1.1: Encoder tuyệt đối Hình 2.1: Board Arduino Hình 2.2: Sơ đồ nguyên lý mạch Arduino CHƯƠNG 3: Hình 3.1: Sơ đồ kết nối khối Encoder Hình 3.2: L298n Hình 3.3: Arduino Uno R3 13 Hình 3.4: Arduino Wifi Shield 15 Hình 3.5: Mở rộng cánh với IoT .17 Hình 3.6a: Đĩa quang absolute Encoder 19 Hình 3.6b: Đĩa quang incremental Encoder 19 Hình 3.7a: Mơ hình Điều khiển DC Encoder Hình 3.7b: Mơ hình Điều khiển DC Encoder CHƯƠNG 5: Hình 5.1: Encoder hiển thị tốc độ ……………………………………………………………… 25 Hình 5.2: Sử dụng Encoder đo tốc độ Servo PLC ………………………………….26 CHƯƠNG 1: MỞ ĐẦU 1.1 Giới thiệu đề tài Ngày nay, ngành công nghiệp 4.0 ngày phát triển xu hướng thời việc tự động hóa Encoder giữ vai trò vơ quan trọng Nó trang bị cấu tạo máy CNC thiết bị nhằm đo lường tìm vị trí xác trục máy vị trí dao cắt Đó lý mà việc gia cơng máy CNC đạt xác cao Hệ thống kiểm tra máy tính nhận thơng số mà encoder ghi nhận, từ điều chỉnh lại vị trí chi tiết nhỏ hay vị trí cắt dao cắt nhằm sửa chữa lỗi hạn chế sai sót Hình 1.2: Encoder tương đối Hình 1.1: Encoder tuyệt đối 1.2 Giới thiệu Encoder Encoder thiết bị điện dùng biến đổi vị trí góc trục quay từ analog sang digital Tín hiệu từ encoder tạo dạng xung vng có tần số thay đổi phụ thuộc vào tốc độ động Do xung vng đưa vào vi xử lý để đếm số xung khoảng thời gian cho phép từ ta tính giá trị vận tốc động Đây phương pháp mà người ta sử dụng để ổn định tốc độ động hay điều khiển nhanh chậm 1.3 Mục đích chọn đề tài Encoder vừa có nhiều ứng dụng thực tế vừa dễ dàng để sinh viên vận dụng kiến thức tiếp thu giảng đường vào Chúng thường có kết cấu khí, mạch điện chương trình đơn giản, giá thành rẽ nên encoder phù hợp để sinh viên học tập nghiên cứu cách cụ thể CHƯƠNG 2: TÌM HIỂU ARDUINO 2.1 Tìm hiểu arduino Arduino tảng mã nguồn mở sử dụng để xây dựng ứng dụng điện tử tương tác với với môi trường thuận lợi Arduino giống máy tính nhỏ để người dùng lập trình thực dự án điện tử mà khơng cần phải có cơng cụ chun biệt để phục vụ việc nạp code Hình 2.1: Board Arduino Arduino tương tác với giới thông qua cảm biến điện tử, đèn, động Arduino gồm: • Phần cứng gồm board mạch mã nguồn mở (thường gọi vi điều khiển): lập trình • Các phần mềm hỗ trợ phát triển tích hợp IDE (Integrated Development Environment) dùng để soạn thảo, biên dịch code nạp chương cho board 2.2 • Ứng dụng Arduino đời sống Làm Robot Arduino có khả đọc thiết bị cảm biến, điều khiển động cơ, … nên thường dùng để làm xử lý trung tâm nhiều loại robot • Game tương tác: Arduino sử dụng để tương tác với Joystick, hình,… chơi game Tetrix, phá gach, Mario… • Máy bay khơng người lái • Điều khiển đèn tín hiệu giao thơng, làm hiệu ứng đèn Led nhấp nháy biển quảng cáo… • Điều khiển thiết bị cảm biến ánh sáng, âm • Làm máy in 3D • Làm đàn ánh sáng • Làm lò nướng bánh biết tweet để báo cho bạn bánh chín Arduino nhiều ứng dụng hữu ích khác tùy vào sáng tạo người dùng Bây giờ, ta muốn bật tắt bóng đèn cách tự động, đảo hướng mơ tơ cách dễ dàng, đọc tín hiệu cảm biến ta cần mạch Arduino Hãy nghĩ cách đơn giản, bạn muốn điều khiển, quản lý, thứ liên quan đến điện tử ,điều khiển tự động Arduino giúp ta nhiều! Arduino biết đến cách rộng rãi Việt Nam, giới q phổ biến! Sức mạnh chúng ngày chứng tỏ theo thời gian với ứng dụng mở (open source) độc đáo chia sẻ rộng rãi Với Arduino ta ứng dụng vào mạch đơn giản mạch cảm biến ánh sáng bật tắt đèn, mạch điều khiển động cơ, cao ta làm sản phẩm như: máy in 3D, Robot, khinh khí cầu, máy bay không người lái, 2.3 Mã nguồn mở Phần cứng phần mềm Arduino nguồn mở - sơ đồ public trực tuyến nên bạn hồn tồn mua linh kiện tự làm lấy Hình 2.2: Sơ đồ nguyên lý mạch Arduino 10 • jack cắm điện • đầu ICSP • nút reset Chip xử lý ATMega328P Điện áp hoạt động 5v Điện áp vào(đề nghị) 7v-12v Điện áp vào(giới hạn) 6v-20v 14(trong có cung cấp đầu PWM) Số chân I/O kĩ thuật số Cường độ dòng điện 3.3v pin 50mA Cường độ dòng điện I/O pin 20mA Flash Memory 32 KB SRAM 2KB (ATMega328P) EEPROM 1KB(ATMega328P) 16MHz Clock Speed Thơng số kỹ thuật Hiện có nhiều shield tuyệt vời cho Arduino Mega Thơng thường, shield có hỗ trợ điều khiển motor, giúp cho Arduino Mega điều khiển nhiều motor lúc.Tuy nhiên, shield xịn cho Arduino Mega shield có hỗ trợ kết nối wifi giúp bạn chế tạo robot điều khiển từ xa 19 Hình 3.4: Arduino Wifi Shield 3.2.1 Sơ đồ linh kiện Arduino 20 • • • • • • • Chân GND chân 5V chân 3.3v nút reset chân analog 14 Chân digital có chân sử dụng PWM Chân lập trình ISP 3.2.2 Ứng dụng thực tế Với tiện ích vơ lớn Arduino Uno R3, mạnh mẽ với nhớ flash lớn, số chân nhiều số lượng shield hỗ trợ không nhỏ Arduino Uno đưa vào dự án lớn xử lý thông tin nhiều luồng, điều khiền nhiều động cơ, xe điều khiển từ xa, LED cube hay mở rộng cánh cửa với giới IoT Hình 3.5: Mở rộng cánh với IoT 21 3.3 Khối Encoder 3.3.1 Ứng dụng chung Encoder Trong hệ thống công nghiệp, dây chuyền đo, đếm,… việc sử dụng thiết bị hồi tiếp tín hiệu nhằm giúp hệ thống tối ưu hơn, đảm bảo độ xác Chính thế, mã hóa vòng quay (encoder) đời đáp ứng nhu cầu Nhằm mang đến mã hóa vòng quay với chất lượng tốt, giá thành hợp lýTrong toán đo tốc độ động cơ, máy CNC dùng để xác định khoảng dịch chuyển đối tượng thông qua đếm số vòng quay trục 3.3.2 Cấu tạo Encoder Gồm phát ánh sáng(LED phát), thu ánh sáng nhạy với ánh sáng từ phát(bộ thu thường photodiotde phototransistor) , hay đĩa quang (có khoan lỗ) gắn trục quay đặt phát thu, thông thường trục quay sẻ gắn với trục quay đối tượng cần đo tốc độ 3.3.3 Nguyên lý Trên đĩa quang có khoét nhiều lổ cho phép ánh sáng truyền qua theo cách mã hoá khác nhau, số lổ sẻ định độ xác thiết bị đo Ví dụ đĩa quang bạn có lổ tức bạn quay vòng thu sẻ thu xung, đĩa quang bạn kht N lổ có nghĩa vòng bạn thu N xung Như đo tốc độ bạn đếm số xung đơn vị thời gian, từ bạn tính số vòng đơn vị thời gian (hoặc đo chu kì xung) Nếu đo tốc độ cao số lổ khoét nhiều xác 3.3.4 Các loại Encoder Encoder chia làm loại, absolute encoder incremental encoder Tạm dịch encoder tuyệt đối encoder tương đối Absolute encoder, có nghĩa encoder tuyệt đối, tức tín hiệu ta nhận được, rõ ràng vị trí encoder, khơng cần xử lý thêm, biết xác vị trí encoder Còn incremental encoder, loại encoder có 1, 2, tối đa vòng lỗ Nếu loại có lỗ encoder quay hết vòng ta nhận tín hiệu báo quay hết vòng 22 Nếu encoder có nhiều lỗ hơn, có thơng tin chi tiết , có nghĩa đĩa quay 1/4 vong, 1/8 vòng, 1/n vòng, tùy theo số lỗ nằm incremental encoder Cứ lần qua lỗ, phải lập trình để thiết bị đo đếm lên Do vậy, encoder loại có tên incremental encoder (encoder tăng lên đơn vị) Hình 3.6b: Đĩa quang incremental Encoder Hình 3.6a: Đĩa quang absolute Encoder , Thông thường ta sử dụng loại incremental encoder để xác định encoder quay xong vòng xác định chiều quay động người ta dùng đĩa quang khoan lỗ sau: Vị trí góc lỗ vòng lỗ vòng lệch Các cạnh lỗ vòng nằm lỗ vòng ngược lại Tuy nhiên, thay làm vòng encoder, 23 dùng đèn LED đặt thẳng hàng, người ta cần làm vòng lỗ, đặt hai đèn LED lệch Kết quả, thường thấy encoder có dạng hình: 3.4 Khối nguồn 24 Để Encoder hoạt động ta sử dụng nguồn nguồn tổ ong có điện áp trung bình 12V Ngồi có biến áp xung, cuộn chống nhiễu,tụ lọc sơ cấp, diode chỉnh lưu,tụ lọc nguồn thứ cấp, IC quang & IC TL431, cầu chì diode để bảo vệ mạch 3.2 Sơ đồ mạch hoàn chỉnh Kết hợp khối mạch nguyên lý lại với ta Mơ hình điều khiển tốc độ Encoder hồn chỉnh qua hình sau: 25 Hình 3.7a: Mơ hình Điều khiển DC Encoder 26 Hình 3:7b: Mơ hình Điều khiển DC Encoder 27 CHƯƠNG 4: CHƯƠNG TRÌNH NẠP VÀO ENCODER 4.2 Đọc vị trí int vitri = 0; void chay () { if (digitalRead(4) == 1) vitri++; else vitri ; } void setup(){ // put your setup code here, to run once: attachInterrupt (0,chay,RISING); 4.2 Điều Serial.begin(9600); } void loop(){ Serial.println(vitri); } // put your main code here, to run repeatedly: khiển tốc độ #define QUAYDUONG 10 #define QUAYAM 28 int vitri = 0; void chay () { if (digitalRead(4) == 1) vitri++; else vitri ; } void quay (int nangluong) { if (nangluong>=255) { nangluong=255; } if(nangluong0) { analogWrite(QUAYAM,0); analogWrite(QUAYDUONG,nangluong); } if(nangluong