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

Mạch đếm sản phẩm 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 (2.78 MB, 18 trang )

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
KHOA CÔNG NGHỆ TỰ ĐỘNG HÓA

BÁO CÁO BÀI TẬP LỚN
BỘ MÔN KỸ THUẬT VI ĐIỀU KHIỂN VÀ ỨNG DỤNG
Đề tài :
THIẾT KẾ MẠCH ĐẾM SẢN PHẨM
SỬ DỤNG LED HỒNG NGOẠI HIỂN THỊ TRÊN LCD

SINH VIÊN THỰC HIỆN

LỚP
GIÁO VIÊN HƯỚNG DẪN

: NGUYỄN TRUNG KIÊN
PHẠM HUY HIỆU
LƯƠNG ĐÌNH TÀI
TRẦN VĂN KIÊN
: TỰ ĐỘNG HÓA K14
: MAI THỊ KIM ANH

Thái Nguyên, Ngày 08 tháng 04 năm 2019


MỤC LỤC
LỜI NÓI ĐẦU............................................................................................................................. 4
PHẦN 1: PHÂN TÍCH BÀI TOÁN......................................................................................... 5
1.1. Yêu cầu bài toán........................................................................................................ 5
1.2. Giải pháp thiết kế.................................................................................................... 5
1.2.1. Sơ đồ khối............................................................................................................ 5
1.2.2. Phân tích chức năng và nhiệm vụ của các khối...................................5


1.3. Lựa chọn linh kiện................................................................................................... 6
1.3.1. Arduino UNO R3................................................................................................ 6
1.3.2. Cảm biến LED hồng ngoại.........................................................................10
1.3.3. Màn hình hiển thị LCD 16x2......................................................................11
PHẦN 2: THIẾT KẾ VÀ THỰC THI.................................................................................13
2.1. Thiết kế phần cứng.............................................................................................. 13
2.2. Lưu đồ thuật toán................................................................................................. 14
2.3. Thiết kế phần mềm............................................................................................. 16
2.4. Một số hình ảnh của sản phẩm......................................................................17
TÀI LIỆU THAM KHẢO........................................................................................................ 19

2


NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................

.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
Giáo viên hướng dẫn
Mai Thị Kim Anh
Ký Tên

3


LỜI NÓI ĐẦU
Ngày nay với sự phát triển mạnh mẽ của thế giới về mọi mặt, trong
đó khoa đó khoa học công nghệ nói chung và ngành công ngh ệ kỹ thu ật
điện tử nói riêng có nhiều phát triển vượt bậc, góp ph ần làm cho th ế gi ới
ngày càng hiện đại và văn minh hơn. Sự phát triển của kỹ thuật điện t ử đã
tạo ra hàng loạt những thiết bị với các đặc điểm như sự chính xác cao, t ốc
độ nhanh, gọn nhẹ và hoạt động ổn định. Là những yếu tố cần thiết làm
cho hoạt động con người đạt hiệu quả cao.
Việc sản suất hàng loạt sản phẩm với số lượng lớn đòi hỏi con
người cần có công cụ cần thiết để kiểm soát số lượng sản ph ẩm. Chính vì
vậy nhóm em đã chọn đề tài “Thiết kế mạch đếm sản phẩm sử dụng
LED hồng ngoại hiển thị trên LCD”.
Nội dung báo cáo gồm 2 phần:
Phần 1: Phân tích bài toán
Phần 2: Thiết kế phần cứng và thực thi
Mặc dù rất cố gắng hoàn thành bài báo cáo này nh ưng v ẫn không
tránh khỏi thiếu sót mong quý thầy, cô và các bạn đóng góp ý ki ến đ ể đ ồ
án có thể hoàn thiện hơn.
Cuối cùng nhóm em xin chân thành cảm ơn cô Mai Th ị Kim Anh đã

nhiệt tình hướng dẫn và giúp đỡ nhóm em trong suốt thời gian làm báo cáo
này để nhóm em được hoàn thành với thời gian sớm nhất và hoàn chỉnh
nhất.

4


PHẦN 1: PHÂN TÍCH BÀI TOÁN
1.1. Yêu cầu bài toán.
Đề tài: Thiết kế mạch đếm sản phẩm sử dụng LED hồng ngoại hiển
thị trên LCD.
Khi có sản phẩm đi qua mắt hồng ngoại gồm m ột con phát m ột con
thu (quang trở và đèn phát ánh sáng trắng) sẽ đưa tín hiệu về bộ vi x ử lý và
hiển thị lên LCD.
1.2. Giải pháp thiết kế.
Nhóm em sử dụng Arduino UNO R3 đảm nhiệm nhiệm vụ xử lý tín
hiệu từ cảm biến LM 393. ( Phân tích bài toán)
1.2.1.Sơ đồ khối
Khối nguồn

Khối cảm biến

Khối xử lý

Khối hiển thị

1.2.2.Phân tích chức năng và nhiệm vụ của các khối.
a) Khối nguồn:
Khối nguồn cung cấp dòng điện cho toàn mạch.
- Nguồn cho Arduino:

- Nguồn cho LCD:
- Nguồn cho cảm biến:
b) Khối cảm biến:
Khối cảm biến là LED hồng ngoại LM 393 có nhiệm vụ phát hiện vật
cản đưa ra tín hiệu đến khối xử lý.
c) Khối xử lý:
Khối xử lý là Arduino UNO R3 có nhiệm vụ xử lý tín hiệu t ừ cảm bi ến
và đưa ra tín hiệu đến khối hiển thị.
d) Khối hiển thị:
Khối hiển thị là màn hình LCD 16x2 có nhiệm vụ hiển thị tín hiệu
dưới dạng số.
1.3. Lựa chọn linh kiện.
1.3.1.Arduino UNO R3
a) Khái niệm.
Arduino thật ra là một bo mạch vi xử lý được dụng đ ể l ập trình
tương tác với các thiết bị phần cứng như cảm biến, động cơ, đền hoặc các
5


thiết bị khác. Đặc điểm nổi bật của Arduino là môi tr ường phát tri ển ứng
dụng cực kỳ dễ sử dụng, với một ngôn ngữ lập trình có th ể học m ột cách
nhanh chóng ngày cả với người ít am hiểu về điện tử và lập trình. Và điều
làm nên hiện tượng Arduino chính là mức giá th ấp và tính ch ất ngu ồn m ở
từ phần cứng tới phần mềm.

Hình 1.1: Arduino UNO R3

b) Thông số.
Arduino Uno là sử dụng c híp Atemega328, nó có 14 chân digital I/O,
6 chân đầu vào (input) analog, thach anh dao động 16Mhz. M ột s ố thông s ố

kỹ thuật như sau:
Vi điều khiển
Điện áp hoạt động
Tần số hoạt động
Dòng tiêu thụ
Điện áp vào khuyên dùng
Điện áp vào giới hạn
Số chân Digital I/O
Số chân Analog
Dòng tối đa trên mỗi chân
I/O
Dòng ra tối đa (5V)
Dòng ra tối đa (3.3V)
Bộ nhớ flash
SRAM

Atmega328 họ 8bit
5V DC (chỉ được cấp qua cổng USB)
16 MHz
khoảng 30mA
7-12V DC
6-20V DC
14 (6 chân hardware PWM)
6 (độ phân giải 10bit)
30 mA
500 mA
50 mA
32 KB (Atmega328) với 0.5KB dùng bởi
bootloader
KB (Atmega328)

6


c) Năng lượng.
Arduino UNO có thể được cấp nguồn 5V thông qua cổng USB hoặc
cấp nguồn ngoài với điện áp khuyên dùng là 7-12V DC và gi ới hạn là 6-20V.
Thường thì cấp nguồn bằng pin vuông 9V là hợp lí nhất nếu bạn không có
sẵn nguồn từ cổng USB. Nếu cấp nguồn vượt quá ngưỡng giới hạn trên,
bạn sẽ làm hỏng Arduino UNO.
Các chân năng lượng:
+ GND (Ground): cực âm của nguồn điện cấp cho Arduino UNO. Khi
bạn dùng các thiết bị sử dụng những nguồn điện riêng biệt thì
những chân này phải được nối với nhau.
+ 5V: cấp điện áp 5V đầu ra. Dòng tối đa cho phép ở chân này là
500mA.
+ 3.3V: cấp điện áp 3.3V đầu ra. Dòng tối đa cho phép ở chân này là
50mA.
+ V in (Voltage Input): để cấp nguồn ngoài cho Arduino UNO, bạn n ối
cực dương của nguồn với chân này và cực âm của nguồn v ới chân
GND.
+ IOREF: điện áp hoạt động của vi điều khiển trên Arduino UNO có
thể được đo ở chân này. Và dĩ nhiên nó luôn là 5V. M ặc dù v ậy b ạn
không được lấy nguồn 5V từ chân này để sử dụng bởi chức năng của
nó không phải là cấp nguồn.
+ RESET: việc nhấn nút Reset trên board để reset vi điều khiển tương
đương với việc chân RESET được nối với GND qua 1 điện tr ở 10KΩ.
d) Các cổng ra vào.
Arduino UNO có 14 chân digital dùng để đọc hoặc xuất tín hiệu.
Chúng chỉ có 2 mức điện áp là 0V và 5V v ới dòng vào/ra t ối đa trên m ỗi
chân là 40mA. Ở mỗi chân đều có các điện trở pull-up t ừ được cài đ ặt ngay

trong vi điều khiển Atmega328 (mặc định thì các điện tr ở này không đ ược
kết nối).
Một số chân digital có các chức năng đặc biệt như sau:
+ Chân Serial: 0 (RX) và 1 (TX): dùng để gửi (transmit – TX) và nh ận
(receive – RX) dữ liệu TTL Serial. Arduino Uno có th ể giao ti ếp v ới
7


thiết bị khác thông qua 2 chân này. Kết nối bluetooth thường th ấy
nói nôm na chính là kết nối Serial không dây. Nếu không c ần giao
tiếp Serial, bạn không nên sử dụng 2 chân này nếu không c ần thi ết
+ Chân PWM (~): 3, 5, 6, 9, 10, và 11: cho phép bạn xuất ra 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(). Nói một cách đơn giản, bạn có thể điều
chỉnh được điện áp ra ở chân này từ mức 0V đến 5V thay vì ch ỉ c ố
định ở mức 0V và 5V như những chân khác.
+ Chân giao tiếp SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). Ngoài
các chức năng thông thường, 4 chân này còn dùng để truyền phát d ữ
liệu bằng giao thức SPI với các thiết bị khác.
+ LED 13: trên Arduino UNO có 1 đèn led màu cam (kí hiệu ch ữ L). Khi
bấm nút Reset, bạn sẽ thấy đèn này nhấp nháy để báo hiệu. Nó đ ược
nối với chân số 13. Khi chân này được người dùng sử dụng, LED sẽ
sáng.
Arduino UNO có 6 chân analog (A0 → A5) cung cấp đ ộ phân gi ải tín
hiệu 10bit (0 → 210-1) để đọc giá trị điện áp trong khoảng 0V → 5V.
Với chân AREF trên board, bạn có thể để đưa vào điện áp tham chi ếu
khi sử dụng các chân analog. Tức là nếu bạn cấp điện áp 2.5V vào chân này
thì bạn có thể dùng các chân analog để đo điện áp trong kho ảng t ừ 0V →
2.5V với độ phân giải vẫn là 10bit.
Đặc biệt, Arduino UNO có 2 chân A4 (SDA) và A5 (SCL) h ỗ tr ợ giao

tiếp I2C/TWI với các thiết bị khác.
e) Lập trình cho Arduino.
Các thiết bị dựa trên nền tảng Arduino được lập trình bằng ngôn
riêng. Ngôn ngữ này dựa trên ngôn ngữ Wiring được viết cho phần c ứng
nói chung. Và Wiring lại là một biến thể của C/C++. Một số người gọi nó là
Wiring, một số khác thì gọi là C hay C/C++. Riêng mình thì gọi nó là “ ngôn
ngữ Arduino”, và đội ngũ phát triển Arduino cũng gọi như vậy. Ngôn ngữ
Arduino bắt nguồn từ C/C++ phổ biến hiện nay do đó rất dễ học, dễ hiểu.
Nếu học tốt chương trình Tin học 11 thì việc lập trình Arduino sẽ r ất d ễ
thở đối với bạn.
8


Để lập trình cũng như gửi lệnh và nhận tín hiệu từ mạch Arduino,
nhóm phát triển dự án này đã cũng cấp đến cho ng ười dùng m ột môi
trường

lập

trình

Arduino

được

gọi



Arduino


IDE

(Intergrated Development Environment) như hình dưới đây:

Hình 1.2: phần mềm Arduino IDE
1.3.2.Cảm biến LED hồng ngoại
Cảm biến có khả năng nhận biết vật cản ở môi trường với m ột c ặp
LED thu phát hồng ngoại để truyền và nhận dữ liệu hồng ngoại. Tia h ồng
ngoại phát ra với tần số nhất định, khi có vật cản trên đ ường truy ền c ủa
LED phát nó sẽ phản xạ vào LED thu hồng ngoại, khi đó LED báo v ật c ản
trên module sẽ sáng, khi không có vật cản, LED sẽ tắt.
Với khả năng phát hiện vật cản trong khoảng 2 ~ 30cm và kho ảng
cách này có thể điều chỉnh thông qua chiết áp trên cảm biến cho thích h ợp
với từng ứng dụng cụ thể như: xe dò line, xe tránh vật cản,...

9


Hình 1.3: Cảm biến hồng ngoại
Thông số kỹ thuật:
– IC so sánh : LM393
– Điện áp : 3.3V – 6DVC
– DÒng tiêu thụ:
+ Vcc = 3.3V : 23mA
+ Vcc = 5.0V: 43mA
– Góc hoạt động : 35°
– Khoảng cách phát hiện vật : 2 ~ 30cm
– LED báo nguôn và LED báo tín hiệu ngõ ra
– Mức logic ngõ ra:

+ Mức thấp – 0V: Khi có vật cản
+ Mức cao – 5V: Khi không có vật cản
– Kích thước : 3.2cm x 1.4cm
1.3.3.Màn hình hiển thị LCD 16x2
Ngày này, 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 Vi điều khiển, 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
10


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ẻ.

Hình 1.4: Màn hình LCD 16x2
Cách chân cảu LCD:
Chân



Mô tả

hiệu

1

Vss

2


VDD

3

Vo

Chân nối đất cho LCD, khi thiết kế mạch ta nối chân này
với GND của mạch điều khiển.
Chân cấp nguồn cho LCD, khi thiết kế mạch ta nối chân
này với VCC=5V của mạch điều khiển.
Điều chỉnh độ tương phản của LCD.
Chân chọn thanh ghi (Register select). Nối chân RS với
logic “0” (GND) hoặc logic “1” (VCC) để chọn thanh ghi.
+ Logic “0”: Bus DB0-DB7 sẽ nối với thanh ghi lệnh IR

4

RS

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 chọn chế độ đọc/ghi (Read/Write). Nối chân R/W

5

R/W

với logic “0” để LCD hoạt động ở chế độ ghi, hoặc nối

với logic “1” để LCD ở chế độ đọc.

11


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 E.
+ Ở chế độ ghi: Dữ liệu ở bus sẽ được LCD chuy ển
vào(chấp nhận) thanh ghi bên trong nó khi phát hiện
6

E

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

7-14

DO –
D7

15
16

A
K


xuống mức thấp.
Tám đườ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 :
+ Chế độ 8 bit : Dữ liệu được truyền trên cả 8 đường,
với bit MSB là bit DB7.
+ Chế độ 4 bit : Dữ liệu được truyền trên 4 đường t ừ
DB4 tới DB7, bit MSB là DB7.
Nguồn dương cho đèn nền.
GND cho đèn nền.

12


PHẦN 2: THIẾT KẾ VÀ THỰC THI
2.1. Thiết kế phần cứng.
Sơ đồ nguyên lý:

Hình 2.1: Sơ đồ nối dây
Giải thích sơ đồ:

Modul màn hình LCD

Arduino

(16x2)
GND

GND


Vcc

5V

SDA

A4

SCL

A5

13


2.2. Lưu đồ thuật toán.

BEGIN

Khởi tạo LCD

Gán số vật cản
a=0

N >1

N=n+1

Hiển thị n lên LCD


LCD

14


*Giải thích lưu đồ thuật toán.





Khi bắt đầu chương trình, sẽ cấp nguồn cho toàn mạch.
Sau khi cấp nguồn, LCD được khởi tạo.
Với giá trị ban đầu, sản phẩm được được gán a = 0
Nếu :
+ Có sản phẩm đi qua, cảm biến sẽ nhận tín hiệu và đưa ra giá tr ị
sản phẩm: a = a+1 và hiển thị trên LCD rồi kết thúc ch ương trình
+ Không có sản phẩm nào đi qua, cảm biến không nhận đ ược tín
hiệu và giữ nguyên giá trị lúc ban đầu hiển thị trên LCD và kết

thúc chương trình.
2.3. Thiết kế phần mềm.
Code Arduino:
1.
2.
3.
4.
5.
6.
7.

8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
a.
26.
27.
a.
b.
c.
28.
29.

#include <math.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);

int a = 0;
void setup()
{
// pinMode(13, OUTPUT);
pinMode(A0,INPUT_PULLUP);
Serial.begin(9600);
lcd.init();
lcd.backlight();
}
void loop()
{
int button = digitalRead(A0);
lcd.clear();
lcd.setCursor(3, 1);
lcd.print(a);
lcd.setCursor(1,0);
lcd.print("so san pham la");
if (button == 0) /// khi co san pham di qua
{
a= a+1;
lcd.setCursor(3, 1);
lcd.print(a);
delay(1000);
}
else{
lcd.setCursor(3,1);
lcd.print(a);
delay (1000);
}
}


2.4. Một số hình ảnh của sản phẩm.
15


Hình 2.2: Màn hình hiển thị LCD 16x2

Hình 2.3: Cảm biến LED hồng ngoại LM 393

16


Hình 2.4: Adruino UNO R3

Hình 2.5: Mạch đếm sản phẩm sử dụng cảm biến LED hồng ngoại hiển thị
trên LCD
TÀI LIỆU THAM KHẢO
17


[1] Mai Thị Kim Anh, (2016), Bài giảng kĩ thuật vi điều khiển và ứng dụng,
Đại Học Công nghệ thông tin và Truyền thông Thái Nguyên.
[2] />[3]

18



×