Những ngày tháng trong thời đại công nghiệp 4.0 hiện nay ngày càng đòi hỏi chúng ta cần phải biết sử dụng, tiếp thu mọi công nghệ từ đơn giản đến hiện đại nhất. Tránh thụt lùi, lạc hậu với xu thế. Là một kĩ sư tương lai khi ra trường, nay được tiếp cận với đề tài đồ án “Thiết kế hệ thống đo và hiển thị nhiệt độ phòng trên LED 7 vạch sử dụng cảm biến LM35”, từng bước đầu đã giúp chúng em tiếp cận được với công nghệ tiên tiến và định hình được công việc sau này. Trên thế giới hiện nay có rất nhiều bo mạch với tên gọi khác nhau như Arduino UNO, Arduino Mega 2560 Mega, Arduino Due, Arduino Fio, Arduino Pro Mini, Arduino NaNo, Arduino Pro,.... Trong số các bo mạch kể trên, có hai bo mạch tiêu biểu sử dụng rộng rãi cho người mới bắt đầu là:•Arduino UNO (Đây là bo mạch chuẩn, người mới bắt đầu học về Arduino nên sử dụng).•Arduino Mega 2560 R3.Chúng em sẽ thực hiện đề tài được giao với bo mạch Arduino UNO R3. Bởi vì bo mạch Arduino UNO R3 được sử dụng rộng rãi với giá cả vừa phải, có đầy đủ những chức năng cơ bản để điều khiển.Nội dung đồ án gồm 3 chương.•Chương 1: Khái quát hệ thống đo và hiển thị nhiệt độ phòng.•Chương 2: Thiết kế hệ thống điều khiển.•Chương 3: Mô phỏng và lắp ráp hệ thống.
Trang 1KHOA ĐIỆN – ĐIỆN TỬ
BỘ MÔN ĐIỆN TỰ ĐỘNG CÔNG NGHIỆP
TIỂU LUẬN HỌC PHẦN: ĐỒ ÁN 1
Giảng viên hướng dẫn :
Lớp: ĐTĐ58ĐH : Đồ án 1
Nhóm sinh viên thực hiện :
Trang 2
KHOA ĐIỆN – ĐIỆN TỬ
BỘ MÔN ĐIỆN TỰ ĐỘNG CÔNG NGHIỆP
TIỂU LUẬN HỌC PHẦN: ĐỒ ÁN 1
ĐỀ TÀI: Thiết kế hệ thống đo và hiển thị nhiệt độ phòng
trên LED 7 vạch sử dụng cảm biến LM35
Giảng viên hướng dẫn :
Lớp: ĐTĐ58ĐH : Đồ án 1
Nhóm sinh viên thực hiện :
Trang 3LỜI NÓI ĐẦU
Những ngày tháng trong thời đại công nghiệp 4.0 hiện nay ngày càng đòi hỏichúng ta cần phải biết sử dụng, tiếp thu mọi công nghệ từ đơn giản đến hiện đạinhất Tránh thụt lùi, lạc hậu với xu thế Là một kĩ sư tương lai khi ra trường, nayđược tiếp cận với đề tài đồ án “Thiết kế hệ thống đo và hiển thị nhiệt độ phòng
trên LED 7 vạch sử dụng cảm biến LM35”, từng bước đầu đã giúp chúng em
tiếp cận được với công nghệ tiên tiến và định hình được công việc sau này Trênthế giới hiện nay có rất nhiều bo mạch với tên gọi khác nhau như Arduino UNO,Arduino Mega 2560 Mega, Arduino Due, Arduino Fio, Arduino Pro Mini,Arduino NaNo, Arduino Pro,
Trong số các bo mạch kể trên, có hai bo mạch tiêu biểu sử dụng rộng rãi chongười mới bắt đầu là:
Arduino UNO (Đây là bo mạch chuẩn, người mới bắt đầu học về Arduinonên sử dụng)
Arduino Mega 2560 R3
Chúng em sẽ thực hiện đề tài được giao với bo mạch Arduino UNO R3 Bởi
vì bo mạch Arduino UNO R3 được sử dụng rộng rãi với giá cả vừa phải, có đầy
đủ những chức năng cơ bản để điều khiển
Nội dung đồ án gồm 3 chương
Chương 1: Khái quát hệ thống đo và hiển thị nhiệt độ phòng
Chương 2: Thiết kế hệ thống điều khiển
Chương 3: Mô phỏng và lắp ráp hệ thống
Đồ án của chúng em đã hoàn thành, tuy nhiên không tránh khỏi một số saisót Chúng em xin sự góp ý của cô và các bạn để đồ án hoàn thiện hơn Chúng
em xin cảm ơn
Trang 4Sinh viên thực hiện đồ án
Trang 5MỤC LỤC
CHƯƠNG 1 KHÁI QUÁT HỆ THỐNG ĐO VÀ HIỂN THỊ NHIỆT ĐỘ
PHÒNG 1
1.1 Cấu trúc hệ thống: 1
1.2 Tìm hiểu các linh kiện sử dụng: 2
1.2.1 Tìm hiểu về LM35 : .2
1.2.2 Vi điều khiển Arduino UNO R3 : .3
1.2.3 Tìm hiểu về LED 7 vạch: 9
1 2 4 Các linh kiện khác(Trở 1K): 14
1.3 Phần mềm Proteus: 15
1 3 1 Giới thiệu: 15
1 3 2 Ứng dụng: 16
1.4 Phần mềm IDE dùng cho Arduino: 17
1 4 1 Định nghĩa: 17
1 4 2 Ứng dụng: 18
CHƯƠNG 2: THIẾT KẾ HỆ THỐNG ĐIỀU KHIỂN 19
2.1 Sơ đồ kết nối chân vi điều khiển: 19
2.2 Sơ đồ thuật toán của hệ thống: 20
2.3 Viết chương trình điều khiển: 20
CHƯƠNG 3: MÔ PHỎNG VÀ LẮP RÁP HỆ THỐNG 23
3.1 Mô phỏng: 23
3.1.1 Mô phỏng mạch trên Proteus: 23
3.1.2 Đánh giá kết quả: 24
3.2 Mạch thực: 24
Trang 6HIỂN THỊ NHIỆT ĐỘ PHÒNG 1.1 Cấu trúc hệ thống:
Hình 1.1 Hệ thống đo và hiển thị nhiệt độ phòng
- Gồm: LM35, Arduino UNO R3, LED 7 vạch, 5161BS, trở 100 Ohm
- Mạch sử dụng cảm biến nhiệt độ LM35 nối với những vị trí chân GND,nguồn 5V, A2 của Arduino Cảm biến LM35 hoạt động bằng cách cho ramột giá trị hiệu điện thế nhất định tại chân Vout(chân giữa) ứng với mỗimức nhiệt độ Như vậy, bằng cách đưa vào chân bên trái của cảm biếnLM35 hiệu điện thế 5V, chân phải nối đất, đo hiệu điện thế ở chân giữabằng A2 trên arduino, ta sẽ có được nhiệt độ(0-100ºC) Chân A2 trênArduino làm đầu ra dữ liệu của cảm biến LM35(đầu vào của arduino).Khi có tín hiệu được chuyển vào Arduino sẽ xuất qua các con trở để điềuchỉnh mức độ tín hiệu tiếp tới đến Led 7 vạch(anode chung) 2 Led 7 vạch
sẽ liên tục lặp lại và hiển thị dựa trên các thuật toán đã được lập trình với
độ trễ 0,5s
1.2 Tìm hiểu các linh kiện sử dụng:
- Trên cơ sở phân tích đề tài, chúng em lựa chọn các linh kiện để triển khai chobài trên bao gồm: 1 Arduino UNO R3, 1 cảm biến nhiệt độ LM35, 2 Led 7 vạch
và dây nối
Trang 71.2.1 Tìm hiểu về LM35:
a Định nghĩa:
tương tự(bán dẫn) rất hay được ứng dụng
trong các ứng dụng đo nhiệt độ thời gian
thực
b Đặc điểm:
- Hoạt động chính xác với sai số nhỏ, kích thước gọn gàng, giá thành rẻ Là loạicảm biến tương tự(analog sensor) nên có thể dễ dàng đọc được giá trị bằng hàmanalogRead
- LM35 giúp nhiệt độ được xác định bằng cách đo hiệu điện thế ngõ ra của
LM35 Chiếc cảm biến nhiệt độ này không cần phải căn chỉnh nhiệt độ khi sửdụng LM35 có độ chính xác thực tế: 1/4°C ở nhiệt độ phòng và 3/4°C ngoàikhoảng -55°C tới 150°C LM35 có hiệu năng cao, công suất tiêu thụ là 60uA
c Ứng dụng:
- Đo nhiệt độ của môi trường đặc biệt và các áp dụng HVAC
- Kiểm tra nhiệt độ pin
- Cung cấp các thông tin về nhiệt độ của một hay các linh kiện điện tử khác
d Sơ đồ và hình ảnh chân thực:
Trang 8áp vào giới hạn 6 - 20V DC, số chân Digital: 14(6 chân hardware PWM), sốchân analog: 6(độ phân giải 10bit), dòng tối đa mỗi chân 30mA, dòng ra tối đa(5V) 500mA, dòng ra tối đa(3,3V) 50mA, bộ nhớ flash 32KB (ATmega328) với0.5KB dùng bởi bootloader, SRAM 2KB(ATmega328), EEPROM 1KB(ATmega328)
Trang 9Hình 1.3 Vị trí các đèn LED trong Arduino
- Có bốn đèn LED: Một ở bên phải dãn nhãn ON, sáng lên khi cấp nguồn cho bo mạch, và ba trong nhóm khác Các đèn LED được dán nhãn TX và
RX sáng lên khi dữ liệu đang được gửi đi hoặc nhận giữa bo mạch
Arduino và các thiết bị khác gắn thông tin qua cổng nối tiếp và USB
LED L là để sử dụng riêng của bạn(được kết nối chân số I/O 13) Một
khối hình vuông nhỏ màu đen ở bên trái các đèn LED này là một vi điềukhiển nhỏ để điều khiển giao diện USB cho phép bo mạch Arduino củabạn gửi dữ liệu đến và nhận dữ liệu từ một máy tính, nhưng bạn thườngkhông phải quan tâm với nó
Hình 1.4 Cổng 2.1mm trong Arduino
- Arduino có một cổng 2.1mm để bạn cấp nguồn 7 – 12V cho mạch hoạt
động Cấp nguồn thông qua một jack cắm 2.1mm vào lỗ cắm điện trên bo
mạch Nếu là nguồn pin có thể dùng dây dẫn nối vào chân Gnd và Vin trong đầu kết nối POWER.
- Bo mạch Arduino UNO có thể hoạt động từ một nguồn cung cấp bên
ngoài từ 6 đến 20V Nếu dưới 7V thì chân 5V trong mạch sẽ cung cấp íthơn 5V dẫn đến bo mạch Arduino khiến Arduino làm việc không ổn định
- Và cuối cùng, nút RESET được hiển thị như hình bên Bo mạch Arduino
làm việc như một máy tính bình thường, đôi khi bị sai và bạn có thể thiếtlập và khởi động lại bo mạch chỉ cần tới chức năng RESET này
Trang 10Hình 1.5 Nút RESET
- Giá dao động trong khoảng 45.000 – 90.000VNĐ
- Dễ chập cháy, nên dùng nguồn từ cổng USB.
- Chân 3,3 và 5V không là các chân cấp vào, cấp nguồn sai sẽ dẫn đến hỏng
board
c Ứng dụng:
- Xử lí tác vụ, tín hiệu đơn giản như điều khiển đèn LED nhấp nháy, điều khiển
xe từ xa, làm trạm đo nhiệt độ - độ ẩm và hiển thị lên màn hình LCD
- Đem đến sự dễ dàng, không tốn kém cho những ai yêu thích và muốn nghiêncứu, tương tác với môi trường thông qua các cảm biến và các cơ cấu chấp hành
- Điều khiển nhiệt độ, phát hiện chuyển động
d Sơ đồ chân thực và hình ảnh thực:
Hình 1.6 Hình ảnh thực Arduino UNO R3
Trang 11Hình 1.7 Sơ đồ chân Arduino UNO R3
*Nguồn điện cho các chân như sau:
Vin: Điện áp đầu vào cho bo mạch Arduino khi nó sử dụng một nguồn điện bên
ngoài(trái ngược với nguồn 5V từ các kết nối USB hoặc nguồn điện ổn áp khác).Bạn có thể cung cấp điện áp thông qua chân này, hoặc nếu cung cấp điện ápthông qua các jack cắm điện có thể truy cập thông qua chân này
5V: Đây là chân ra của một nguồn ổn áp 5 V trên bo mạch Bo mạch có thể
được cung cấp nguồn điện hoặc từ các jack cắm điện DC(7-12V), kết nối USB(5V), hoặc chân Vin trên bo mạch(7-12V) Việc cung cấp thông qua điện áp 5Vhoặc chân 3,3V bỏ qua mạch ổn áp có thể làm hỏng bo mạch của bạn vì vậy bạnđược khuyến cáo không nên sử dụng
3,3V: Nguồn 3,3V được tạo ra từ nguồn ổn áp trên bo mạch có khả năng cấp
dòng tối đa là 50mA
GND: Chân nối đất(Mass).
IOREF: Chân trên bo mạch Arduino cung cấp điện áp chuẩn mà vi điều khiển
hoạt động Một cấu hình bảo vệ có thể đọc các chân điện áp IOREF và chọnnguồn thích hợp cho phép dịch điện áp trên đầu ra để làm việc với 5V hoặc
Trang 12Bộ nhớ(Memory):
Vi điều khiển ATMEGA328 có dung lượng 32KB, 0,5KB được dùng choBootloader (bộ nạp khởi động) Nó cũng có 2KB SRAM và 1KB của EEPROM(EEPROM library)
Một Bootloader là một đoạn mã mà nó được lưu trữ trong một không giandành riêng cho bộ nhớ chương trình của MCU chính của các bo mạchArduino
Thông số phần cứng Arduino:
Vi điều khiển(Microcontroller): Atmega328
Điện áp hoạt động(Operating Voltage): 5V
Điện áp vào(Input Voltage) (đề nghị): 7 – 12 V
Điện áp vào giới hạn(Input Voltage limits ): 6 – 20V
Ngõ vào ra số(Digital I/O): 14(6 ngõ ra PWM)
Ngõ vào Analog(Analog Input): 6
Dòng một chiều(DC Current) cho các chân vào/ra(I/O): 40mA.
Dòng một chiều(DC Current) cho các chân 3,3V: 50mA.
Bộ nhớ flash(Flash Memory): 32KB(A.Tmega328) với 0,5KB dùng choBootloader
SRAM: 2KB(Atmega328)
EEPROM: 1KB(Atmega328)
Clock Speed: 16MHz
Thông số vi điều khiển Atmega328P-PU:
Kiến trúc: AVR 8bit
Xung nhịp lớn nhất: 20MHz
Bộ nhớ chương trình(FLASH): 32KB
Bộ nhớ EEPROM: 1KB
Trang 13 Bộ nhớ RAM: 2KB.
Điện áp hoạt động rộng: 1.8V – 5.5V
Số timer: 3 timer gồm 2 timer 8 bit và 1 timer 16 bit
Số kênh xung PWM: 6 kênh(1 timer 2 kênh)
- Arduino UNO R3 có 14 chân digital Chỉ có 2 mức điện áp 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)
Hình 1.8 Sơ đồ chân digital Arduino UNO R3
Một số chân digital có các chức năng đặc biệt như sau:
2 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 thiết bị khác thôngqua 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 Serialkhô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àynế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àmanalogWrite 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ữngchân khác
Trang 14Châ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ứcSPI 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ânanalog để đ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ếpI2C/TWI với các thiết bị khác
1.2.3 Tìm hiểu về LED 7 vạch:
a Định nghĩa:
Hiển thị 7 thanh hay hiển thị 7 đoạn là thiết bị hiển thị chữ số và ký hiệukhác, có thể là một số chữ Latin, trong các thiết bị điện tử bằng các modulchữ số hiển thị(digit) có 7 thanh(hay 7 đoạn), có thể kèm thêm dấu chấm(".") Các thanh này được điều khiển mức độ hiện ánh sáng để tạo hình rachữ số cần hiện
Trang 15Hình 1.9 Chân Anode chung
Hình 1.10 Chân Cathode chung
- Phía bên phải LED 7 vạch có Anode hay Cathode nối chung với nhautạo thành chân chung đưa ra ngoài để nối vào mạch điện 8 bóng LED
có 8 cực được chia ra thành 8 chân riêng và được nối vào mạch điện
- LED 7 vạch có Anode chung thì sẽ được nối vào đầu +Vcc, 8 chân cònlại có nhiệm vụ đóng mở dòng điện cấp vào các LED đơn, LED sángkhi tín hiệu đặt là mức 0
- LED 7 vạch có Catode chung thì sẽ được nối vào đầu GND, 8 châncòn lại có nhiệm vụ đóng mở dòng điện cấp vào các LED đơn, LEDsáng khi tín hiệu đặt là mức 1
Trang 16rãi trên thị trường hiện nay
như đồng hồ điện tử, hiển thị
các số liệu trên các loại máy
công nghiệp,… và đặc biệt là
Trang 17Hình 1.12 Sơ đồ LED 7 vạch dương chung(Common Anode) và âm chung
Trang 18chỉnh mức độ tín hiệu, dùng để chia điện áp, kích hoạt các linh kiện điện tử chủđộng như transistor, tiếp điểm cuối trong đường truyền điện và có trong rấtnhiều ứng dụng khác
Vật liệu cách ly: Cách điện
Hỗn hợp carbon: Xác định giá trị điện trở
- Kí hiệu điện trở trong mạch điện:
Hình 1.16 Kí hiệu điện trở của Mỹ(hình (a) ) và Châu Âu(hình (b) )
Ứng dụng:
- Giới hạn dòng điện để dòng điện đi vào thiết bị luôn luôn được ổn định
Trang 19- Ưu điểm:
Tạo sơ đồ nguyên lí một cách dễ dàng từ mạch cơ bản nhất cho đến cácmạch đòi hỏi phải có các bộ vi xử lí phức tạp
Có công cụ tìm ra những lỗi sai trên sơ đồ nguyên lí
Chạy mô phỏng và phân tích các tính chất trên mạch điện Các công cụ hỗtrợ cho việc chạy và mô phỏng đầy đủ và chính xác
Chỉnh sửa các đặc tính của linh kiện như tần số, nguồn,… 1 cách dễ dàng
Trang 20 Bằng công cụ RS32, Proteus có thể mô phỏng các công cụ thu và phát tínhiệu giao tiếp với máy tính giúp ta có thể điều khiển tốc độ, quá trìnhtruyền phát
Cung cấp các công cụ tạo code như read51, Arduino, … để nạp vào vi xử
lí như HEX hay dùng để xem và kiểm tra từng bước như DSI
Proteus cập nhật đầy đủ những loại linh kiện mới nhất và hình ảnh thực tếcủa từng loại sản phẩm kèm nội dung giúp ta dễ dàng lựa chọn
- Proteus giúp người không có điều kiện học kĩ thuật tại các cơ sở có thể tự học,
tự nghiên cứu, thiết kế và chạy thử để rút ra bài học và kinh nghiệm cho mình
Trang 211.4 Phần mềm IDE dùng cho Arduino:
Hình 1.18 Giao diện Arduino IDE
1.4.1 Định nghĩa:
- Phần mềm hỗ trợ phát triển tích hợp IDE(Integrated DevelopmentEnvironment) là 1 phần mềm mã nguồn mở để người dùng có thể viết vàtải code lên Arduino Chương trình chạy trên MacOS X, Linux và đượcviết bằng Java và các phần mềm mở khác
- Ưu điểm:
Chạy trên nhiều các nền tảng khác nhau tạo điều kiện cho người sửdụng có thể tải chúng ở bất cứ loại máy nào
Ngôn ngữ lập trình đơn giản và dễ hiểu đối với mọi đối tượng
Vì nó là nền tảng mở nên phần mềm và các loại module có thể chia
sẻ và có thể sử dụng trên mọi loại nền tảng
Điểm cộng cho phần mềm này là giao diện đơn giản, dễ dàng lậptrình
- Nhược điểm:
Trang 22 Chính vì việc dễ sử dụng nên rất khó cho những người dùng phầnmềm này có thể học them được những mạch đòi hỏi độ thông minh
và phức tạp hơn trong tương lai
Chi phí cho 1 bảng mạch Arduino là không hề rẻ và đòi hỏi chúng
ta phải cân nhắc nên mua hay không và hiệu quả có đáng như mongđợi không
1.4.2 Ứng dụng:
- Lập trình cho các thiết bị điện tử phục vụ đời sống như robot, máy bay khôngngười lái, game, …
- Lập trình cho hệ thống đèn giao thông
CHƯƠNG 2: THIẾT KẾ HỆ THỐNG ĐIỀU KHIỂN 2.1 Sơ đồ kết nối chân vi điều khiển:
Hình 2.1 Sơ đồ kết nối chân vi điều khiển
- Các chân Arduino đã được chú thích nối với các chân led 7 vạch và cảm biểnlm35
2.2 Sơ đồ thuật toán của hệ thống:
Trang 23Bắt đầu
Cấp nguồn
Int()(chuyển kiểu dữ liệu của 1 giá trị) Void setup(): (Chạy khi chương trình khởi động)
độ) Xuất tín hiệu Qua các chân để hiển thị number Delay(500)
Đ
S
Hình 2.2 Sơ đồ thuật toán hệ thống
2.3 Viết chương trình điều khiển:
- Int là kiểu số nguyên chính được dùng trong chương trình Arduino.