Arduino Điều khiển động cơ bước, với các nút bấm điều khiển hướng động cơ

16 94 0
Arduino Điều khiển động cơ bước, với các nút bấm điều khiển hướng động cơ

Đ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

Các mạch điện tử cơ bản vốn được coi là một trong những kiến thức cơ sở, vì vậy để học tốt kiến thức chuyên ngành thì việc nắm vững đặc điểm và nguyên lí, cách thiết kế và làm mạch thực tế rất quan trọng. Bài thực hành với những kiến thức nền tảng sẽ giúp chúng ta hiểu rõ hơn và sâu hơn về các mạch điện tử cơ bản. Nội dung của Đồ Án 2 này là Điều khiển động cơ bước với Arudino, sử dụng chiết áp để thay đổi tốc độ động cơ (28BYJ48 5v), và hiển thị lên màn hình LCD (1602), và Nhóm có thiết kế thêm 3 nút bấm để điều khiển vị trí của động cơ. Mạch được thiết kế dựa trên sự hướng dẫn của giảng viên môn Đồ án 2, cùng với tìm hiểu, tham gia của các thành viên nhóm và những môn đã học như: Linh kiện điện tử, Thực hành điện tử, Kỹ thuật Vi Xử Lý … Tuy chúng em đã có nhiều cố gắng khi biên soạn và làm báo cáo thực hành nhưng không tránh khỏi những khiếm khuyết. Chúng em hy vọng nhận được sự góp ý của Thầy để Đồ Án 2 được hoàn thiện hơn. Cuối cùng, chúng em xin gửi lời cảm ơn đến Thầy T.s: Hoàng Anh đã hướng dẫn chúng em hoàn thành Báo cáo Đồ Án 2 này.

TRƯỜNG ĐẠI HỌC MỞ HÀ NỘI KHOA CÔNG NGHỆ ĐIỆN TỬ THÔNG TIN - - BÁO CÁO Đồ Án Giảng Viên : T.s Hồng Anh Nhóm :3 Khoa : Công Nghệ Điện Tử - Thông Tin Lớp : K23D Thành viên tham gia : - Nguyễn Văn Hồi - Quản Văn Hịa Hà Nội, Ngày 20 Tháng Năm 2023  Nhóm 3: Nguyễn Văn Hồi + Quản Văn Hịa GVHS: T.s Hồng Anh 1|Page Lời Mở Đầu Các mạch điện tử vốn coi kiến thức sở, để học tốt kiến thức chuyên ngành việc nắm vững đặc điểm nguyên lí, cách thiết kế làm mạch thực tế quan trọng Bài thực hành với kiến thức tảng giúp hiểu rõ sâu mạch điện tử Nội dung Đồ Án Điều khiển động bước với Arudino, sử dụng chiết áp để thay đổi tốc độ động (28BYJ-48 5v), hiển thị lên hình LCD (1602), Nhóm có thiết kế thêm nút bấm để điều khiển vị trí động Mạch thiết kế dựa hướng dẫn giảng viên môn Đồ án 2, với tìm hiểu, tham gia thành viên nhóm mơn học như: Linh kiện điện tử, Thực hành điện tử, Kỹ thuật Vi Xử Lý … Tuy chúng em có nhiều cố gắng biên soạn làm báo cáo thực hành không tránh khỏi khiếm khuyết Chúng em hy vọng nhận góp ý Thầy để Đồ Án hoàn thiện Cuối cùng, chúng em xin gửi lời cảm ơn đến Thầy T.s: Hoàng Anh hướng dẫn chúng em hoàn thành Báo cáo Đồ Án Nhóm 3: Nguyễn Văn Hồi + Quản Văn Hịa GVHS: T.s Hồng Anh 2|Page Mục Lục I Giới Thiệu Về Linh Kiện 1.1 Giới thiệu chung 1.2 Cấu tạo linh kiện sử dụng 1.2.1 Arduino 1.2.2 Động bước (StepMotor 28BYJ-48) 1.2.3 Một số linh kiện khác 1.3 Ứng Dụng II Thiết kế mạch chương trình điều khiển động bước với Arduino 2.1 Nguyên lí hoạt động 2.2 Thiết kế mạch điều khiển động bước với Arduino có sử dụng chiết áp 10 2.3 Lập trình điều khiển động bước hiển thị thơng tin lên hình LCD, Các nút bấm điều khiển vị trí động cơ: 12 III Kết thực nghiệm 14 3.1 Mô tả kết thực nghiệm 14 3.2 So sánh kết thực nghiệm với kết dự đoán: 14 3.3 Nhận xét kết thực nghiệm 15 IV Kết Luận 15 Nhóm 3: Nguyễn Văn Hồi + Quản Văn Hịa GVHS: T.s Hồng Anh 3|Page Danh Mục Hình Ảnh Hình 1.1: Hình Ảnh Arduino Uno R3 .5 Hình 2: Hình ảnh động bước Hình 1.3: Hình Ảnh LCD 1608 .7 Hình 1.4: Hình Ảnh Module I2c Hình 1.5: DRIVER ULN2003 Hình 2.1: Mơ Phỏng Mạch Trên Proteus 10 Hình 2: Mơ Phỏng Trên Pritzing .11 Hình 2.3: Mơ Phỏng Trên Circuit 11 Hình 2.4: Mạch Thật 12 Nhóm 3: Nguyễn Văn Hồi + Quản Văn Hịa GVHS: T.s Hoàng Anh 4|Page I Giới Thiệu Về Linh Kiện 1.1 Giới thiệu chung Cơng nghệ lập trình phát triển mang lại nhiều lợi ích, tiện nghi sống Những thiết bị máy móc điều khiển chương trình lập trình sẵn, dựa phần mềm tảng Với người làm việc lĩnh vực khoa học máy tính khơng q xa lạ với lập trình Arduino Arduino khởi động vào năm 2005 dự án dành cho sinh viên trại Interaction Design Institute Ivrea (Viện thiết kế tương tác Ivrea) tại Ivrea, Italy Vào thời điểm sinh viên sử dụng "BASIC Stamp" (con tem Cơ Bản) có giá khoảng $100, xem giá dành cho sinh viên Massimo Banzi, người sáng lập, giảng dạy Ivrea Cái tên "Arduino" đến từ quán bar Ivrea, nơi vài nhà sáng lập dự án thường xuyên gặp mặt Bản thân quán bar có lấy tên Arduino, Bá tước Ivrea, vua Italy từ năm 1002 đến 1014 Được giới thiệu vào năm 2005, nhà thiết kế Arduino cố gắng mang đến phương thức dễ dàng, không tốn cho người yê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 và 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 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 chương trình cho mạch ngơn ngữ Arduino, ngôn ngữ riêng phát triển dựa C/C++ Động bước loại động đồng bộ, có khả biến đổi tín hiệu điều khiển máy móc dạng xung điện rời rạc phát nhau, tạo thành chuyển động góc quay Đơi chuyển động rôto, giúp cho người dùng cố định roto máy vào vị trí cần thiết Nói chung, động bước (motor bước) là loại động cơ mà bạn quy định tần số góc quay Nếu góc bước nhỏ số bước vòng quay động lớn độ xác vị trí thu lớn Nhóm 3: Nguyễn Văn Hồi + Quản Văn Hịa GVHS: T.s Hồng Anh 5|Page 1.2 Cấu tạo linh kiện sử dụng 1.2.1 Arduino - Cấu tạo Arduino chia thành loại phần cứng phần mềm Cụ thể: Phần cứng mã nguồn mở: Một board mạnh điện tử mã nguồn mở (vi điều khiển) - lập trình Phần vi mạch có nhiều loại với đặc điểm khác nhau: Arduino Uno - loại broad mạch đơn giản cho người bắt đầu, Arduino Micro thiết kế nhỏ gọn với 20 chân Phần mềm hỗ trợ phát triển tích hợp IDE (Integrated Development Environment) - nhiệm vụ biên soạn, soạn thảo nạp chương trình vào broad Arduino có nhiều loại mã nguồn mở phong phú: Arduino Uno, Nano … Hình 1.1: Hình Ảnh Arduino Uno R3 Nhóm 3: Nguyễn Văn Hồi + Quản Văn Hịa GVHS: T.s Hồng Anh 6|Page 1.2.2 Động bước (StepMotor 28BYJ-48) Cấu tạo động bước gồm: Rotor Stato Rotor thực dãy nam châm vĩnh cửu, chúng xếp chồng lên cách kỹ lưỡng, cẩn thận Trên nam châm lại chia thành cặp cực xếp đối xứng với Stato cấu tạo sắt từ, chúng chia thành rãnh nhỏ để đặt cuộn dây Hình 2: Hình ảnh động bước 1.2.3 Một số linh kiện khác LCD 1602 : LCD 16×2 có 16 chân chân liệu (D0 – D7) chân điều khiển (RS, RW, EN) chân lại dùng để cấp nguồn đèn cho LCD 16×2 Các chân điều khiển giúp ta dễ dàng cấu hình LCD chế độ lệnh chế độ liệu Chúng cịn giúp ta cấu hình chế độ đọc ghi Nhóm 3: Nguyễn Văn Hồi + Quản Văn Hịa GVHS: T.s Hồng Anh 7|Page Hình 1.3: Hình Ảnh LCD 1608 Moudle giao tiếp I2C Hình 1.4: Hình Ảnh Module I2c Nhóm 3: Nguyễn Văn Hồi + Quản Văn Hịa GVHS: T.s Hồng Anh 8|Page Driver điều khiển ULN2003 : ULN2003 IC 16 chân, bao gồm cặp darlington (mỗi cặp bảo vệ supression diode) có khả xử lý tối đa tải (có thể cảm ứng) Nói cách dễ hiểu, có driver chip ULN2003 kiểm sốt tối đa tải Hình 1.5: DRIVER ULN2003 Và số Linh Kiện Khác: Chiết áp Nút nhấn Điện trở Breadbroad Jump cắm Nhóm 3: Nguyễn Văn Hồi + Quản Văn Hịa GVHS: T.s Hồng Anh 9|Page 1.3 Ứng Dụng Arduino đời từ lâu ý, mở rộng phát triển sử dụng rộng rãi ngày Tính ứng dụng mã nguồn mở lập trình Ard lớn, cụ thể như: Lập trình robot mã nguồn mở - đó, mã nguồn mở đóng vai trị quan trọng trung tâm xử lý điều khiển robot Arduino ứng dụng lập trình máy bay khơng người lái, xu hướng tương lai tiếp tục nghiên cứu Arduino sử dụng để lập trình game tương tác Trong đó, mã nguồn mở tương tác với Joystick, hình… để chơi nhiều game sáng tạo Arduino ứng dụng điều khiển thiết bị hệ thống ánh sáng với cảm biến tốt Lập trình bảng mạch điều khiển tín hiệu đèn giao thơng, hiệu ứng đèn nháy, biển quảng cáo… Arduino sử dụng máy in 3D, thiết bị cắt CNC nhiều thiết bị sáng tạo khác II Thiết kế mạch chương trình điều khiển động bước với Arduino 2.1 Nguyên lí hoạt động Mạch sử dụng chiết áp điều khiển tốc độ động bước với Arduino hiển thị LCD 1602 sử dụng nguyên lý điều khiển tốc độ động bước cách điều chỉnh độ rộng xung (pulse width) gửi đến động Độ rộng xung gửi đến động bước điều khiển mạch điều khiển động bước Mạch sử dụng IC ULN2003 để chuyển đổi tín hiệu điều khiển từ Arduino sang dòng điện lớn để điều khiển động bước Mạch điều khiển động bước nhận tín hiệu điều khiển từ Arduino thơng qua chân digital output board Để điều khiển tốc độ động bước, mạch sử dụng biến trở (potentiometer) để điều chỉnh giá trị độ rộng Nhóm 3: Nguyễn Văn Hồi + Quản Văn Hịa GVHS: T.s Hồng Anh 10 | P a g e xung Giá trị độ rộng xung điều chỉnh cách xoay biến trở, đọc board Arduino thông qua chân analog input Sau giá trị độ rộng xung đọc, Arduino tính tốn tốc độ động bước dựa giá trị độ rộng xung hiển thị kết lên hình LCD 1602 2.2 Thiết kế mạch điều khiển động bước với Arduino có sử dụng chiết áp Mơ mạch phần mềm Proteus Hình 2.1: Mơ Phỏng Mạch Trên Proteus Mơ Fritzing Nhóm 3: Nguyễn Văn Hồi + Quản Văn Hịa GVHS: T.s Hồng Anh 11 | P a g e Hình 2: Mơ Phỏng Trên Pritzing Mơ Circuit Hình 2.3: Mơ Phỏng Trên Circuit Nhóm 3: Nguyễn Văn Hồi + Quản Văn Hịa GVHS: T.s Hồng Anh 12 | P a g e Mạch thật: Hình 2.4: Mạch Thật 2.3 Lập trình điều khiển động bước hiển thị thơng tin lên hình LCD, Các nút bấm điều khiển vị trí động cơ: #include #include #include LiquidCrystal_I2C lcd(0x27,16,2); const int stepsPerRevolution = 2048; Stepper myStepper = Stepper(stepsPerRevolution, 10, 8, 9, 11); // Cài đặt động bước cấu hình chân cắm int potentiometer = A0; // Khởi tạo chân tín hiệu chiết áp int Val_Analog, MotorSpeed; int FPB = 2; // forward push button int Stop = 3; //Stop push button int RPB = 4; // Reverse push button int Step = 0; Nhóm 3: Nguyễn Văn Hồi + Quản Văn Hịa GVHS: T.s Hồng Anh 13 | P a g e int Status = 3; int Speed; void setup() { pinMode(FPB, INPUT); pinMode(Stop, INPUT); pinMode(RPB, INPUT); lcd.begin(2, 16); lcd.backlight(); } void loop() { Val_Analog = analogRead(A0); MotorSpeed = map(Val_Analog, 0, 1023, 0, 19); Speed = map(Val_Analog, 0, 1023, 0, 100); lcd.setCursor(0,0); lcd.print("Speed:"); lcd.print(Speed); lcd.print("%"); if(digitalRead(FPB) == HIGH) Status =1; else if(digitalRead(RPB) == HIGH ) Status = 2; else if(digitalRead(Stop) == HIGH) Status =3; if(Status ==1) { myStepper.setSpeed(MotorSpeed); myStepper.step(1); Nhóm 3: Nguyễn Văn Hồi + Quản Văn Hịa GVHS: T.s Hồng Anh 14 | P a g e lcd.setCursor(0,1); lcd.print(" Clockwise "); } else if(Status ==2) { myStepper.setSpeed(MotorSpeed); myStepper.step(-1); lcd.setCursor(0,1); lcd.print(" AntiClockwise"); } else { myStepper.step(0); lcd.setCursor(0,1); lcd.print(" Stop "); }} III Kết thực nghiệm 3.1 Mô tả kết thực nghiệm Động quay theo hướng lập trình, với tốc độ số vòng quay tương ứng sử dụng chiết áp để điều chỉnh Động bước điều khiển Arduino chạy ổn định xác tốc độ khác chế độ quay khác Khi động quay theo chiều kim đồng hồ, tốc độ quay đạt 256 vòng/phút Khi động quay ngược chiều kim đồng hồ, tốc độ quay đạt 250 vịng/phút Kết cho thấy chương trình điều khiển động bước với Arduino hoạt động xác ổn định 3.2 So sánh kết thực nghiệm với kết dự đốn: Nhóm 3: Nguyễn Văn Hồi + Quản Văn Hịa GVHS: T.s Hồng Anh 15 | P a g e Kết thực nghiệm hồn tồn giống kết dự đốn.Chương trình chạy theo kết dự đoán 3.3 Nhận xét kết thực nghiệm Kết thực nghiệm cho thấy hệ thống điều khiển động bước với Arduino đáp ứng yêu cầu giữ tốc độ động khoảng thời gian dài Tuy nhiên, tăng tốc độ động lên mức cao hơn, hệ thống bắt đầu bị rung giữ tốc độ mong muốn.Chương trình hoạt động tốt mức độ trung bình thấp IV Kết Luận - Hiểu nguyên lý hoạt động mạch - Mơ mạch - Hồn thiện mạch thực Lời Kết: Trong trình thiết kế chúng em có tham khảo đến tài liệu mơn học đề tài mà chúng em trình bày Trong q trình hồn thiện đồ án báo cáo, chúng em làm cịn nhiều thiếu sót trình độ chuyên môn chưa cao Tuy chúng em góp ý làm mình, mong nhận góp ý kiến chân thành từ để đề tài hồn thiện Qua chúng em có thêm phần hiểu biết q trình học tập Cảm ơn Thầy hướng dẫn tận tình chúng em để chúng em hồn thiện Đồ Án Chúng em xin chân thành cảm ơn Nhóm 3: Nguyễn Văn Hồi + Quản Văn Hịa GVHS: T.s Hồng Anh

Ngày đăng: 17/04/2023, 19:40

Tài liệu cùng người dùng

Tài liệu liên quan