Mô Hình Đếm Và Phân Loại Sản Phẩm Theo Chiều Cao
Mô Hình Đếm Và Phân Loại Sản Phẩm Theo Chiều Cao
ĐỒ ÁN TỐT NGHIỆP
Lớp : DH17TD
TRƯỜNG ĐẠI HỌC BÀ RỊA VŨNG TÀU CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
KHOA ĐIỆN – ĐIỆN TỬ Độc lập- Tự do- Hạnh phúc
LỜI CẢM ƠN
Đầu tiên xin gửi lời cảm ơn sâu sắc đến Cô Châu Nguyễn Ngọc Lan là
giảng viên hướng dẫn đề tài đã nhiệt tình chỉ bảo, hướng dẫn, giảng giải tận
tình về các vướng mắc trong quá trình tìm hiểu đề tài.
Cảm ơn Hiệu Trưởng, cùng các quý thầy cô trường Đại học Bà Rịa –
Vũng Tàu đã hỗ trợ tận tình về trang thiết bị, phần mềm, cơ sở vật chất tạo
điều kiện hoàn thành đồ án.
Cảm ơn thầy(cô) chủ nhiệm cùng các giảng viên bộ môn đã cung cấp,
bổ sung về mặt kiến thức; góp phần nâng cao vốn hiểu biết về ngành học tạo
tiền đề cơ bản để thực hiện đề tài thuận lợi hơn.
Xin cảm ơn các bạn cùng khóa, cùng khoa đã động viên, khích lệ, ủng
hộ về nhiều mặt góp phần làm nên thành công của đồ án này.
NHẬN XÉT
NHẬN XÉT
LỜI MỞ ĐẦU
Ngày nay hệ thống điều khiển tự động không còn quá xa lạ với chúng ta.
Nó được ra đời từ rất sớm, nhằm đáp ứng được nhu cầu thiết yếu trong cuộc
sống của con người. Và đặc biệt trong sản xuất, công nghệ tự động rất phát
triển và nó đã giải quyết được rất nhiều vấn đề mà một người bình thường khó
có thể làm được.. Vì vậy điều khiển tự động đã trở thành một ngành khoa học
kỹ thuật chuyên nghiên cứu và ứng dụng của ngành điều khiển tự động vào
lao động sản xuất, đời sống sinh hoạt của con người.
Bên cạnh đó kỹ thuật vi điều khiển đã trở nên quen thuộc trong các ngành
kỹ thuật và trong dân dụng. Các bộ vi điều khiển có khả năng xử lý nhiều
hoạt động phức tạp mà chỉ cần một chip vi mạch nhỏ, nó đã dần thay thế các
tủ điều khiển lớn và phức tạp bằng những mạch điện gọn nhẹ, dễ dàng thao
tác sử dụng.
Chính vì các lý do trên, việc tìm hiểu, khảo sát vi điều khiển là điều mà
các sinh viên ngành điện mà đặc biệt là chuyên ngành Tự động hoá phải hết
sức quan tâm. Đó chính là một nhu cầu cần thiết và cấp bách đối với mỗi
sinh viên, đề tài này được thực hiện chính là đáp ứng nhu cầu đó.
Để tìm hiểu rõ hơn về vi xử lý, nhóm chúng em đã chọn đề tài "Mô hình
phân loại sản phẩm theo chiều cao dùng vi điều khiển Atmega16L."
Do thời gian, kiến thức và kinh nghiệm của chúng em còn có hạn nên sẽ
không thể tránh khỏi những sai sót. Chúng em rất mong được sự giúp đỡ và
tham khảo ý kiến của thầy cô và các bạn nhằm đóng góp phát triển thêm đề
tài.
MỤC LỤC
Đề mục Trang
Hình 10: Cấu tạo cơ bản của một động cơ (motor) servo
Hình 13: Mô hình phân loại sản phẩm theo chiều cao dùng vi điều khiển
Atmega16L”
Hình 19: Sơ đồ khối mô hình đếm & phân loại sản phẩm
Với sự phát triển của xã hội, khoa học kĩ thuật nói chung và vi điều khiển nói
riêng ngày càng được ứng dụng ở hầu hết các lĩnh vực.
Ngày nay sự phát triển của các ngành khoa học kỹ thuật , kỹ thuật điện từ mà
trong đó là kỹ thuật số đóng vai trò quan trọng trong mọi lĩnh vực khoa học kỹ
thuật, quản lí, công nghiệp tự động hóa, cung cấp thông tin. Do đó chúng ta phải
nắm bắt và vận dụng nó một cách có hiệu quả nhằm góp phần vào sự phát triển nền
khoa học kỹ thuật thế giới nói chung và trong sự phát triển kỹ thuật điện tử nói
riêng .
Trong quá trình sản xuất thì nhiều khâu được tự động hóa . Một trong những
khâu đơn giản trong dây chuyền sản xuất tự động hóa đó là phân loại và đếm số
lượng sản phẩm làm ra một cách tự động .
Trước thực tiễn ấy, chúng em đã quyết định chọn đề tài này nhằm tìm
hiểu về vấn đề đếm và phân loại sản phẩm qua ứng dụng của Atmega16L vì nó rất
gần gũi với thực tế.
AVR có rất nhiều dòng khác nhau bao gồm dòng Tiny ( như At tiny 13, At tiny
22…) có kích thước bộ nhớ nhỏ, ít bộ phận ngoại vi, rồi đén dòng AVR ( chẳng hạn
AT90S8535, AT90S8515…) co kích thước bộ nhớ vào loại trung bình và manh hơn
là dòng Mega ( như ATmega 16, Atmega 32, ATmega 128…..) với bộ nhớ có kích
thước vài Kbyte đến vài trăm Kb cùng với bộ ngoại vi đa dạng được tích hợp cả bộ
LCD trên chip ( dòng LCD AVR).
Tốc độ của dòng Mega cũng cao hơn so với các dòng khác. Sự khác nhau cơ bản
giữa các đòng chính là cấu trúc ngoại vi, còn nhân thì vẫn như nhau.
ATmega16 là một lọai Vi điều khiển có nhìều tính năng đặc biệt thích hợp cho
việc giải quyết những bài tóan điều khiển trên nền vi xử lý.
+Các lọai vi điều khiển AVR rất phổ biến trên thị trừơng Việt Nam nên không
khó khăn trong việc thay thế và sửa chữa hệ thống lúc cần.
+Giá thành của dòng Vi Điều Khiển này khá phải chăng
+Các phần mềm lập trình và mã nguồn mở có thể tìm kiếm khá dễ dàng trên
mạng
Các thiết kế demo nhiều nên có nhiều gợi ý tốt cho người thiết kế hệ
thống.ATmega16 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ỗi lệnh trong vong một chu kỳ xung clock, Atmega16
có thể đạt được tốc độ 1MIPS trên mỗi MHz( 1triệu lệnh/s/MHz),các lệnh được xử
lý nhanh hơn,tiêu thụ năng lượng thấp
2.1.2 Sơ đồ chân
PORTA ( PA7 … PA0 ) : là các chân số 33 đến 40. Là cổng vào ra song song 8
bít khi không dùng ở chế độ ADC. Bên trong có sẵn các điện trở kéo, khi PORTA
là output thì các điện trở kéo ko hoạt động , khi PORTA là input thì các điện trở
kéo đc kích hoạt.
PORTB ( PB7 ... PB0 ) : là các chân số 1 đến 8. Nó tương tự như PORTA khi sử
dụng vào ra song song. Ngoài ra các chân của PORTB còn có các chức năng đặt
biệt sẽ đc nhắc đến sau.
PORTC ( PC7 ... PC0 ) : là các chân 22 đến 30. Cũng giống PORTA và PORTB
khi là cổng vào ra song song. Nếu giao tiếp JTAG đc bật, các trở treo ở các chân
PC5(TDI), PC3(TMS), PC2(TCK) sẽ hoạt động khi sự kiện reset sảy ra. Chức năng
giao tiếp JTAG và 1 số chức năng đặc biệt khác sẽ đc nghiên cứu sau
PORTD ( PD7 ... PD0 ) : là các chân 13 đến 21. Cũng là 1 cổng vào ra song
song giống các PORT khác, ngoài ra nó còn có 1 số tính năng đặc biệt sẽ đc nghiên
cứu sau.
2.1.3 Sơ đồ khối
Atmega16 có tập lệnh phong phú về số lượng với 32 thanh ghi làm việc
đa năng. Toàn bộ 32 thanh ghi đều được nối trực tiếp với ALU (Arithmetic
Logic Unit), cho phép truy cập 2 thanh ghi độc lập bằng một chu kì xung
nhịp.
Kiến trúc đạt được có tốc độ xử lý nhanh gấp 10 lần vi điều khiển dạng
CISC (Complex Intruction Set Computer) thông thường.
Khi sử dụng vi điều khiển Atmega16, có rất nhiều phần mềm được dùng
để lập trình bằng nhiều ngôn ngữ khác nhau đó là: Trình dịch Assembly như
AVR studio của Atmel, Trình dịch C như win AVR, CodeVisionAVR C,
ICCAVR. C - CMPPILER của GNU… Trình dịch C đã được nhiều người
dụng và đánh giá tương đối mạnh, dễ tiếp cận đối với những người bắt đầu
tìm hiểu AVR, đó là trình dịch CodeVisionAVR C. Phần mềm này hỗ trợ
nhiều ứng dụng và có nhiều hàm có sẵn nên việc lập trình tốt hơn.
+131 lệnh, hầu hết được thực thi trong 1 chu kì xung nhịp.
• Bộ nhớ:
• Ngọai vi:
+1 timer thời gian thực(Real time clock) với bộ dao động riêng biệt
+4 kênh PWM(họăc nhiều hơn trong các VĐK khác thuộc họ này)
+Bộ giao giao tiếp nối tiếp lập trình được USART
standby,extended standby
• I/O port:
• Nguồn cấp:
• Đây là những chức năng cơ bản thường thấy trong các Vi điều khiển
AVR,ngoài ra trong các vi điều khiển khác thuộc dòng vi điều khiển này thì
- Tập lệnh gồm 131 lệnh, hầu hết đều chỉ thực thi trong 1 chu kì xung nhịp.
- Giao diện nối tiếp SPI có thể lập trình ngay trên hệ thống.
- Tốc độ làm việc: 8 MHz đối với Atmega16L, 16MHz đối với
- Atmega16 tối đa .
- giây.
- Bộ định thời gian thực (RTC) với bộ dao động và chế độ đếm
- tách biệt
- Bộ so sánh Analog.
Mạch Giảm Áp LM2596 là module giảm áp có khả năng điều chỉnh được
dòng ra đến 3A. Tức là khi cấp nguồn 9v vào module, sau khi giảm áp ta có thể lấp
được nguồn 3A < 9v... như 5V hay 3.3V.
Dựa trên nguyên lý trên, Module LM2596 được áp dụng vào mô hình
nhằm tùy chỉnh tốc độ băng tải hoạt động thông qua động cơ DC
Ngày nay, chúng ta đã quen với việc sử dụng cảm biến siêu âm để phát hiện vật
cản, tuy nhiên điểm yếu của nó là dễ bị nhiễu. Để khắc phục điểm yếu trên, đồ án
đã sử dụng một phương pháp phát hiện vật cản khác. Đó chính là sử dụng hồng
ngoại, mà cụ thể hơn là sử dụng cảm biến vật cản hồng ngoại thường ứng dụng cho
các đặc tính Robot tránh vật cản, trên các dây chuyền phát hiện sản phẩm, các bộ
reminder đa chức năng..v.v..
Cảm biến hồng ngoại khi hoạt động, tia hồng ngoại phát ra một tần số nhất định,
khi phát hiện hướng truyền có vật cản (mặt phản xạ), phản xạ vào đèn thu hồng
ngoại, sau khi so sánh, đèn màu xanh sẽ sáng lên đồng thời đầu cho tín hiệu số đầu
ra (một tín hiệu bậc thấp).
Khoảng cách làm việc hiệu quả 2 ~ 5cm, điện áp làm việc là 3.3 V đến 5V. Độ
nhạy sáng của cảm biến được điều chỉnh bằng chiết áp, cảm biến dễ lắp ráp, dễ sử
dụng,....
• Các mô-đun đã được so sánh điện áp ngưỡng thông qua chiết áp, nếu sử
dụng ở chế độ thông thường, xin vui lòng không tự ý điều chỉnh chiết áp
VCC: điện áp chuyển đổi từ 3.3V đến 5V (có thể được kết nối trực tiếp đến vi
điều khiển 5V và 3.3V)
Ngày nay, thiết bị hiển thị LCD (Liquid Crystal Display) được sử dụng trong
rất nhiều các ứng dụng của VĐK. LCD có rất nhiều ưu điểm so với các dạng
hiển thị khác: Nó có khả năng hiển thị kí tự đa dạng, trực quan (chữ, số và kí tự
đồ họa), dễ dàng đưa vào mạch ứng dụng theo nhiều giao thức giao tiếp khác
nhau, tốn rất ít tài nguyên hệ thống và giá thành rẻ …
• Điện áp MAX : 7V
- Chân số 1 - VSS : chân nối đất cho LCD được nối với GND của mạch
điều khiển.
- Chân số 2 - VDD : chân cấp nguồn cho LCD, được nối với VCC=5V
của mạch điều khiển
- Chân số 4 - RS : chân chọn thanh ghi, được nối với logic "0" hoặc
logic "1":
+ Logic “0”: Bus DB0 - DB7 sẽ nối với thanh ghi lệnh IR của LCD (ở
chế độ “ghi” - write) hoặc nối với bộ đếm địa chỉ của LCD (ở chế độ
“đọc” - read)
+ Logic “1”: Bus DB0 - DB7 sẽ nối với thanh ghi dữ liệu DR bên trong
LCD
- Chân số 6 - E : chân cho phép (Enable). Sau khi các tín hiệu được đặt
lên bus DB0-DB7, các lệnh chỉ được chấp nhận khi có 1 xung cho
phép của chân này như sau:
+ Ở chế độ ghi: Dữ liệu ở bus sẽ được LCD chuyển vào thanh ghi bên
trong khi phát hiện một xung (high-to-low transition) của tín hiệu chân
E
+ Ở chế độ đọc: Dữ liệu sẽ được LCD xuất ra DB0-DB7 khi phát hiện
cạnh lên (low-to-high transition) ở chân E và được LCD giữ ở bus đến
khi nào chân E xuống mức thấp
- Chân số 7 đến 14 - D0 đến D7: 8 đường của bus dữ liệu dùng để trao
đổi thông tin với MPU. Có 2 chế độ sử dụng 8 đường bus này là: Chế
độ 8 bit (dữ liệu được truyền trên cả 8 đường, với bit MSB là bit DB7)
và Chế độ 4 bit (dữ liệu được truyền trên 4 đường từ DB4 tới DB7, bit
MSB là DB7)
2.5 Motor DC
Động cơ điện một chiều là máy điện chuyển đổi năng lượng điện một chiều
sang năng lượng cơ. (Máy điện chuyển đổi từ năng lượng cơ sang năng lượng
điện là máy phát điện).
Động Cơ DC Motor 775 là loại động cơ điện một chiều có chổi than sử dụng
nguồn điện 12 - 24V ( có thể lên 36V), được trang bị quạt tản nhiệt tích hợp trong
thân động cơ. Đây là động cơ nhỏ gọn, công suất lớn, mạnh mẽ. Ứng dụng làm máy
khoan mini, máy cưa bàn mini, máy cắt cầm tay, máy cnc mini..
Gồm có 3 phần chính stator (phần cảm), rotor (phần ứng), và phần chỉnh
lưu (chổi than và cổ góp).
- Stator của động cơ điện 1 chiều thường là 1 hay nhiều cặp nam châm vĩnh cửu,
hay nam châm điện.
- Rotor có các cuộn dây quấn và được nối với nguồn điện một chiều.
- Bộ phận chỉnh lưu, nó có nhiệm vụ là đổi chiều dòng điện trong khi chuyển động
quay của rotor là liên tục.
Pha 1: Từ trường của rotor cùng cực với stator, sẽ đẩy nhau tạo ra
chuyển động quay của rotor.
Pha 3: Bộ phận chỉnh điện sẽ đổi cực sao cho từ trường giữa stator và
rotor cùng dấu, trở lại pha 1
Servo là một dạng động cơ điện đặc biệt. Không giống như động cơ thông
thường cứ cắm điện vào là quay liên tục, servo chỉ quay khi được điều khiển với
góc quay nằm trong khoảng giới hạn. Mỗi loại servo có kích thước, khối lượng và
cấu tạo khác nhau. Có loại thì nặng chỉ 9g (chủ yếu dùng trên máy bay mô
mình), có loại thì sở hữu một momen lực tương đối (vài chục Newton/m), hoặc có
loại thì khỏe và nhông sắc chắc chắn...
Các động cơ servo điều khiển bằng liên lạc vô tuyến được gọi là động cơ
servo RC (radio-controlled). Trong thực tế, bản thân động cơ servo không phải
được điều khiển bằng vô tuyến, nó chỉ nối với máy thu vô tuyến trên máy bay hay
xe hơi. Động cơ servo nhận tín hiệu từ máy thu này.
Động cơ DC và động cơ bước vốn là những hệ hồi tiếp vòng hở. Việc thiết
lập một hệ thống điều khiển để xác định những gì ngăn cản chuyển động quay của
động cơ hoặc làm động cơ không quay cũng không dễ dàng.
Mặt khác, động cơ servo được thiết kế cho những hệ thống hồi tiếp vòng kín.
Khi động cơ quay, vận tốc và vị trí sẽ được hồi tiếp về một mạch điều khiển. Nếu
có bầt kỳ lý do nào ngăn cản chuyển động quay của động cơ, cơ cấu hồi tiếp sẽ
nhận thấy tín hiệu ra chưa đạt được vị trí mong muốn. Mạch điều khiển tiếp tục
chỉnh sai lệch cho động cơ đạt được điểm chính xác.
1. Motor
2. Electronics Board
3. Positive Power Wire (Red)
4. Signal Wire (Yellow or White)
5. Negative or Ground Wire (Black)
6. Potentiometer
7. Output Shaft/Gear
8. Servo Attachment Horn/Wheel/Arm
9. Servo Case
10. Integrated Control Chip
Hình 10: Cấu tạo cơ bản của một động cơ (motor) servo
Để quay động cơ, tín hiệu số được gới tới mạch điều khiển. Tín hiệu này
khởi động động cơ, thông qua chuỗi bánh răng, nối với vôn kế. Vị trí của trục
vôn kế cho biết vị trí trục ra của servo. Khi vôn kế đạt được vị trí mong muốn,
mạch điều khiển sẽ tắt động cơ. Mặc dù ta có thể chỉnh quay liên tục nhưng công
dụng chính của động cơ servo là đạt được góc quay chính xác trong khoảng giới
hạn.
- Khối lượng: 9g
- Delay: 10us
Các servo khác nhau ở góc quay được với cùng tín hiệu 1 – 2 ms (hoặc
bất kỳ) được cung cấp. Các servo chuẩn được thiết kế để quay tới và lui từ 90 độ
– 180 độ khi được cung cấp toàn bộ chiều dài xung. Nếu ta cố điều khiển servo
vượt quá những giới hạn cơ học của nó, hiện tượng này kéo dài hơn vài giây
sẽ làm bánh răng của động cơ bị phá hủy
Băng tải là một hệ thống được ứng dụng trong sản xuất với nhiều tiện
ích và chức năng dùng để vận chuyển đồ từ một điểm này đến một điểm khác
mà không tốn sức của con người. Để tiết kiệm thời gian, sức lao động, nhân
công và tăng hiệu quả trong sản xuất thì các công ty doanh nghiệp cần đến
băng tải, đó là một sản phẩm tốt nhất cần đến hiện nay
Băng tải dây đai < 50 kg Vận chuyển từng chi tiết giữa các
nguyên công hoặc vận chuyển thùng
chứa trong gia công cơ và lắp ráp.
Băng tải lá 25 ÷ 125 kg Vận chuyển chi tiết trên vệ tinh trong
gia công chuẩn bị phôi và trong lắp ráp
Băng tải thanh đẩy 50 ÷ 250 kg Vận chuyển các chi tiết lớn giữa các bộ
phận trên khoảng cách >50m.
Băng tải con lăn 30 ÷ 500 kg Vận chuyển chi tiết trên các vệ tinh
giữa các nguyên công với khoảng cách
<50m.
Các loại băng tải xích, băng tải con lăn có ưu điểm là độ ổn định cao khi
vận chuyển.Tuy nhiên chúng đòi hỏi kết cấu cơ khí phức tạp, đòi hỏi độ chính
xác cao, giá thành khá đắt.
Băng tải dùng trong mô hình trong đồ án đã lựa chọn loại băng tải dây
đai để mô phỏng cho hệ thống dây chuyền trong nhà máy với những lý do sau
đây:
- Tải trọng băng tải không quá lớn.
- Kết cấu cơ khí không quá phức tạp.
- Dễ dàng thiết kế chế tạo.
- Có thể dễ dàng hiệu chỉnh băng tải.
Tuy nhiên loại băng tải này cũng có 1 vài nhược điểm như độ chính xác
khi vận chuyển không cao, đôi lúc băng tải hoạt động không ổn định do nhiều
yếu tố: nhiệt độ môi trường ảnh hưởng tới con lăn, độ ma sát của dây đai giảm
qua thời gian...
Hình 13: Mô hình phân loại sản phẩm theo chiều cao dùng vi điều khiển
Atmega16L”
Khi sản phẩm trên băng tải đi qua cảm biến vật cản hồng ngoại được thiết kế
với động cơ Servo để phân loại sản phẩm kết hợp với LCD 16x2 để hiển thị số
lượng sản phẩm, giúp chúng ta một phần nào hiểu được dây chuyền phân loại sản
phẩm trong thực tế.
3.2.1 AVR
Sự ra đời của AVR bắt nguồn từ yêu cầu thực tế là hầu hết khi cần lập trình cho
vi điều khiển, thường dùng những ngôn ngữ bậc cao HLL (Hight Level Language)
để lập trình ngay cả với loại chip xử lí 8 bit. Tuy nhiên khi biên dịch thì kích thước
đọan mã sẽ tăng nhiều so với dùng ngôn ngữ Assembly. Hãng Atmel nhận thấy rằng
cần phải phát triển một cấu trúc đặc biệt để giãm thiểu sự chênh lệch kích thước mã
đã nói trên. Và kết quả là họ vi điều khiển AVR ra đời với việc làm giãm kích thước
đoạn mã khi biên dịch và thêm vào đó là thực hiện lệnh đúng chu kỳ máy với 32
thanh ghi tích lũy và đạt tốc độ nhanh hơn các họ vi điều khiển khác từ 4 đến 12
lần. Vì thế nghiên cứu AVR là một đề tài khá lý thú và giúp cho sinh viên biết thêm
một họ vi điều khiển vào loại mạnh nhất hiện nay.
Họ vi điều khiển AVR là một họ vi điều khiển có cấu trúc hiện đại (so với 805).
Có ba loại trong họ này đó là :
- Tinyavr.
- MegaAVR.
Altium Designer trước kia có tên gọi quen thuộc là Protel DXP, là một trong
những công cụ vẽ mạch điện tử mạnh nhất hiện nay. Được phát triển bởi hãng
Altium Limited. Altium designer là một phần mềm chuyên nghành được sử dụng
trong thiết kế mạch điện tử. Nó là một phần mềm mạnh với nhiều tính năng thú vị,
tuy nhiên phần mềm này còn được ít người biết đến so với các phần mềm thiết kế
mạch khác như orcad hay proteus.
Hình 19: Sơ đồ khối mô hình đếm & phân loại sản phẩm
• Khối nguồn gồm các linh kiện tác động đến công suất, dòng điện. (adapter,
module nguồ n...) cung cấp năng lượng thích hợp cho mô hình hệ thống.
• Khối phân loại (Băng tải, Servo): phân các sản phẩm thành nhiều loại theo
yêu cầu của mô hình đề tài.
• Khối tín hiệu là các cảm biến vật cản hồng ngoại: phát hiện vật thể và
truyền tín hiệu về khối xử lý để mã hóa dữ liệu.
• Khối xử lý ( ): xử lý tín hiệu từ cảm biến và xuất dữ liệu được mã hóa đến
các khối hiển thị, khối phân loại
Khi được cấp nguồn, mạch sẽ hoạt động theo chương trình được thiết lập trên
AVR
- Hệ thống phân loại chiều cao theo 2 mức, mức cao và thấp
- Sản phẩm được đưa vào theo băng tải, 2 cảm biến ở 2 độ cao khác
nhau để phát hiện sản phẩm 2 mức cao và thấp.
- Cảm biến mức 1 phát hiện sản phẩm có độ cao lớn hơn, khi phát hiện
có sản phẩm đi qua, động cơ servo sẽ gạt đẩy sản phẩm đó về máng
phân loại sản phẩm mức 1. Số lượng sản phẩm mức 1 khi đó sẽ tăng
lên 1 đơn vị. Sản phẩm mức 2 thấp hơn nên cảm biến 1 sẽ không phát
hiện, tới cảm biến 2 phát hiện sản phẩm mức 2, khi đó số lượng sản
phẩm mức 2 tăng lên 1 đơn vị và được hiển thị LCD.
- Nút reset để đặt lại số lượng sản phẩm về 0 đếm lại từ ban đầu.
/*******************************************************
Chip type : ATmega16A
Program type : Application
AVR Core Clock frequency: 8.000000 MHz
Memory model : Small
External RAM size :0
Data Stack size : 256
*******************************************************/
#include <mega16a.h>
#include <delay.h>
#include <alcd.h>
#include <stdio.h>
void main(void)
{
DDRA=0xFF; PORTA=0x00;
DDRB=0x00; PORTB=0x00;
DDRC=0x00; PORTC=0x00;
DDRD=0xFF; PORTD=0x00;
TCCR1A=0xA2;
TCCR1B=0x1A;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x4E;
ICR1L=0x20;
MOTOR = 0; // 0-2000 = 0-100%
SERVO = 1000; // 1000: 0* ; 3500: 180*
lcd_init(16);
lcd_gotoxy(0,0); lcd_puts("Ph.loai san pham");
lcd_gotoxy(0,1); lcd_puts(" theo chieu cao ");
delay_ms(2000);
lcd_clear();
while (1)
{
sprintf(str,"Loai 1: %d ",dem1);
lcd_gotoxy(0,0); lcd_puts(str);
sprintf(str,"Loai 2: %d ",dem2);
lcd_gotoxy(0,1); lcd_puts(str);
Sau một thời gian nghiên cứu và tìm hiểu đề tài này; đến nay, “Mô hình
phân loại sản phẩm theo chiều cao dùng vi điều khiển Atmega16L” đã được
thiết kế, chế tạo thành công.
4.1 Ưu điểm
Do thời gian và kiến thức còn hạn hẹp nên không thể tránh khỏi những thiếu
sót trong quá trình thực hiện đề tài. Rất mong nhận được những góp ý, những đánh
giá quý báu của quý thầy cô và các bạn. Em xin trân thành cảm ơn.
4. Website http://alldatasheet.com/
5. Website http://codientu.org/
6. Website http://webdien.com/
7. Website http://www.tailieu.vn/
8. Website http://wikipedia.com/
9. Website http://google.com/