TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
THIẾT KẾ ĐIỀU KHIỂN ĐỘNG CƠ ENCODER
Giảng viên hướng dẫn:TS Dương Văn Lạc
Sinh viên thực hiện: Quách Hải Dương – 20205295 Trần Nam Khánh – 20205493 Vũ Minh Hóa – 20205314Lớp: Vi xử lý 149639
Hà Nội, 7-2024
Trang 2Báo cáo BTL Vi xử lý | Điều khiển động cơ encodercơ encoder
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
THIẾT KẾ ĐIỀU KHIỂN ĐỘNG CƠ ENCODER
Giảng viên hướng dẫn:TS Dương Văn Lạc
Sinh viên thực hiện: Quách Hải Dương – 20205295 Trần Nam Khánh – 20205493 Vũ Minh Hóa – 20205314 Lớp: Vi xử lý 149639
Hà Nội, 7-2024
2
Trang 3Nhận xét của giáo viên
Trang 42.Phân tích yêu cầu thiết kế 7
Chương II.Lập kế hoạch 9
1.Bảng phân tích nhân lực 9
2.Bảng phân công công việc 10
3.Bảng kế hoạch thực hiện 11
Chương III.Thiết kế hệ thống 12
1.Thiết kế sơ đồ khối 12
2.Thiết kế sơ đồ khối chi tiết 12
2.1Khối nguồn 12
2.2Khối điều chỉnh tốc độ động cơ 13
2.3Khối hiển thị 14
2.4Khối động cơ 15
2.5Khối điều khiển 15
2.6Linh kiện đi kèm 17
3Sơ đồ nguyên lý 18
Chương IV.Hoàn thành sản phẩm 19
1.Layout mạch in 19
2.Làm mạch, hàn linh kiện 20
3.Đo đạc, kiểm tra, đánh giá chất lượng sản phẩm 22
Chương VI.Kết luận 23
1.Đánh giá những điều đã làm được và chưa làm được 23
Trang 5Lời mở đầu
Với sự phát triển không ngừng của khoa học kỹ thuật, đặc biệt là ngành điệntử đã được ứng dụng rất nhiều trong công nghiệp Trong lĩnh vực điều khiển, từ khicông nghệ chế tạo loại vi mạch lập trình phát triển đã đem đến các kỹ thuật điềukhiển hiện đại có nhiều ưu điểm hơn so với việc sử dụng các mạch điều khiển lắpráp bằng các linh kiện rời như kích thước nhỏ, giá thành rẻ, độ làm việc tin cậy,công suất tiêu thụ nhỏ.
Ngày nay, trong lĩnh vực điều khiển đã được ứng dụng rộng rãi trong cácthiết bị, sản phẩm phục vụ cho nhu cầu sinh hoạt hàng ngày của con người như máygiặt, đồng hồ báo giờ… đã giúp cho đời sống của chúng ta ngày càng hiện đại vàtiện nghi hơn.
Chúng em đã chọn đề tài “ Điều khiển động cơ encoder ” để hoàn thành bàitập lớn môn Vi xử lý, cũng như để đáp ứng mong muốn tìm hiểu và làm một sảnphẩm điện tử cụ thể từ một dòng Vi điều khiển của bản thân.
Đề tài “Điều khiển động cơ encoder” là một đề tài quen thuộc, có thể thựchiện trên rất nhiều dòng VĐK Nhưng đối với chúng em, khi mới tìm hiểu một dòngVĐK mới, và đặc biệt phải thiết kế mạch trên dòng VĐK AVR theo yêu cầu, đócũng là một thách thức và trải nghiệm rất thú vị Do kiến thức còn hạn chế nên đềtài chắc chắn còn nhiều thiếu sót Chúng em rất mong nhận được những ý kiến đónggóp để chúng em hoàn thiện đề tài từ phía thầy cô cũng như các bạn sinh viên.
Chúng em xin chân thành cảm ơn thầy Dương Văn Lạc và các nhóm trợgiảng đã giúp đỡ chúng em rất nhiều trong tất cả quá trình, từ lúc mới bắt đầu đếnlúc hoàn thiện sản phẩm!
Trang 6Chương I.Mô tả đề tài
1 Đặt vấn đề
Bài này là một bài tổng hợp nhiều vấn đề ứng dụng AVR bao gồm nhận dữliệu từ người dùng, điều khiển motor, đọc encoder, hiển thị LCD, cả giải thuậtđiều khiển PID và mạch công suất cho Motor…Do đó, ít nhất bạn phải nắmđược các vấn đề cơ bản như Timer-Counter, TexLCD, mạch cầu H Có 2phương pháp điều khiển động cơ DC là analog và digital Mục đích chính củachúng ta là dùng AVR điều khiển động cơ DC nên phương pháp số mà cụ thểlà phương pháp điều rộng xung (PWM) sẽ được giới thiệu Ngoài ra, khi nóiđến điều khiển động cơ DC có 2 đại lương điều khiển chính là vị trí (số vòngquay) và vận tốc Trong phần ví dụ lập trình cho AVR chúng ta sẽ thực hiệnđiều khiển vận tốc cho DC Motor Bằng cách này, bạn có thể tự tin để mởrộng ví dụ để điều khiển cho cả 2 đại lượng Vì là điều khiển một cách tựđộng nên chúng ta cần đọc về đại lượng điều khiển (cụ thể là vị trí hoặc vậntốc motor) và hồi tiếp (feedback) về để “hiệu chỉnh” PWM cấp cho động cơ.Chúng ta sẽ dùng incremental optical encoder để đọc số vòng quay và hồi tiếpvề cho AVR Bộ điều khiển PID sẽ được dùng và vận hành bởi AVR
Từ việc phân tích và khảo sát trên đây, nhóm đã đưa ra các vấn đề chính cần giảiquyết của bài toán đặt ra là:
- Tìm hiều kiến thức cơ bàn về VĐK Atmega8, đặc biệt về phần giao tiếp vớiL298n và LCD Tìm hiểu về phần mềm CodeVisionAVR C Compiler đểthực hiện code cho VĐK Atmega8.
- Xây dựng sơ đồ khối, từ đó xây dựng mạch nguyên lý và mô phỏng trênphần mềm Proteus.
- Thiết kế mạch in trên phần mềm Proteus
- Thực hiện lắp ráp linh kiện trên mạch in Để nạp code cho VĐK nhóm sửdụng phần mềm Progisp và mạch nạp USB ISP.
- Viết báo cáo tổng hợp về quy trình thực hiện đề tài.
Trang 72.Phân tích yêu cầu thiết kế
2.1 Yêu cầu chức năng
Để điều khiển số vòng quay hay vận tốc động cơ thì chúng ta nhất thiết phải đọcđược góc quay của motor Một số phương pháp có thể được dùng để xác định gócquay của motor bao gồm tachometer (thật ra tachometer đo vận tốc quay), dùngbiến trở xoay, hoặc dùng encoder Trong đó 2 phương pháp đầu tiên là phươngpháp analog và dùng optiacal encoder (encoder quang) thuộc nhóm phương phápdigital Hệ thống optical encoder bao gồm một nguồn phát quang (thường là hồngngoại – infrared), một cảm biến quang và một đĩa có chia rãnh Optical encoder lạiđược chia thành 2 loại: encoder tuyệt đối (absolute optical encoder) và encodertương đối (incremental optical encoder) Trong đa số các DC Motor, incrementaloptical encoder được dùng và mô hình động cơ servo trong bài này cũng khôngngoại lệ Từ bây giờ khi tôi nói encoder tức là incremental encoder Hình 2 là môhình của encoder loại này
Hình 2 Optical Encoder (trích từ [1]).
Encoder thường có 3 kênh (3 ngõ ra) bao gồm kênh A, kênh B và kênh I(Index) Trong hình 2 bạn thấy hãy chú ý một lỗ nhỏ bên phía trong của đĩa quay vàmột cặp phat-thu dành riêng cho lỗ nhỏ này Đó là kênh I của encoder Cữ mỗi lầnmotor quay được một vòng, lỗ nhỏ xuất hiện tại vị trí của cặp phát-thu, hồng ngoạitừ nguồn phát sẽ xuyên qua lỗ nhỏ đến cảm biến quang, một tín hiệu xuất hiện trêncảm biến Như thế kênh I xuất hiện một “xung” mỗi vòng quay của motor Bênngoài đĩa quay được chia thành các rãnh nhỏ và một cặp thu-phát khác dành chocác rãnh này Đây là kênh A của encoder, hoạt động của kênh A cũng tương tựkênh I, điểm khác nhau là trong 1 vòng quay của motor, có N “xung” xuất hiện trênkênh A N là số rãnh trên đĩa và được gọi là độ phân giải (resolution) của encoder.Mỗi loại encoder có độ phân giải khác nhau, có khi trên mỗi đĩa chĩ có vài rãnhnhưng cũng có trường hợp đến hàng nghìn rãnh được chia Để điều khiển động cơ,bạn phải biết độ phân giải của encoder đang dùng Độ phân giải ảnh hưởng đến độchính xác điều khiển và cả phương pháp điều khiển Không được vẽ trong hình 2,
Trang 8tuy nhiên trên các encoder còn có một cặp thu phát khác được đặt trên cùng đườngtròn với kênh A nhưng lệch một chút (lệch M+0,5 rãnh), đây là kênh B củaencoder Tín hiệu xung từ kênh B có cùng tần số với kênh A nhưng lệch pha 90o.Bằng cách phối hợp kênh A và B người đọc sẽ biết chiều quay của động cơ Hãyquan sát hình 3.
Hình 3 Hai kênh A và B lệch pha trong encoder (trích từ [1])
Hình trên cùng trong hình 3 thể hiện sự bộ trí của 2 cảm biến kênh A và B lệchpha nhau Khi cảm biến A bắt đầu bị che thì cảm biến B hoàn toàn nhận được hồngngoại xuyên qua, và ngược lại Hình thấp là dạng xung ngõ ra trên 2 kênh Xéttrường hợp motor quay cùng chiều kim đồng hồ, tín hiệu “đi” từ trái sang phải Bạnhãy quan sát lúc tín hiệu A chuyển từ mức cao xuống thấp (cạnh xuống) thì kênh Bđang ở mức thấp Ngược lại, nếu động cơ quay ngược chiều kim đồng hồ, tín hiệu“đi” từ phải qua trái Lúc này, tại cạnh xuống của kênh A thì kênh B đang ở mứccao Như vậy, bằng cách phối hợp 2 kênh A và B chúng ta không những xác địnhđược góc quay (thông qua số xung) mà còn biết được chiều quay của động cơ(thông qua mức của kênh B ở cạnh xuống của kênh A).
Trang 9Chương II.Lập kế hoạch
Quá trình lập kế hoạch giúp chúng em có cái nhìn tổng quan về mục tiêu, nhiệm vụcần thực hiện cũng như phân bố thời gian hợp lí cho toàn bộ quá trình thiết kế sảnphẩm Đây là bước giúp chúng em hiểu hơn về từng thành viên trong nhóm, từngcông việc cụ thể cần phải thực hiện.
1.Bảng phân tích nhân lực
Bảng 1 Bảng phân tích nhân lực
Quách Hải Dương
- Kỹ năng sử dụng atmega8 và encoder thành thạo
- Khả năng làm mạch tốt
- Chưa thành thạo cácphần mềm mô phỏng
Trần Nam Khánh
- Thành thạo kỹ năng vẽ mạch và mô phỏng trên phần mềm proteus
- Kỹ năng thuyết trình tốt
- Hạn chế về code kỹnăng xử lý thuật toán
cho vi điều khiển
Trang 102.Bảng phân công công việc
Bảng 2 Bảng phân công công việc
Tìm hiểuđề tài
Xác định đề tài, yêu cầu thiết kế của Mạch
Tìm hiểu kiến thức về Vi điều khiển AVR,
Lập kế hoạch chi tiết, phân công công việc
cho quá trình thiết kế sản phẩm Nam Khánh
Thiết kế hệ thống
Thiết kế chi tiết từng khối Nam Khánh + HảiDươngVẽ mạch nguyên lý và mô phỏng trên
Lập trình cho Vi điều khiển Atmega8 Hải Dương
Hoàn thànhsản phẩm
Thiết kế mạch in, đặt mạch in Minh HóaMua linh kiện, test nguội mạch in Minh Hóa
Đo đạc, kiểm tra, đánh giá sản phẩm Nam Khánh + HảiDươngBáo cáo bài
tập lớn
Hoàn thành nội dung báo cáo Word, video
giới thiệu sản phẩm Minh Hóa + Nam Khánh Thuyết trình, báo cáo trước giảng viên Nam Khánh + Hải
Dương
Trang 113.Bảng kế hoạch thực hiện
Bảng 3 Bảng kế hoạch thực hiện
Công việcThời gianbắt đầu
Thời gian
kết thúcYêu cầu đạt đượcTrạng thái
Xác định đề tàiđiều khiển động cơencoder
19/02 26/02
Xác định được yêucầu thiết kế về chứcnăng và phi chứcnăng của mạch
Hoàn thành
Tìm hiểu về Viđiều khiển AVR,code cho AVR
01/03 08/03
Hiểu và trình bàyđược những kiến thứcvề Vi điều khiểnAVR
Hoàn thành
Thiết kế mạch
Hoàn thành sơ đồkhối chi tiết, mạchnguyên lý
Hoàn thành
Viết Code, môphỏng mạch trênProteus
30/03 14/03
Mô phỏng và chạyđúng với yêu cầuthiết kế trên phầnmềm mô phỏngProteus
Hoàn thành
Thiết kế mạch in 29/03 12/04
Hoàn thành thiết kếmạch in trên phầnmềm Altium
Hoàn thành
Hoàn thành, kiểmtra, đánh giá sảnphẩm
26/04 24/05
Sản phầm hoànthành, chạy đúng yêucầu thiết kế đề ra
Hoàn thành
Kiểm tra, hoàn
thiện báo cáo 24/05 14/06
Bản báo cáo Bài tậplớn, video giới thiệusản phẩm.
Hoàn thành
Trang 12Khối báo thức
Khối điều khiểnchính
Khối hiển thị Khối động cơ
Khối nguồnKhối điều chỉnh tốc
độ động cơ
Chương III Thiết kế hệ thống
1 Thiết kế sơ đồ khối
Hình 1 Sơ đồ khối tổng quan mạch điều khiển động cơ
2 Thiết kế sơ đồ khối chi tiết
2.1 Khối nguồn
Trang 13Hình 2 Adapter 5V – 2A
Mạch sử dụng nguồn lấy từ adapter 5V-2A như trong hình 2 để cung cấp đủ dòng cho toàn bộ các khối.
2.2 Khối điều chỉnh tốc độ động cơ
Hình 2.1: Module điều khiển động cơ L298n
L298N là module điều khiển động cơ trong các xe DC và động cơ bước Module cómột IC điều khiển động cơ L298 và một bộ điều chỉnh điện áp 5V 78M05 Module L298N có thể điều khiển tối đa 4 động cơ DC hoặc 2 động cơ DC với khả năng điều khiển hướng và tốc độ.
Trang 14Hình 2.2: Công tắc đóng mở
2.3 Khối hiển thị
Khối hiển thị sử dụng LCD 16*2 LCD có 16 chân Ta cấp nguồn cho LCD thôngqua các chân 1 (VSS) và 2 (VDD) Điều chỉnh đố sáng của LCD thông qua các chân3 (Contrast Voltage), 15 (Backlight Anode) và 16 (Backlight Cathode) Các chân 7đến 14 là các chân dữ liệu được nối với VĐK, với đề tài ta chỉ sử dụng các chân dữliệu từ 11 đến 14.
Hình 2.4: Màn hình hiển thị LCD
Trang 152.4 Khối động cơ
Encoder hay còn gọi là Bộ mã hóa quay hoặc bộ mã hóa trục, là một thiết bị cơđiện chuyển đổi vị trí góc hoặc chuyển động của trục hoặc trục thành tín hiệu đầura analog hoặc kỹ thuật số Encoder được dùng để phát hiện vị trí, hướng dichuyển, tốc độ… của động cơ bằng cách đếm số vòng quay được của trục.
Hình 2.5: Động cơ encoder
2.5 Khối điều khiển
Hình 2.6: VĐK Atmega8
Trang 16ATmega8 là vi điều khiển AVR 28 chân Mặc dù có nhiều bộ vi điều khiển tươngtự, nhưng ATMEGA8 phổ biến vì nó là một trong những bộ vi điều khiển rẻ nhấtvà có nhiều tính năng với số chân ít hơn.
Atmega8 là một lọai Vi điều khiển có nhìều tính năng đặc biệt thíchhợp cho việcgiải quyết những bài tóan điều khiển trên nền vi xử lý.
Atmega8 là vi điều khiển 8bit dựa trên kiến trúc RISC Với khảnăng thực hiện mỗilệnh trong vong một chu kỳ xung clock, Atmega16có thể đạt được tốc độ 1MIPStrên mỗi MHz( 1triệu lệnh/s/MHz),các lệnh được xử lý nhanh hơn,tiêu thụ nănglượng thấp.
Hình 2.7: Cấu hình chân của atmega8
Trang 172.6 Linh kiện đi kèm
Là bộ phận chính trong các mạch khuyếch đại tần số trong các hệ thống liên
hiện đại thế nào cũng phải dùng các bộ tạo dao động tinh thể để điều khiển các bus, xung động xử lý (Hệ thống mạch Arduino).
Hình 2.8 Thạch anh
Tụ gốm 22PF là tụ không phân cực có giá trị nhỏ thường được dùng trong
Hình 2.9 Tụ 22pf
Trang 183 Sơ đồ nguyên lí
Hình 3.1 Sơ đồ nguyên lí
Trang 19Báo cáo BTL Vi xử lý | Điều khiển động cơ encoder
Chương IV Hoàn thành sản phẩm
Quá trình Hoàn thành sản phẩm là bước cuối cùng trong toàn bộ quy trình thiết kế một sản phẩm điện tử.
1.Layout mạch in
Hình 4.1 Mạch in PCB 2D
Hình 4.2 Mạch in PCB 3D
Trang 202.Làm mạch, hàn linh kiện
Sau khi có mạch in và các linh kiện đầy đủ, ta sẽ tiến hành lắp ráp thànhmạch hoàn chỉnh Sử dụng mạch nạp và phần mềm nạp để kết nối giữa máy tính vàmạch đã lắp ráp Tùy từng mạch nạp mà có phần mềm nạp riêng Sau khi nạp xongchúng ra có thể test mạch thử và cung cấp nguồn cho mạch hoạt động.
Hình 18 Kiểm tra mạch trên board
Hình 19 Mạch in đã hàn linh kiện
Trang 21Hình 20 Hình ảnh mạch thực tế đang hoạt động
Trang 223.Đo đạc, kiểm tra, đánh giá chất lượng sản phẩm
Việc đo nguội là quá trình đo đạc, kiểm tra trước khi cấp nguồn cho mạch.Việc này nhằm kiểm tra kết nối giữa cách đường đi dây, các kết nối trên mạch in,các mối hàn.
Sau khi đo nguội mà không có lỗi, ta sẽ cấp nguồn cho mạch hoạt động (Chúý : cấp nguồn sau cùng khi lắp ráp mạch và ngắt nguồn đầu tiên khi tắt mạch).
Kiểm tra các chức năng hoạt động của encoder, LCD hiển thị, chức năng cácphím nhấn, có hoạt động tốt không.
Khi mạch đã hoạt động ổn định, ta cần đo sai số của mạch Nếu mạch có saisố lớn hơn mức cho phép, cần điều chỉnh lại code Chúng em đã kiểm tra và đođược sai số trong tốc độ là 0.1m/s và 2 độ khi quay góc 180 độ
Trong quá trình hoạt động, cần đánh giá nhiệt độ của mạch để có biện phápđiều chỉnh giúp mạch tản nhiệt tốt, bảo vệ linh kiện và hoạt động ổn định hơn.
Trang 23Chương VI Kết luận
1.Đánh giá những điều đã làm được và chưa làm được
1.1Những điều đã làm được
Nhìn chung, sản phẩm hoàn thành đã đạt được yêu cầu thiết kế đã đề ra:
- Động cơ encoder hoạt động tốt, điều chỉnh được góc quay và tốc độ theo ýmuốn
- Sản phẩm đơn giản, gọn nhẹ, dễ dàng sử dụng
- Ngoài việc áp dụng những kiến thức đã được học trong môn vi xử lí,chúng em còn được làm quen và thực hành với Vi điều khiển AVR Atmega8 Đâylà những kiến thức nền tảng, phục vụ cho ngành học điện tử sau này.
Chúng em được làm quen và sử dụng các phần mềm mô phỏng Proteus, phầnmềm lập trình CodeVisionAVR C Compilier cho vi điều khiển AVR, phần mềmthiết kế mạch in Altium và thực hiện ráp mạch thực tế Đây là những kỹ năng rấtquan trọng trong quá trình học tập, đặc biệt đối với sinh viên ngành điện tử.
Trong quá trình hoàn thành thiết kế sản phầm điều khiển động cơ encoder ,chúng em đã học hỏi được thêm rất nhiều kiến thức và kinh nghiệm về điện tử.Chúng em được thực hành, vân dụng các kiến thức đã học để thiết kế nên một sảnphẩm theo đúng quy trình thiết kế sản phẩm điện tử chuyên nghiệp.