Tải bản đầy đủ (.docx) (33 trang)

Điều khiển tốc độ Encoder dùng Arduino

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.67 MB, 33 trang )

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 2
ĐỀ 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 quá trình thực hiện đồ án em đã gặp không ít khó khăn và thiếu sót,
nhưng nhờ sự hướng dẫn và chỉ dạy tận tình của thầy Võ Song Vệ - là người đã gợi mở
cho em về đề tài “Điều khiển tốc độ động cơ encoder” này, đã giúp đỡ em khắc phục được
những thiếu sót để có thể hoàn thành đề tài đúng 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 cũng xin chân thành cảm ơn các quý thầy cô trong khoa Điện – Điện tử đã tận
tình giảng dạy, trang bị cho em những kiến thức quý báu trong suốt quá trình học tập từ
đó giúp em có thể thực hiện hoàn chỉnh được đề tài này.
Do kiến thức của em còn hạn chế nên còn nhiều thiếu sót trong đồ án này rất mong


nhận được sự thông cảm và góp ý của quý thầy cô để đồ án của em được hoàn chỉnh hơn.
Em xin chân thành cảm ơn!

Tp. Hồ Chí Minh, ngày …. tháng …. năm 2019

Tác giả đồ án

2


TÓM TẮT BÁO CÁO
1.

Đặt vấn đề
Đ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ài
Khả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

3.


Nội dung từng chương của đề tài
Chương 1: Mở đầu.
Chương này giới thiệu sơ khai về đề tài, tìm hiểu khái quát về Encoder cũng như
mục đích chọn đề tài.
Chương 2: Tìm hiểu về arduino để điều khiển Encoder.
Nội dung của chương này là trình bày về các phương pháp thường dùng để điều
khiển trong Encoder. Đi sâu vào tìm hiểu arduino và ứng dụng vào trong cuộc sống,
đặc biệt là ứng dụng của nó vào trong Encoder.
Chương 3: Tìm hiểu về các thành phần điều khiển Encoder
Chương này chủ yếu trình bày sơ lược về cấu trúc hoạt động của Arduino Uno
R3, chi tiết mạch điều khiển động cơ.
Chương 4: Chương trình nạp vào Encoder
Chương này trình bày về chương trình nạp vào Encoder để vận hành.
3


Chương 5: Kết luận và hướng phát triển.
Chương này trình bày những kết quả đạt được trong báo cáo và xu hướng phát
triển

4


DANH MỤC HÌNH ẢNH
CHƯƠNG 1:
Hình 1.1: Encoder tuyệt đối................................................................................................1

Hình 2.1: Board Arduino.....................................................................................................3
Hình 2.2: Sơ đồ nguyên lý mạch Arduino...........................................................................5
CHƯƠNG 3:

Hình 3.1: Sơ đồ kết nối các khối của 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 của 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 bằng PLC ………………………………….26

5


CHƯƠNG 1: MỞ ĐẦU
1.1 Giới thiệu đề tài
Ngày nay, khi ngành công nghiệp 4.0 ngày càng phát triển và là xu hướng hiện
thời trong việc tự động hóa. Encoder giữ một vai trò vô cùng quan trọng. Nó được
trang bị trong cấu tạo của máy CNC như một thiết bị nhằm đo lường và tìm được vị
trí chính xác của các trục máy cũng như vị trí dao cắt. Đó cũng chính là lý do mà
việc gia công bằng máy CNC sẽ đạt được sự chính xác cao nhất.
Hệ thống kiểm tra của máy tính sẽ nhận được các thông số mà encoder ghi nhận,
từ đó có thể điều chỉnh lại vị trí từng chi tiết nhỏ hay vị trí cắt dao cắt nhằm sửa
chữa lỗi và 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 về Encoder

6


Encoder là thiết bị điện cơ dùng biến đổi vị trí góc của trục quay từ analog sang
digital. 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 .

1.3

Mục đích chọn đề tài
Encoder vừa có nhiều ứng dụng trong thực tế vừa dễ dàng để sinh viên vận dụng

những kiến thức tiếp thu được trên giảng đường vào nó. Chúng thường có những kết
cấu cơ khí, mạch điện và chương trình khá đơn giản, giá thành rẽ nên những encoder
này rất phù hợp để sinh viên học tập và nghiên cứu về nó một cách cụ thể.

7


CHƯƠNG 2: TÌM HIỂU ARDUINO

2.1


Tìm hiểu về arduino
Arduino là một nền tảng mã nguồn mở được sử dụng để xây dựng các ứng dụng

điện tử tương tác với nhau hoặc với môi trường được thuận lợi hơn. Arduino giống
như một máy tính nhỏ để người dùng có thể lập trình và thực hiện các dự án điện tử
mà không cần phải có các công cụ chuyên biệt để phục vụ việc nạp code

Hình 2.1: Board Arduino

8


Arduino tương tác với thế giới thông qua các cảm biến điện tử, đèn, và động cơ.
Arduino gồm:


Phần cứng gồm một board mạch mã nguồn mở (thường gọi là vi điều khiển):
có thể lập trình được.



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 và nạp chương cho board.

2.2


Ứng dụng của Arduino trong đời sống
Làm Robot. Arduino có khả năng đọc các thiết bị cảm biến, điều khiển động cơ,

… nên nó thường được dùng để làm bộ xử lý trung tâm của rất nhiều loại robot.



Game tương tác: Arduino có thể được sử dụng để tương tác với Joystick, màn
hình,… khi chơi các game như 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 trên các
biển quảng cáo…



Điều khiển các thiết bị cảm biến ánh sáng, âm thanh.



Làm máy in 3D



Làm đàn bằng ánh sáng




Làm lò nướng bánh biết tweet để báo cho bạn khi bánh chín.

Arduino còn rất nhiều ứng dụng hữu ích khác tùy vào sự sáng tạo của người
dùng. Bây giờ, nếu ta muốn bật tắt một bóng đèn một cách tự động, đảo hướng một
mô tơ một cách dễ dàng, đọc tín hiệu của các cảm biến thì ta cần một mạch Arduino.

9


Hãy nghĩ một cách đơn giản, bạn muốn điều khiển, quản lý, ... thứ gì liên quan đến
điện tử ,điều khiển tự động thì Arduino sẽ giúp ta rất nhiều!
Arduino hiện nay đã được biết đến một cách rộng rãi tại Việt Nam, và trên thế
giới thì nó đã quá phổ biến! Sức mạnh của chúng ngày càng được chứng tỏ theo thời
gian với vô vàn các ứng dụng mở (open source) độc đáo được chia sẻ rộng rãi.
Với Arduino ta có thể ứng dụng vào những mạch đơn giản như mạch cảm biến
ánh sáng bật tắt đèn, mạch điều khiển động cơ,... hoặc cao hơn nữa ta có thể làm
những 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 và phần mềm của Arduino đều là nguồn mở - các sơ đồ đều được

public trực tuyến nên bạn hoàn toàn có thể mua linh kiện về và tự làm lấy.

Hình 2.2: Sơ đồ nguyên lý mạch Arduino
10


2.4


Khả năng kết nối




Arduino có thể hoạt động độc lập.
Arduino có thể kết nối với một máy tính. Máy tính của bạn được phép truy cập





dữ liệu cảm biến từ thế giới bên ngoài và cung cấp thông tin phản hồi.
Các Arduino có thể kết nối với nhau.
Arduino có thể kết nối với thiết bị điện tử khác.
Arduino có thể kết nối với các chip điều khiển.

Hình 2.2: Sơ đồ nguyên lý mạch Arduino

Hình 2.3: Arduino Uno R3

11


CHƯƠNG 3: TÌM HIỂU VỀ CÁC THÀNH PHẦN MODULE ĐIỀU
KHIỂN ENCODER
Để điều khiển được động cơ Encoder ta cần các khối mạch chính sau:
-

Khối Mạch cầu H L298


-

Khối Arduino Mega 2560

-

Khối Điều khiển động cơ

-

Khối Encoder
Ta có thể khái quát sơ đồ kết nối theo sơ đồ sau:

Khối Mạch cầu H

Khối Nguồn

Khối Mega 328P

Khối Điều khiển
động cơ
Hình 3.1: Sơ đồ kết nối các khối của Encoder
Encoder

3.1

Khối Mạch cầu H L298

12



L298N là trình điều khiển động cơ H-Bridge kép cho phép điều khiển tốc độ và
hướng của hai động cơ DC cùng một lúc. Mô-đun có thể điều khiển động cơ DC có
điện áp trong khoảng từ 5 đến 35V, với dòng điện cực đại lên đến 2A .

Hình 3.2: L298n
3.1.1 Tính năng và đặc điểm của L298

Mạch cầu H là một mạch gồm 4 "công tắc" được mắc theo hình chữ H.

13


Bằng cách điều khiển 4 "công tắc" này đóng mở, ta có thể điều khiển được
dòng điện qua động cơ cũng như các thiết bị điện tương tự. 4 "công tắc" này thường
là Transistor BJT, MOSFET hay relay. Tùy vào yêu cầu điều khiển khác nhau mà
người ta lựa chọn các loại "công tắc" khác nhau.

3.1.2 Mạch cầu H dùng transitor BJT

Mạch cầu H dùng transistor BJT là loại mạch được sử dụng khá thông dụng cho
việc điều khiển các loại động cơ công suất thấp. Lí do đơn giản là vì transistor BJT
thường có công suất thấp hơn các loại MOSFET (relay thì không phải bàn rồi), đồng
đời cũng rẻ và dễ tìm mua, sử dụng đơn giản.Chế độ hoạt động: 0.2mA.

14


Trong sơ đồ này, A và B là 2 cực điều khiển. 4 diode có nhiệm vụ triệt tiêu dòng

điện cảm ứng sinh ra trong quá trình động cơ làm việc. Nếu không có diode bảo vệ,
dòng điện cảm ứng trong mạch có thể làm hỏng các transistor.
Transistor BJT được sử dụng nên là loại có công suất lớn và hệ số khuếch đại
lớn.
3.1.3 Nguyên lí hoạt động của mạch cầu H

Theo như sơ đồ trên, ta có A và B là 2 cực điều khiển được mắc nối tiếp với 2
điện trở hạn dòng. Tùy vào loại transistor bạn đang dùng mà trị số điện trở này khác
nhau. Phải đảm bảo rằng dòng điện qua cực Base của các transistor không quá lớn
để làm hỏng chúng, trung bình thì dùng điện trở 1k Ohm.
Ta điều khiển 2 cực này bằng các mức tín hiệu HIGH, LOW tương ứng là 12V
và 0V. Với 2 cực điều khiển và 2 mức tín hiệu HIGH/LOW tương ứng 12V/0V cho
mỗi cực, có 4 trường hợp xảy ra như sau:


A ở mức LOW và B ở mức HIGH

15


Ở phía A, transistor Q1 mở, Q3 đóng. Ở phía B, transistor Q2 đóng, Q 4 mở. Dó
đó, dòng điện trong mạch có thể chạy từ nguồn 12V đến Q1, qua động cơ đến Q4 để
về GND. Lúc này, động cơ quay theo chiều thuận. Bạn để ý các cực (+) và (-) của
động cơ là sẽ thấy. Và ta có thể hình dung dòng điện trong mạch nó như thế này:



A ở mức HIGH và B ở mức LOW
Ở phía A, transistor Q1 đóng, Q3 mở. Ở phía B, transistor Q2 mở, Q 4 đóng. Dó


đó, dòng điện trong mạch có thể chạy từ nguồn 12V đến Q2, qua động cơ đến Q3 để
về GND. Lúc này, động cơ quay theo chiều ngược. Ta có thể hình dung dòng điện
nó như thế này :

16




A và B cùng ở mức LOW
Khi đó, transistor Q1 và Q2 mở nhưng Q3 và Q4 đóng. Dòng điện không có

đường về được GND do đó không có dòng điện qua động cơ - động cơ không hoạt
động.


A và B cùng ở mức HIGH
Khi đó, transistor Q1 và Q2 đóng nhưng Q3 và Q4 mở. Dòng điện không thể

chạy từ nguồn 12V ra do đó không có dòng điện qua động cơ - động cơ không hoạt
động.

3.2

Khối Arduino Uno R3
Arduino UNO R3 là kit Arduino UNO thế hệ thứ 3, với khả năng lập trình cho

các ứng dụng điều khiển phức tạp do được trang bị cấu hình mạnh cho các loại bộ
nhớ ROM, RAM và Flash, các ngõ vào ra digital I/O trong đó có nhiều ngõ có khả
năng xuất tín hiệu PWM, các ngõ đọc tín hiệu analog và các chuẩn giao tiếp đa dạng

như UART, SPI, TWI (I2C).Arduino Mega 2560 là phiên bản nâng cấp của Arduino
Mega hay còn gọi là Arduino

17


Hình 3.3: Arrduino Uno R3



Chân PWM (~):

3, 5, 6, 9, 10, và 11:nó

cho phép ta

băm xung PWM với độ

phân giải 8bit

(giá trị từ 0 → 28-1 tương

ứng với 0V → 5V) bằng hàm analogWrite().


Giao tiếp I2C: 2 chân A4 (SDA) và A5 (SCL) hỗ trợ giao tiếp I2C/TWI với các
thiết bị khác.6 chân vào analog (từ A0 đến A5).




1 thạch anh với tần số dao động 16 MHz.



1 cổng kết nối USB.

18




1 jack cắm điện.



1 đầu ICSP.



1 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ó 6 cung cấp đầu ra
PWM)

Số chân I/O kĩ thuật số
Cường độ dòng điện trên mỗi 3.3v pin

50mA

Cường độ dòng điện trên mỗi 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 tại có rất 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 có thể điều khiển
nhiều motor cùng một lúc.Tuy nhiên, shield xịn nhất cho Arduino Mega đó là
shield có hỗ trợ kết nối wifi giúp bạn có thể chế tạo ra các con robot điều
khiển từ xa.

19


Hình 3.4: Arduino Wifi Shield

3.2.1 Sơ đồ các

linh kiện của Arduino

20











Chân GND
chân 5V
1 chân 3.3v
1 nút reset
6 chân analog
14 Chân digital trong đó có 6 chân chúng ta có thể sử dụng như PWM
Chân lập trình ISP

3.2.2 Ứng dụng thực tế

Với sự tiện ích vô cùng lớn của Arduino Uno R3, mạnh mẽ với bộ nhớ flash lớn,
số chân nhiều hơn và cùng số lượng shield hỗ trợ không hề nhỏ. Arduino Uno đã
được đưa vào các dự án lớn hơn như 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 còn mở rộng cánh cửa với thế giới IoT

Hình 3.5: Mở rộng cánh của với IoT

21


3.3 Khối Encoder
3.3.1 Ứng dụng chung của Encoder

Trong một hệ thống công nghiệp, nhất là các 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 độ chính xác.
Chính vì thế, bộ mã hóa vòng quay (encoder) ra đời đáp ứng được nhu cầu này.
Nhằm mang đến bộ mã hóa vòng quay với chất lượng tốt, giá thành hợp lýTrong các
bài toán đo tốc độ động cơ, trong các máy CNC dùng để xác định khoảng dịch
chuyển của 1 đối tượng thông qua đếm số vòng quay của trục...

3.3.2 Cấu tạo chính của Encoder

Gồm 1 bộ phát ánh sáng(LED phát), một bộ thu ánh sáng nhạy với ánh sáng từ
bộ phát(bộ thu thường là photodiotde hoặc phototransistor) , 1 hay 2 đĩa quang (có
khoan lỗ) gắn trên trục quay đặt giữa bộ phát và thu, thông thường trục quay này sẻ
được gắn với trục quay của đối tượng cần đo tốc độ.
3.3.3 Nguyên lý cơ bản

Trên đĩa quang có khoét nhiều lổ cho phép ánh sáng truyền qua theo các cách
mã hoá khác nhau, số lổ này sẻ quyết định độ chính xác của thiết bị đo. Ví dụ đĩa
quang của bạn có 1 lổ tức là khi bạn quay được 1 vòng thì bộ thu sẻ thu được 1
xung, nếu đĩa quang của bạn khoét N lổ có nghĩa 1 vòng bạn thu được N xung. Như
vậy khi đo tốc độ bạn đếm số xung trong 1 đơn vị thời gian, từ đó bạn tính được số
vòng trên 1 đơn vị thời gian (hoặc có thể đo chu kì xung). Nếu đo tốc độ cao thì số
lổ khoét càng nhiều càng chính xác.
3.3.4 Các loại Encoder

Encoder được chia làm 2 loại, absolute encoder và incremental encoder. Tạm
dịch là encoder tuyệt đối và encoder tương đối. Absolute encoder, có nghĩa là
encoder tuyệt đối, tức là tín hiệu ta nhận được, chỉ rõ ràng vị trí của encoder, chúng
ta không cần xử lý gì thêm, cũng biết chính xác vị trí của encoder. Còn incremental
encoder, là loại encoder chỉ có 1, 2, hoặc tối đa là 3 vòng lỗ. Nếu là loại có 1 lỗ thì
khi encoder quay hết một vòng ta nhận được tín hiệu báo là đã quay hết một vòng.
22


Nếu encoder có nhiều lỗ hơn, chúng ta sẽ có được thông tin chi tiết hơn , có nghĩa là
đĩa quay 1/4 vong, 1/8 vòng, hoặc 1/n vòng, tùy theo số lỗ nằm trên incremental
encoder. Cứ mỗi lần đi qua một lỗ, chúng ta phải lập trình để thiết bị đo đếm lên 1.
Do vậy, encoder loại này có tên incremental encoder (encoder tăng lên 1 đơ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

và để xác định

khi nào

encoder đã quay xong 1 vòng và xác định chiều quay của động cơ người ta dùng đĩa
quang được khoan lỗ như sau:

Vị trí góc của các lỗ vòng 1 và các lỗ vòng 2 lệch nhau. Các cạnh của lỗ vòng 2
nằm ngay giữa các lỗ vòng 1 và ngược lại. Tuy nhiên, thay vì làm 2 vòng encoder,

23



và dùng 2 đèn LED đặt thẳng hàng, thì người ta chỉ cần làm 1 vòng lỗ, và đặt hai
đèn LED lệch nhau. Kết quả, sẽ thường thấy các encoder có dạng như hình:

3.4

Khối nguồn

24


Để Encoder có thể hoạt động ta sử dụng nguồn là nguồn tổ ong có điện áp trung
bình là 12V

Ngoài ra còn 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ì và diode để bảo vệ mạch

3.2

Sơ đồ mạch hoàn chỉnh
Kết hợp các khối mạch nguyên lý trên lại với nhau ta được một Mô hình điều

khiển tốc độ Encoder cơ bản hoàn chỉnh qua các hình sau:

25


×