1. Trang chủ
  2. » Tất cả

Đồ Án Hệ Thống Báo Cháy và Dập Lửa Tự Động

55 25 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 55
Dung lượng 1,45 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

- Phát tín hiệu cháy nhanh chóng theo chức năng đã được đề ra;- Chuyển tín hiệu phát hiện cháy thành tín hiệu báo động rõ ràng để những người xungquanh có thể thực hiện ngay các biện phá

Trang 1

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT NAM ĐỊNH

KHOA ĐIỆN – ĐIỆN TỬ

ĐỒ ÁN CHUYÊN NGÀNH KTĐK & TĐH

NGHIÊN CỨU, THIẾT KẾ, CHẾ TẠO MÔ HÌNH HỆ THỐNG

BÁO CHÁY VÀ DẬP LỬA TỰ ĐỘNG

Người hướng dẫn: Bùi Thị Thu Hường

Sinh viên thực hiện: Nguyễn Văn Thủy

Nguyễn Quang Thuận

Nam Định, Năm 2019

Trang 2

Mục lục

Contents

Mục lục 2

DANH MỤC BẢNG VÀ HÌNH 4

LỜI MỞ ĐẦU 1

CHƯƠNG 1: TỔNG QUAN VỀ HỆ THỐNG BÁO CHÁY 2

1.1 Lịch sử của hệ thống báo cháy 2

1.2 Quy định chung về hệ thống báo cháy 2

1.3 Các thành phần của hệ thống báo cháy 3

1.3.1 Các thành phần 3

1.3.2 Giải thích chi tiết các thiết bị 4

1.4 Nguyên lý hoạt động của hệ thống báo cháy 8

1.5 Phân loại hệ thống báo cháy 8

1.5.1 Hệ báo cháy thông thường 8

1.5.2 Hệ báo cháy địa chỉ 8

1.6 Giới thiệu đề tài 9

1.6.1 Tóm tắt đề tài 9

1.6.2 Tầm quan trọng của đề tài 9

CHƯƠNG 2: GIỚI THIỆU VỀ LẬP TRÌNH VI MẠCH ARDUINO 10

2.1 Giới thiệu về arduino 10

2.2 Ngôn ngữ lập trình Arduino 14

2.2.1 Cấu trúc lệnh 15

2.2.2 Giá trị 17

2.2.3 Hàm và thủ tục 22

CHƯƠNG 3: THIẾT KẾ MẠCH 28

3.1 Sơ đồ khối hệ thống 28

3.2 Thiết kế các khối chức năng 28

1 Cảm biến phát hiện khí gas 28

2 Cảm biến nhiệt độ 30

3.2.2 Thiết bị đầu ra 32

Trang 3

1 Còi báo 32

2 Bơm nước 33

3.2.3 Khối điều khiển trung tâm 34

3.2.4 Khối cấp nguồn 35

3.3 Thiết kế mạch nguyên lý 35

3.3.1 Sơ đồ mạch nguyên lý 35

3.3.2 Cảm biến MQ2 40

3.4 Thiết kế phần mềm 41

3.4.1 Giới thiệu phần mềm 41

3.4.2 Lưu đồ giải thuật 45

3.4.3 Chương trình chính 45

CHƯƠNG 4 KẾT LUẬN VỀ ĐỀ TÀI 48

4.1 Đánh giá tổng quan về đề tài 48

4.2 Hướng phát triển của đề tài 48

TÀI LIỆU THAM KHẢO 50

Trang 4

DANH MỤC BẢNG VÀ HÌ

Hình 2 1: Bo mạch Arduino UNO R3 10

Hình 2 2:Giao diện phần mềm 13

Hình 2 3: Cách thức hoạt động của hàm Setup() và hàm loop() 14

Hình 2 4: Đoạn mã nguồn Led Blink 15

Hình 2 5: Tốc độ giao tiếp thiết lập 27

Y Hình 3 1:Sơ đồ hệ thống báo cháy và chữa cháy tự động 28

Hình 3 2:Cảm biến khí Gas 29

Hình 3 3:Cảm biến nhiệt độ DS18B20 30

Hình 3 4:Sơ đồ nối dây cho DS18B20 và Arduino Uno R3 31

Hình 3 5 : Còi báo 32

Hình 3 6 : Bơm nước 33

Hình 3 7 : Arduino Uno ( ATMEGA 328) 34

Hình 3 8:Mạch nguyên lý Arduino Uno R3 35

Hình 3 9:Vi điều khiển Arduino 36

Hình 3 10: Sơ đồ chân Arduino Uno R3 39

Hình 3 11:Sơ đồ chân MQ2 40

Hình 3 12:Sơ đồ mạch nguyên lý cảm biến MQ2 41

Hình 3 13:Phần cơ bản của phần mềm 42

Hình 3 14:Menu file 43

Hình 3 15:Menu Tools 44

Hình 3 16:Minh họa cho việc chọn cổng COM 44

Hình 3 17:Lưu đồ thuật toán 45

Trang 5

Xuất phát từ nhu cầu trên, nhóm chúng em đã chọn đề tài “Hệ thống cảnh báo

và chữa cháy tự động” Hệ thống sẽ giúp phát hiện các nguy cơ gây cháy từ sự rò rỉgas, các khí dễ cháy hoặc từ sự thay đổi nhiệt độ thông qua các cảm biến, từ đó sẽ cócác hướng xử lý như phát chuông cảnh báo hoặc ngắt điện, kích hoạt hệ thống chữacháy Do thời gian, kiến thức và sự hiểu biết còn hạn chế nên chắc chắn trong quátrình làm chúng em còn nhiều thiếu sót, nên mong quý thầy cô và các bạn chân thànhgóp ý

Xin chân thành cảm ơn cô Bùi Thị Thu Hường cùng tập thể các thầy cô trongkhoa Điện – Điện tử, Trường Đại học Sư phạm Kỹ thuật Nam Định đã giúp đỡ nhómnghiên cứu rất nhiều trong quá trình tìm hiểu, thiết kế và hoàn thành đề tài

Trang 6

CHƯƠNG 1: TỔNG QUAN VỀ HỆ THỐNG BÁO CHÁY

1.1 Lịch sử của hệ thống báo cháy

Theo thực tế hiện nay, vấn đề “cháy” và “hỏa hoạn” đang là vấn đề nóng hổitrong những năm trở lại đây với liên tiếp những vụ cháy lớn thiệt hại đáng kể về người

và của Cụ thể, theo một vài thống kê, vào năm 2013, trên cả nước xảy ra gần 2600 vụcháy nổ, làm chết 124 người và bị thương 249 người Số liệu cho thấy, số vụ cháy nổtăng 10% so với năm 2012 Trong bốn tháng đầu năm 2014, tổng cục Thống kê chobiết, trong tháng 4 - 2014, trên địa bàn cả nước đã xảy ra 232 vụ cháy, nổ, làm 7 ngườichết và 3 người bị thương, thiệt hại ước tính lên tới 77,6 tỷ đồng Tính chung bốntháng đầu năm 2014, trên địa bàn cả nước đã xảy ra hơn 1000 vụ cháy, nổ nghiêmtrọng, làm 44 người chết và 80 người bị thương Thiệt hại do cháy, nổ gây ra ước tínhkhoảng 274,8 tỷ đồng Thiệt hại do cháy, nổ, hỏa hoạn gây ra là rất lớn mà con ngườikhông thể lường trước được Ngoài nguyên nhân cháy nổ thì nguyên nhân chủ quan đểdẫn đến những thiệt hại lớn về người và của là sự thiếu kỹ năng chữa cháy rồi sự chậmtrễ trong việc liên hệ với phòng cảnh sát phòng cháy chữa cháy Mặt khác, lúc xảy racháy, phần lớn người dân mất bình tĩnh, hoảng loạn, lúng túng và khó tránh khỏinhững sai lầm Việc báo động nhanh, kịp thời một cách tự động hóa đến các cơ quanchức năng là vô cùng cấp thiết Câu hỏi đặt ra cho mọi học sinh quan tâm đến các giảipháp và đam mê nghiên cứu khoa học kỹ thuật: “Liệu có cách nào để giải quyết hiệuquả vấn đề trên?” Để trả lời câu hỏi, việc đưa ra giải pháp mới sẽ giúp đỡ và “cộngtác” với con người trong việc phòng tránh, giảm thiểu tối đa hậu quả do hỏa hoạn

Hệ thống báo cháy tự động là hệ thống gồm tập hợp các thiết bị có nhiệm vụphát hiện và báo động khi có cháy xảy ra Hệ thống này đặc biệt cần thiết trong tòa nhàcao tầng, công xưởng hay ở trong nhà ở gia đình Việc phát hiện ra các tín hiệu cháy

có thể được thực hiện tự động bởi các thiết bị hoặc bởi con người, và nhất thiết phảihoạt động liên tục trong 24/24 giờ Nhờ đó mà chúng ta có thể tránh được những mốinguy hiểm do hỏa hoạn gây ra, báo trước được những hiểm họa sắp xẩy ra (nhờ hệthống các đầu dò, đầu báo khói, báo nhiệt, báo gas… ) ,có thể dễ dàng xử lí khi xảy ra

sự cố (nhờ những thiết bị chữa cháy được thiết kế phù hợp, hoàn hảo và rất dễ sửdụng)

1.2 Quy định chung về hệ thống báo cháy

Việc thiết kế, lắp đặt hệ thống báo cháy tự động phải tuân thủ các yêu cầu,quyđịnh của các tiêu chuẩn, quy phạm hiện hành có liên quan và phải được cơ quanphòng cháy, chữa cháy có thẩm quyền chấp nhận

Hệ thống báo cháy tự động phải đáp ứng những yêu cầu sau:

Trang 7

- Phát tín hiệu cháy nhanh chóng theo chức năng đã được đề ra;

- Chuyển tín hiệu phát hiện cháy thành tín hiệu báo động rõ ràng để những người xungquanh có thể thực hiện ngay các biện pháp thích hợp;

- Có khả năng chống nhiễu tốt;

- Báo hiệu nhanh chóng và rõ ràng mọi trường hợp sự cố của hệ thống;

- Không bị ảnh hưởng bởi các hệ thống khác được lắp đặt chung hoặc riêng rẽ;

- Không bị tê liệt một phần hay toàn bộ do cháy gây ra trước khi phát hiện ra cháy;

- Hệ thống báo cháy tự động phải đảm bảo độ tin cậy Hệ thống này phải thực hiện đầy

đủ các chức năng đã được đề ra mà không xảy ra sai sót

Những tác động bên ngoài gây ra sự cố cho một bộ phận của hệ thống khôngđược gây ra những sự cố tiếp theo trong hệ thống

Hệ thống báo cháy tự động bao gồm các bộ phận cơ bản :

- Trung tâm báo cháy;

- Đầu báo cháy tự động;

Một hệ thống báo cháy tự động tiêu biểu sẽ có 3 thành phần như sau:

Trung tâm cảnh báo: Được thiết kế dạng tủ, bao gồm các thiết bị chính : bo

mạch, biến áp và ắc quy

Thiết bị đầu vào

- Cảm biến: báo khói, báo nhiệt, báo gas, báo lửa

- Công tắc khẩn (nút nhấn khẩn)

Thiết bị đầu ra

- Bảng hiển thị (bàn phím);

Trang 8

- Chuông báo động, còi báo động;

- Đèn báo động, đèn thoát hiểm;

- Bộ quay số điện thoại tự động;

- Thiết bị dập lửa

1.3.2 Giải thích chi tiết các thiết bị

+ Trung tâm báo cháy: (tủ trung tâm, trung tâm điều khiển, controlpanel)

Đây là thiết bị quan trọng nhất trong hệ thống và quyết định chất lượng cửa hệthống cung cấp năng lượng cho các đầu báo cháy năng lượng hoặc các sự cố tín hiệu

kỹ thuật, hiển thị các thông tin và phát lệnh báo động, chỉ thị nơi xảy ra cháy Trongtrường hợp cần thiết có thể truyền tín hiệu đến nơi nhận tin báo cháy Có khả năng tựkiểm tra hoạt động bình thường của hệ thống, chỉ thị sự cố của hệ thống như: Đứt dâychập mạch

+ Thiết bị đầu vào: Là thiết bị nhạy cảm với các hiện tượng của sự cháy(sự

tăng nhiệt, toả khói, phát sáng, phát lửa), và có nhiệm vụ nhận thông tin nơi xảy ra sựcháy và truyền tín hiệu đến trung tâm báo cháy

- Đầu báo khói:(Smoke detector)

Là thiết bị giám sát trực tiếp phát hiện ra dấu hiệu khói để truyển các tín hiệu vềtrung tâm xử lý Thời gian truyền tín hiệu về trung tâm báo cháy của các đầu báo khóikhông quá 30s Mật độ khói trong môi trường tại khu vực đặt đầu báo vượt quangưỡng cho phép (10%-20%) thì đầu báo sẽ phát tín hiệu về trung tâm để xử lí

Các đầu báo khói thường được bố trí tại các phòng làm việc, hội trường, các kho quỹ,các khu vực có mật độ không gian kín và các chất gây cháy thường tạo khói trước

Đầu báo khói được chia làm 2 loại chính như sau :

+ Đầu báo khói dạng điểm: Được lắp tại các khu vực mà phạm vi giám sát

nhỏ, trần nhà thấp (văn phòng, chung cư …)

- Đầu báo khói Ion: Thiết bị tạo ra các dòng ion dương và ion âm chuyển động,khi có khói, khói sẽ làm cản trở chuyển động của các ion dương và ion âm, từ đó thiết

bị sẽ gởi tín hiệu báo cháy về trung tâm xử lý

- Đầu báo khói Quang (photo): Thiết bị bao gồm một cặp đầu báo (một đầu pháttín hiệu, một đầu thu tín hiệu) bố trí đối nhau, khi có khói xen giữa 2 đầu báo, khói sẽlàm cản trở đường truyền tín hiệu giữa 2 đầu báo, từ đó đầu báo sẽ gởi tín hiệu báocháy về trung tâm xử lý

Trang 9

+ Đầu báo khói dạng Beam: Gồm một cặp thiết bị được lắp ở hai đầu của khu

vực cần giám sát Thiết bị chiếu phát chiếu một chùm tia hồng ngoại, qua khu vựcthuộc phạm vi giám sát rồi tới một thiết bị nhận có chứa một tế bào cảm quang cónhiệm vụ theo dõi sự cân bằng tín hiệu của chùm tia sáng Đầu báo này hoạt động trênnguyên lý làm mờ ánh sáng đối nghịch với nguyên lý tán xạ ánh sáng (cảm ứng khóingay tại đầu báo)

- Đầu báo khói loại Beam có tầm hoạt động rất rộng (15m x 100m), sử dụngthích hợp tại những khu vực mà các loại đầu báo khói quang điện tỏ ra không thíchhợp, chẳng hạn như tại những nơi mà đám khói tiên liệu là sẽ có khói màu đen

Hơn nữa đầu báo loại Beam có thể đương đầu với tình trạng khắc nghiệt vềnhiệt độ, bụi bặm, độ ẩm quá mức, nhiều tạp chất,… Do đầu báo dạng Beam có thể đặtđằng sau cửa sổ có kính trong, nên rất dễ lau chùi, bảo quản

- Đầu báo dạng Beam thường được lắp trong khu vực có phạm vi giám sát lớn,trần nhà quá cao không thể lắp các đầu báo điểm (các nhà xưởng, …)

- Đầu báo nhiệt : (Heat detector)

Dùng để dò nhiệt độ của môi trường trong phạm vi được bảo vệ, khi nhiệt độcủa môi trường không thoả mãn những qui định của các đầu báo nhiệt do nhà sản xuấtqui định, thì nó sẽ phát tín hiệu báo động gửi về trung tâm xủ lí

Các đầu báo nhiệt được lắp đặt ở những nơi không thể lắp được đầu báo khói(nơi chứa thiết bị máy móc, Garage, các buồng điện động lực, nhà máy, nhà bếp,…)

+ Đầu báo nhiệt cố định : Là loại đầu báo bị kích hoạt và phát tín hiệu báođộng khi cảm ứng nhiệt độ trong bầu không khí chung quanh đầu báo tăng lên ở mức

độ nhà sản xuất quy định (57, 70, 100…)

+ Đầu báo nhiệt gia tang: Là loại đầu báo bị kích hoạt và phát tín hiệu báođộng khi cảm ứng hiện tượng bầu không khí chung quanh đầu báo gia tăng nhiệt độđột ngột khoảng 9/phút

+ Đầu báo ga (Gas Detector): Là thiết bị trực tiếp giám sát, phát hiện dấu hiệu

có gas khi tỉ lệ gas tập trung vượt quá mức 0.503% (Propane/ Butane) và gửi tín hiệubáo động về trung tâm xử lý

Các đầu báo gas thường được bố trí trong khoảng gần nơi có gas như các phòng

vô gas hay các kho chứa gas Các đầu báo gas được lắp trên tường, cách sàn nhà từ 16cm, tuyệt đối không được phép lắp đặt dưới sàn nhà

Trang 10

10-+ Đầu báo lửa (Flame Detector): Là thiết bị cảm ứng các tia cực tím phát ra từngọn lửa, nhận tín hiệu, rồi gởi tín hiệu báo động về trung tâm xử lý khi phát hiện lửa.

Được sử dụng chủ yếu ở các nơi xét thấy có sự nguy hiểm cao độ, những nơi

mà ánh sáng của ngọn lửa là dấu hiệu tiêu biểu cho sự cháy (ví dụ như kho chứa chấtlỏng dễ cháy)

Đầu báo lửa rất nhạy cảm đối với các tia cực tím và đã được nghiên cứu tỉ mỉ

để tránh tình trạng báo giả Đầu dò chỉ phát tín hiệu báo động về trung tâm báo cháykhi có 2 xung cảm ứng tia cực tím sau 2 khoảng thời gian, mỗi thời kỳ là 5s

- Công tắc khẩn cấp ( Emergency breaker): Được lắp đặt tại những nơi dễ

thấy của hành lang, các cầu thang để xử dụng khi cần thiết Thiết bị này cho phếpngười sử dụng chủ động truyền thông tin báo cháy bằng cách nhấn hoặc kéo vào côngtắc khẩn, báo động khẩn cấp cho mọi người đang hiện diện trong khu vực đó biết để cóbiện pháp xử lý hoả hoạn và di chuyển ra khỏi khu vực nguy hiểm bằng các lối thoáthiểm Gồm có các loại công tắc khẩn như sau:

-Khẩn tròn, vuông

-Khẩn kính vỡ (break glass)

-Khẩn giật

+ Thiết bị đầu ra: Nhận tín hiệu từ trung tâm báo cháy truyền đến và có tính

năng phát đi bằng âm thanh (chuông, còi), bằng tín hiệu phát sáng (đèn) giúp mọingười nhận biết đang có hiện tượng cháy xảy ra

+Bảng hiển thị phụ: Hiển thị thông tin các khu vực xảy ra sự cố từ trung tâm

báo cháy truyền đến, giúp nhận biết tình trạng nơi xảy ra sự cố để xử lý kịp thời

+ Chuông báo cháy: Được lắp đặt tại phòng bảo vệ, các phòng có nhân viên

trực ban, hành lang, cầu thang hoặc những nơi đông người qua lại nhằm thông báo chonhững người xung quanh có thể biết được sự cố đang xảy ra để có phương án xử lý, ditản kịp thời

Khi xảy ra sự cố hỏa hoạn, chuông báo động sẽ phát tín hiệu báo động giúp chonhân viên bảo vệ nhận biết và thông qua thiết bị theo dõi sự cố hỏa hoạn (bảng hiển thịphụ) sẽ biết khu vực nào xảy ra hỏa hoạn, từ đó thông báo kịp thời đến các nhân viên

có trách nhiệm phòng cháy chữa cháy khắc phục sự cố hoặc có biện pháp xử lý thíchhợp

Trang 11

+ Còi báo cháy : Có tính năng và vị trí lắp đặt giống như chuông báo cháy, tuy

nhiên còi được sử dụng khi khoảng cách giữa nơi phát thông báo đến nơi cần nhậnthông báo báo động quá xa

+ Đèn : Có công dụng phát tín hiệu báo động, mỗi lọai đèn có chức năng khác

nhau và được lắp đặt ở tại các vị trí thích hợp để phát huy tối đa tính năng của thiết bịnày Gồm có các lọai đèn:

+ Đèn chỉ lối thoát hiểm (Exit Light): Được đặt gần các cầu thang của mỗitầng lầu, để chỉ lối thoát hiểm trong trường hợp có cháy Tự động chiếu sáng trongtrường hợp mất nguồn AC

- Đèn báo cháy (Corridor Lamp): Được đặt bên trên công tắc khẩn của mỗitầng Đèn báo cháy sẽ sáng lên mỗi khi công tắc khẩn hoạt động, đồng thời đây cũng

là đèn báo khẩn cấp cho những người hiện diện trong tòa nhà được biết Điều này có ýnghĩa quan trọng, vì trong lúc bối rối do sự cố cháy, thì người sử dụng cần phân biệt rõràng công tác khẩn nào còn hiệu lực được kích hoạt máy bơm chữa cháy

- Đèn báo phòng (Room Lamp): Được lắp đặt trước cửa mỗi phòng giúp nhậnbiết phòng nào có sự cố một cách dễ dàng và nhanh chóng

- Đèn chiếu sáng trong trường hợp khẩn (Emergency Light) : Khi có báocháy, thao tác đầu tiên là phải cúp điện Bây giờ đèn chiếu sáng này sẽ tự động bậtsáng (nhờ có bình điện dự phòng battery), nó giúp cho mọi người dễ dàng tìm đườngthoát hiểm, hoặc giúp cho các nhân viên có trách nhiệm nhanh chóng thi hành phận sự.Hoặc trong trường hợp mất điện đột ngột do có sự cố về điện, đèn Emergency cũng tỏ

ra hữu hiệu

+ Bộ quay số điện thoại tự động : Được lắp trong trung tâm báo cháy, khi

nhận được thông tin báo cháy từ trung tâm thiết bị sẽ tự động quay số điện thoại đãđược cài đặt trước để thông báo đến người chịu trách nhiệm chính Thông thường quayđược từ 3 tới hơn 10 số

+ Bàn phím (Keypad, Bàn phím điều khiển): Là phương tiện để điều khiển

mọi hoạt động của hệ thống Qua bàn phím, bạn có thể điều khiển hoạt động theo ýmuốn một cách dễ dàng, như nhập lệnh đưa hệ thống vào chế độ giám sát, hoặc có thểngưng chế độ giám sát một số khu vực trong toàn bộ hệ thống, hoặc có thể lập trình để

hệ thống tự động chuyển sang chế độ giám sát vào một thời gian nhất định trong ngàyđối với một số khu vực nào đó

Trang 12

+ Modul địa chỉ: Modul địa chỉ được sử dụng trong hệ thống báo cháy địa chỉ,

nó có khả năng cho biết vị trí chính xác nơi xảy ra sự cố cháy trong một khu vực đangbảo vệ

1.4 Nguyên lý hoạt động của hệ thống báo cháy

Quy trình hoạt động của hệ thống báo cháy là một quy trình khép kín Khi cóhiện tượng về sự cháy (chẳng hạn như nhiệt độ gia tăng đột ngột, có sự xuất hiện của khói hoặc các tia lửa) các thiết bị đầu vào (đầu báo, công tắc khẩn) nhận tín hiệu vàtruyền thông tin của sự cố về trung tâm báo cháy Tại đây trung tâm sẽ xử lý thông tinnhận được, xác định vị trí nơi xảy ra sự cháy (thông qua các zone) và truyền thông tinđến các thiết bị đầu ra (bảng hiển thị phụ, chuông, còi, đèn), các thiết bị này sẽ phát tínhiệu âm thanh, ánh sáng để mọi người nhận biết khu vực đang xảy ra sự cháy và kíchhoạt hệ thống dập lửa để xử lý kịp thời

1.5 Phân loại hệ thống báo cháy

1.5.1 Hệ báo cháy thông thường

Với tính năng đơn giản, giá thành không cao, hệ thống báo cháy thông thường chỉ thích hợp lắp đặt tại các khu vực có diện tích vừa hoặc nhỏ (khoảng vài ngàn m2),

số lượng các phòng không nhiều (vài chục phòng); lắp đặt cho những nhà, xưởng nhỏ… Các thiết bị trong hệ thống được đấu nối tiếp với nhau và nối tiếp với trung tâm báo cháy, nên khi xảy ra sự cố trung tâm chỉ có thể nhận biết khái quát và hiển thị toàn

bộ khu vực (zone) mà hệ thống giám sát (chứ không cho biết chính xác vị trí từng đầu báo, từng địa điểm có cháy) Điều này làm hạn chế khả năng xử lý của nhân viên giám sát

1.5.2 Hệ báo cháy địa chỉ

Với tính năng kỹ thuật cao, hệ thống báo cháy địa chỉ dùng để lắp đặt tại cácmặt bằng rộng lớn (vài chục ngàn m2), được chia ra làm nhiều khu vực độc lập, cácphòng trong từng khu vực riêng biệt với nhau Từng thiết bị trong hệ thống được đấutrực tiếp vào trung tâm báo cháy giúp trung tâm nhận tín hiệu xảy ra cháy tại từng khuvực, từng địa điểm một cách rõ ràng, chính xác Từ đó trung tâm có thể nhận biếtthông tin sự cố một cách chi tiết và được hiển thị trên bảng hiển thị phụ giúp nhân viêngiám sát có thể xử lý sự cố một cách nhanh chóng

Trang 13

1.6 Giới thiệu đề tài

có các hướng xử lý như phát chuông cảnh báo, đèn cảnh báo hoặc ngắt điện, kíchhoạt hệ thống chữa cháy Đề tài còn giúp người dân có thể tự tạo ra một thiết bịcảnh báo đơn giản nhưng hiệu quả cho gia đình mình

Thiết bị đầu vào: cảm biến khói , cảm biến gas ,cảm biến nhiệt độ

Thiết bị đầu ra: Loa báo động, Đèn báo động, bơm nước

1.6.2 Tầm quan trọng của đề tài

Đề tài này nhằm tìm ra một phương án mới, để giải quyết các thực trạng cháy

nổ hỏa hoạn Với những chức năng của nó, có thể đem lại độ an toàn tuyệt đối chongười sử dụng gas nói riêng và người dân nói chung Giúp người dùng có thể yêntâm trong lúc sinh hoạt

Do đó, công trình nghiên cứu mang tính cấp thiết Vì thế, kết quả nghiên cứu

có giá trị thực tiễn, có thể áp dụng ngay cho các hộ gia đình, nhà máy, xí nghiệp Ýnghĩa lý luận của đề tài là có thể tạo ra một hướng đi mới trong công nghệ cảm biến

và giúp cho người dân có thể tự tạo ra một thiết bị đơn giản nhưng đem lại hiệu quảtuyệt đối riêng cho mình

Trang 14

CHƯƠNG 2: GIỚI THIỆU VỀ LẬP TRÌNH VI MẠCH ARDUINO2.1 Gi i thi u v arduino ớ ệ ề

Arduino là bo mạch vi điều khiển mạch đơn được sử dụng để làm thiết bị điện

tử cho các dự án đa lĩnh vực theo cách tiếp cận dễ dàng đối với người sử dụng Phầncứng bao gồm một bảng mạch điện tử phần cứng dạng nguồn mở được thiết từ bộ vi

xử lý 8-bit Atmel AVR , hoặc 32-bit Atmel ARM Phần mềm cho phần cứng này baogồm một trình biên dịch ngôn ngữ lập trình chuẩn và một bộ nạp khởi động, để có thểthực hiện các lệnh trên bộ vi điều khiển

Các bảng mạch Arduino có thể được mua trước khi lắp ráp hoặc bộ dụng cụ tựmình làm DIY Thông tin thiết kế phần cứng có sẵn cho những người muốn tự tay lắpráp một bảng mạch Arduino Người ta ước tính vào giữa năm 2011 có hơn 300.000 bộbảng mạch Arduino chính thức đã được sản xuất thương mại

Hình 2 1: Bo mạch Arduino UNO R3

Sơ lược lịch sử

Arduino được khởi đầu vào năm 2005 từ một dự án cho sinh viên tại Viện Thiết

kế Tương tác Ivrea tại Ivrea, Italia Tại thời điểm của chương trình đó sinh viên thường

sử dụng bo mạch “BASIC Stamp” có chi phí tới 100$, xem ra là đắt đôi với sinh viên.Một trong những người sáng lập, Massimo Banzi, hiện đang là giảng viên tại Ivrea

Một nghiên cứu về phần cứng đã đóng góp vào một thiết kế hệ thống kết nốiđiện dẫn của sinh viên người Colombia tên là Hernando Barragan Sau khi các nềntảng hệ thống điện dẫn đã được hoàn tất, các nhà nghiên cứu làm việc để làm cho hệ

Trang 15

thống đó gọn nhẹ hơn, rẻ hơn, và có sẵn cho cộng đồng nguồn mở Trường này cuốicùng đã đóng cửa, do đó, các nhà nghiên cứu, trong số họ là David Cuartielles, đã thúcđẩy ý tưởng phát triển về Arduino.

Phần cứng

Một bảng mạch Arduino bao gồm một bộ vi điều khiển Atmel AVR 8-bit và cácthành phần bổ sung để tạo điều kiện lập trình và tích hợp cách mạch điện khác vớibảng mạch Arduino Một khía cạnh quan trọng của Arduino dựa trên tiêu chuẩn kết nốithống nhất, cho bo mạch CPU được kết nối với một loạt modul chuyển đổi tiện ích bổsung được gọi là Shield (bộ chắn) Một số Shield giao tiếp bo mạch Arduino trực tiếp

từ các chân nối khác nhau, nhưng Shield được định địa chỉ riêng biệt thông qua bus kếtnối nối tiếp I² C, cho phép Shield được xếp chồng lên nhau và được sử dụng song songnhau Arduino chuẩn sử dụng megaAVR là tổ chợp chip, đặc biệt là Atmega8 ,Atmega168, Atmega328, Atmega1280, và Atmega2560 Một số ít các bộ vi xử lý khác

đã được sử dụng tương thích chuẩn Arduino Hầu hết bo mạch bao gồm một bộ điều

áp tuyến tính 5V và một bộ dao động tinh thể 16 MHz (hoặc cộng hưởng gốm trongmột số biến thể dao động), mặc dù một số thiết kế như LilyPad chạy ở 8 MHz và chia

sẻ bộ điều áp trên bo mạch do hạn chế thông số định dạng thể Bộ vi điều khiển củaArduino cũng được lập trình trước nhờ một bộ nạp khởi động theo cách đơn giản là tảilên các chương trình vào bộ nhớ Flash trên chip, so với các thiết bị khác thường cầnmột lập trình viên bên ngoài hỗ trợ khi sử dụng

Ở cấp độ khái niệm, khi sử dụng xếp chồng phần mềm Arduino, tất cả bo mạchđược lập trình nhờ kết nối nối tiếp RS-232, nhưng cách này được thực hiện khác nhautheo từng phiên bản của phần cứng Bảng mạch Arduino nối tiếp chứa một mạch dịchcấp để chuyển đổi giữa tín hiệu cấp RS-232 và cấp TTL Bảng mạch Arduino hiện nayđược lập trình thông qua cổng USB, cài đặt này sử dụng chip chuyển đổi USB sangnối tiếp như FTDI FT232 Một số biến thể, chẳng hạn như Arduino Mini và Boarduinokhông chính thức, sử dụng một bảng mạch có thể tháo rời chuyển đổi USB sang nốitiếp hoặc cáp, Bluetooth hoặc các phương pháp khác (Khi được sử dụng với các công

cụ vi điều khiển truyền thống thay vì Arduino IDE, lập trình AVR ISP chuẩn phải được

sử dụng)

Bảng mạch Arduino luôn cho thấy hầu hết các chân nối I/O pins của vi điềukhiển để sử dụng bởi các mạch khác Các Diecimila, Duemilanove , và UNO hiện tạicung cấp 14 chân I/O số, sáu trong số đó có thểtạo tiến hiệu điều biến độ rộng xung, vàsáu đầu vào tương tự Các chân nằm ở mặt trên bo mạch, thông qua đầu chân cái 0.10-inch (2,5 mm) Một số Shield ứng dụng nhúng plug-in cũng đã có ở dạng thương mại

Trang 16

Bo mạch Arduino Nano và Bare Bones tương thích Arduino có thể cung cấp cácchân cắm đực ở mặt duwois của bo mạch để kết nối các bo mạch khác không cần hàn.

Có rất nhiều bo mạch tương thích Arduino và bo mạch dẫn xuất từ Arduino.Một số có chức năng tương đương với Arduino và có thể được sử dụng thay thế lẫncho nhau Phần lớn là Arduino cơ bản với việc bổ sung các trình điều khiển đầu ra phổbiến, thường sử dụng trong giáo dục cấp trường để đơn giản hóa việclắp ráp các xe đẩy

và robot nhỏ Những biến thể khác là tương đương về điện nhưng thay đổi tham sốdạng (form-factor), đôi khi cho phép tiếp tục sử dụng các Shield, đôi khi không Một

số biến thể sử dụng bộ vi xử lý hoàn toàn khác, với mức độ khác nhau về tính tươngthích

Shield

Arduino và bảng mạch Arduino tương thích sử dụng các Shield – bo mạchmạch điện được cắm vào bo mạch Arduino chính thường thông qua các đầu chân cắmtrên bo mạch Arduino chủ Shield có thể cung cấp chức năng điều khiển động cơ, GPS,kết nối mạng thernet, màn hình LCD, hoặc bảng mạch khung (tạo mẫu) Một số Shieldcũng có thể được chế tạo để thực hiện DIY

Lược sử phát triển

Đội phát triển cốt lõi Arduino gồm Massimo Banzi, David Cuartielles, TomIgoe , Gianluca Martino, David Mellis và Nicholas Zambetti Massimo Banzi đã đượcphỏng vấn trên tuần san FLOSS ngày 21 tháng 3 năm 2009 tập trên mạng TwiT.tv,trong đó ông đã thảo luận về lịch sử và mục tiêu của dự án Arduino Ông cũng có buổi nói chuyện tại Hội nghị TEDGlobal 2012, nơi mà ông vạch ra sử dụng khác nhau củabảng mạch Arduino trên thế giới

Arduino là phần cứng nguồn mở: các thiết kế tham khảo phần cứng Arduinođược phân phối theo giấy phép Creative Commons Attribution Share-Alike 2.5 và có

Trang 17

sẵn trên trang web của Arduino Bố trí và sản xuất tập tin cho một số phiên bản củaphần cứng Arduino cũng có sẵn Mã nguồn cho IDE có sẵn và phát hành theo giấyphép GNU General Public License, phiên bản 2.

Mặc dù thiết kế phần cứng và phần mềm là tự do sẵn có theo giấy phépcopyleft, các nhà phát triển đã yêu cầu tên “Arduino” được độc quyền sản phẩm chính thức và không được sử dụng cho sản phẩm phái sinh mà không được phép Văn bảnchính sách chính thức về việc sử dụng các tên Arduino nhấn mạnh rằng dự án là mởcửa cho kết hợp công việc của người khác vào các sản phẩm chính thức Một số sảnphẩm tương thích với Arduino phát hành thương mại đã tránh được “Arduino” tênbằng cách sử dụng tên các biến thể “-Duino “

Hình 2 2:Giao diện phần mềm

Chương trình Arduino được viết bằng C hoặc C++ Arduino IDE đi kèm vớimột thư viện phần mềm được gọi là "Wiring" từ dự án lắp ráp ban đầu, cho hoạt động đầu vào/đầu ra phổ biến trở nên dễ dàng hơn nhiều Người sử dụng chỉ cần định nghĩahai hàm để thực hiện một chương trình điều hành theo chu kỳ :

setup() : hàm chạy một lần duy nhất vào lúc bắt đầu của một chương trình dùng đểkhởi tạo các thiết lập

loop() : hàm được gọi lặp lại liên tục cho đến khi bo mạch được tắt đi

Trang 18

Khi các bạn bật điện bảng mạch Arduino, reset hay nạp chương trình mới, hàmsetup() sẽ được gọi đến đầu tiên Sau khi xử lý xong hàm setup(), Arduino sẽ nhảy đến hàm loop() và lặp vô hạn hàm này cho đến khi bạn tắt điện bo mạch Arduino Chutrình đó có thể mô tả trong hình dưới đây:

Hình 2 3: Cách thức hoạt động của hàm Setup() và hàm loop()

Arduino IDE sử dụng GNU toolchain và AVR libc để biên dịch chương trình,

và sử dụng avrdude để tải lên các chương trình vào bo mạch chủ

Do nền tảng Arduino sử dụng vi điều khiển Atmel, môi trường phát triển củaAtmel, AVR Studio hoặc Atmel Studio mới hơn, cũng có thể được sử dụng để pháttriển phần mềm cho các Arduino

2.2 Ngôn ng l p trình 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ônngữ này dựa trên ngôn ngữ Wiring được viết cho phần cứng nói Và Wiring lại là mộtbiế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++

Người dùng thì gọi nó là “ngôn ngữ Arduino”, 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ễ đối với người dùng

Để 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áttriể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 nàycòn được gọi là Arduino IDE

Trang 19

Hình 2 4: Đoạn mã nguồn Led Blink 2.2.1 Cấu trúc lệnh

 setup ( Những lệnh trong setup() sẽ được chạy khi chương trình của bạn khởiđộng Bạn có thể sử dụng nó để khai báo giá trị của biến, khai báo thư viện,thiết lập các thông số,… )

 loop ( Sau khi setup() chạy xong, những lệnh trong loop() được chạy Chúng sẽlặp đi lặp lại liên tục cho tới khi nào bạn ngắt nguồn của board Arduino mớithôi )

Cấu trúc điều khiển

 if (nếu)

 if else (nếu…thì)

 switch / case (Giống như if, switch / case cũng là một dạng lệnh nếu thì, nhưng

nó được thiết kế chuyên biệt để bạn xử ý giá trị trên một biến chuyên biệt.)

 for (Hàm for có chức năng làm một vòng lặp)

Trang 20

 while (Vòng lặp while là một dạng vòng lặp theo điều kiện, mình không thể biếttrước số lần lặp cua nó, nhưng mình quản lý lúc nào thì nó ngừng lặp)

 break (chức năng dừng ngay lập tức một vòng lặp (do, for, while) chứa nó trong

đó Khi dừng vòng lặp, tất cả những lệnh phía sau break và ở trong vòng lặpchịu ảnh hưởng của nó sẽ bị bỏ qua)

 continue (chức năng bỏ qua một chu kì lặp trong một vòng lặp (for, do, while)chứa nó trong đó Khi gọi lệnh continue, những lệnh sau nó và ở trong cùngvòng lặp với nó sẽ bị bỏ qua để thực hiện những chu kì lặp kế tiếp.)

 return (có nhiệm vụ trả về một giá trị (cùng kiểu dữ liệu với hàm) mà nó đượcgọi)

 goto (Nó có nhiệm vụ tạm dừng chương trình rồi chuyển đến một nhãn đã đượcđịnh trước, sau đó lại chạy tiếp chương trình!)

 #include (cho phép chương trình của bạn tải một thư viện đã được viết sẵn Tức

là bạn có thể truy xuất được những tài nguyên trong thư viện này từ chươngtrình của mình Nếu bạn có một đoạn code và cần sử dụng nó trong nhiềuchương trình, bạn có thể dùng #include để nạp đoạn code ấy vào chương trìnhcủa mình, thay vì phải chép đi chép lại đoạn code ấy.)

Trang 21

Trong điện tử, HIGH là một mức điện áp lớn hơn 0V Giá trị của HIGH được

định nghĩa khác nhau trong các mạch điện khác nhau, nhưng thường được quyước ở các mức như 1.8V, 2.7V, 3.3V 5V, 12V, )

LOW (Trong lập trình trên Arduino, LOW là một hằng số có giá trị nguyên là

Trang 22

là 1 Trong điện tử, LOW là mức điện áp 0V hoặc gần bằng 0V, giá trị này

được định nghĩa khác nhau trong các mạch điện khác nhau, nhưng thường là 0Vhoặc hơn một chút xíu.)

INPUT/ INPUT_PULLUP/ OUTPUT (cấu hình Pin)

 LED_BUILTIN (là một hằng số thay thế cho việc tuyên bố một biến có giá trịđiều khiển on-board LED Hầu hết trên các mạch Arduino, chúng có giá trị là13)

TRUE (true là một hằng logic Bạn cũng có thể HIỂU true là một hằng số

nguyên mang giá trị là 1 Trong các biểu thức logic, một hằng số hay giá trị của

một biểu thức khác 0 được xem như là mang giá trị true )

FALSE ( false là một hằng logic có giá trị là phủ định của true (và ngược lại), tức là (!true) = false Bạn cũng có thể hiểu false là một hằng số nguyên

mang giá trị là 0 Trong các biểu thức logic, một hằng số hay giá trị của một

biểu thức bằng 0 được xem như là bằng false)

 Hằng số nguyên ( Hằng số nguyên là những con số được sử dụng trực tiếp trongchương trình Theo mặc định, những con số này có kiểu là int )

 Hằng số thực ( Khi bạn viết một biểu thức tính toán, giá trị của biểu thức này sẽđược tính ra và trình biên dịch sẽ thay thế biểu thức này bằng một hằng số thực

đã tính ra được Điều đó gợi ý rằng trong những chương trình lớn, để giảm thờigian biên dịch, bạn nên tính trước giá trị của những biểu thức thay vì bắt trìnhbiên dịch tính toán )

Kiểu dữ liệu

 VOID (là một từ khóa chỉ dùng trong việc khai báo một function Nhữngfunction được khai báo với "void" sẽ không trả về bất kì dữ liệu nào khi đượcgọi.)

BOOLEAN (Một biến được khai báo kiểu boolean sẽ chỉ nhận một trong hai

giá trị: true hoặc false Và bạn sẽ mất 1 byte bộ nhớ cho điều đó.)

 CHAR

+ Kiểu dữ liệu này là kiểu dữ liệu biểu diễn cho 1 KÝ TỰ (nếu bạn cần biểu diễnmột chuỗi trong chương trình Arduino - bạn cần sử dụng kiểu dữ liệu String) Kiểu dữliệu này chiếm 1 byte bộ nhớ!

+ Kiểu char chỉ nhận các giá trị trong bảng mã ASCII

Trang 23

Kiểu char được lưu dưới dạng 1 số nguyên byte có số âm (có các giá trị từ 127 128)

- UNSIGNED CHAR

+ Kiểu dữ liệu này là kiểu dữ liệu biểu diễn cho 1 KÝ TỰ (nếu bạn cần biểu diễnmột chuỗi trong chương trình Arduino - bạn cần sử dụng kiểu dữ liệu String) Kiểu dữliệu này chiếm 1 byte bộ nhớ!

+ Kiểu char chỉ nhận các giá trị trong bảng mã ASCII

+ Kiểu unsigned char biểu hiệu một số nguyên byte không âm (giá trị từ 0 - 255)

 BYTE (Là một kiểu dữ liệu biểu diễn số nguyên nằm trong khoảng từ 0 đến255.)

 WORD (kiểu số nguyên 16 bit không âm (chứa các giá trị từ 0 đến 65535), và

nó chiếm 2 byte bộ nhớ!)

 LONG

+Là một kiểu dữ liệu mở rộng của int Những biến có kiểu long có thể mang giá trị

32bit từ -2,147,483,648 đến -2,147,483,647 Bạn sẽ mất 4 byte bộ nhớ cho một biếnkiểu long

+Khi tính toán với số nguyên (biến kiểu int), bạn phải thêm hậu tố "L" phía sau các

số nguyên kiểu int để chuyển chúng sang kiểu long Việc tính toán (cộng, trừ, nhân, )

giữa 2 số thuộc 2 kiểu dữ liệu khác nhau là không được phép

 UNSIGNED LONG (Kiểu unsigned long là kiểu số nguyên nằm trong khoảng

từ 0 đến 4,294,967,295 (0 đến 232 - 1) Mỗi biến mang kiểu dữ liệu này chiếm 4byte bộ nhớ.)

Trang 24

+Là kiểu số nguyên chính được dùng trong chương trình Arduino Kiểu int chiếm 2byte bộ nhớ !

+Trên mọi mạch Arduino nó đều chiếm 4 byte bộ nhớ và biểu thị giá trị trongkhoảnf -32,768 đến 32,767 (-215 đến 215-1) (16 bit)

 FLOAT

+Để định nghĩa 1 kiểu số thực, bạn có thể sử dụng kiểu dữ liệu float Một biếndùng kiểu dữ liệu này có thể đặt một giá trị nằm trong khoảng -3.4028235E+38 đến3.4028235E+38 Nó chiếm 4 byte bộ nhớ

+Với kiểu dữ liệu float bạn có từ 6-7 chữ số có nghĩa nằm ở bên mỗi bên dấu

"." Điều đó có nghĩa rằng bạn có thể đặt một số thực dài đến 15 ký tự (bao gồm dấu )

 STRING (chuỗi kí tự biểu diễn bằng array)

 STRING(object)

Chuyển đổi kiểu dữ liệu

 CHAR():

+ Hàm char() có nhiệm vụ chuyển kiểu dữ liệu của một giá trị về kiểu char

 BYTE(): Hàm byte() có nhiệm vụ chuyển kiểu dữ liệu của một giá trị vềkiểu byte

 INT() : Hàm int() có nhiệm vụ chuyển kiểu dữ liệu của một giá trị về kiểu int

 WORD() : Hàm word() có nhiệm vụ chuyển kiểu dữ liệu của một giá trị vềkiểu word Hoặc ghép 2 giá trị thuộc kiểu bytethành 1 giá trị kiểu word

 LONG() : Hàm long() có nhiệm vụ chuyển kiểu dữ liệu của một giá trị vềkiểu long

Trang 25

 FLOAT() : Hàm float() có nhiệm vụ chuyển kiểu dữ liệu của một giá trị vềkiểu float

Phạm vi của biến và phân loại

 Phạm vi hiệu lực của biến

Ngôn ngữ Arduino được xây dựng trên ngôn ngữ lập trình C Các biến củaArduino, cũng như C, có một phạm trù được gọi là phạm vi biến Điều này trái ngượcvới ngôn ngữ BASIC, ở ngôn ngữ BASIC này, mọi biến đều là biến toàn cục

Một biến toàn cục có nghĩa là, tất cả mọi nơi trong chương trình có thể đọcđược và thay đổi dữ liệu của nó mà không cần sử dụng biện pháp hỗ trợ nào Còn biếncục bộ thì chỉ cỏ có hàm khai báo nó (hoặc các hàm con của hàm đó) có thể thấy vàthay đổi được giá trị Ví dụ, mọi biến nằm ngoài các hàm (như setup() hay loop()) làbiến toàn cục, còn nằm bên trong các hàm là biến cục bộ của hàm đó

Khi chương trình của bạn dần trở nên lớn hơn (về kích thước file lập trình) hoặcphức tạp hơn thì bạn nên dùng các biến cục để trong các hàm để dễ dàng quản lý (thaycho việc khai báo hết toàn bộ là biến toàn cục) Biến cục bộ rất có ích trong việc này vìchỉ có mỗi hàm khai báo nó (và các hàm con) mới sử dụng được nó Điều này sẽ ngănchặn các lỗi về logic sẽ xảy ra nếu một hàm thay đổi giá trị của một hàm khác Ngoài

ra, sau khi đoạn chương trình con kết thúc, các biến cục bộ sẽ được tự động giải phóngkhỏi bộ nhớ, chương trình chính sẽ có thêm vùng nhớ cho việc xử lý

Biến cục độ khá hữu ích cho việc khai báo biến của vòng lặp vì chỉ có vòng lặpmới dùng được nó

 STATIC - biến tĩnh

Biến tĩnh là biến sẽ được tạo ra duy nhất một lần khi gọi hàm lần đầu tiên và nó

sẽ không bị xóa đi để tạo lại khi gọi lại hàm ấy Đây là sự khác biệt giữa biến tĩnh vàbiến cục bộ

Biến tĩnh là loại biến lưỡng tính, vừa có tính chất của 1 biến toàn cục, vừa mantính chất của 1 biến cục bộ:

+ Tính chất 1 biến toàn cục: biến không mất đi khi chương trình con kết thúc,

nó vẫn nằm trong ô nhớ của chương trình và được tự động cập nhật khi chương trìnhcon được gọi lại Giống như 1 biến toàn cục vậy

+ Tính chất 1 biến cục bộ: biến chỉ có thể được sử dụng trong chương trình con

mà nó được khai báo

Để khai báo bạn chỉ cần thêm từ khóa "static" trước khai báo biến

Trang 26

 CONST - biến hằng

Với một từ khóa "const" nằm trước một khai báo biến, bạn sẽ làm cho biến nàythành một biến chỉ có thể đọc "read-only" Nếu bạn có "lỡ lầm" thay đổi giá trị củamột biến hằng thì đừng lo lắng, chương trình dịch sẽ báo lỗi cho bạn!

Các biến có từ khóa const vẫn tuân theo phạm vi hiệu lực của biến Ngoài cách

sử dụng const để khai báo một biến hằng, ta còn có thể sử dụng #define để khai báo

một hằng số hoặc hằng chuỗi Tuy nhiên sử dụng const được ưa chuộng hơn trong lập

trình, vì khả năng "tuân theo" phạm vi hiệu lực của biến!

 VOLATILE

Một biến được nên khai báo với từ khóa volatile nếu giá trị của nó có thể bị tác

động bởi các yếu tố nằm ngoài sự kiểm soát của chương trình đang chạy, nói đơn giản

hơn là giá trị của biến thay đổi một cách không xác định Các biến kiểu volatile thường

mà sẽ đưa biến lên lưu trữ ở RAM để xử lí tạm thời thay vì lưu trữ ở các thanh ghi

(register) bị ảnh hưởng bởi interrupts Những biến này thuộc kiểu số 2 kể trên.

Hàm hỗ trợ

 SIZEOF() : Hàm sizeof() có nhiệm vụ trả về số byte bộ nhớ của một biến, hoặc

là trả về tổng số byte bộ nhớ của một mảngarray

2.2.3 Hàm và thủ tục

Nhập xuất Digital (Digital I/O)

 pinMode () :Cấu hình 1 pin quy định hoạt động như là một đầu vào (INPUT)hoặc đầu ra (OUTPUT)

Trang 27

 digitalWrite () : Xuất tín hiệu ra các chân digital, có 2 giá trị là HIGH hoặc

là LOW

Nếu một pin được thiết đặt là OUTPUT bởi pinMode() Và bạn dùngdigitalWrite để xuất tín hiệu thì điện thế tại chân này sẽ là 5V (hoặc là 3,3 V trên mạch3,3 V) nếu được xuất tín hiệu là HIGH, và 0V nếu được xuất tín hiệu là LOW

 digitalRead () : Đọc tín hiệu điện từ một chân digital (được thiết đặt là INPUT).Trả về 2 giá trị HIGH hoặc LOW

Nhập xuất Analog (Analog I/O)

 analogReference() : Hàm analogReference() có nhiệm vụ đặt lại mức (điện áp)tối đa khi đọc tín hiệu analogRead Ứng dụng như sau, giả sử bạn đọc một tínhiệu dạng analog có hiệu điện thế từ 0-1,1V Nhưng mà nếu dùng mức điện áptối đa mặc định của hệ thống (5V) thì khoảng giá trị sẽ ngắn hơn => độ chínhxác kém hơn => hàm này ra đời để giải quyết việc đó!

 analogRead()

Nhiệm vụ của analogRead() là đọc giá trị điện áp từ một chân Analog (ADC).Trên mạch Arduino UNO có 6 chân Analog In, được kí hiệu từ A0 đến A5 Trên cácmạch khác cũng có những chân tương tự như vậy với tiền tố "A" đứng đầu, sau đó là

số hiệu của chân

analogRead() luôn trả về 1 số nguyên nằm trong khoảng từ 0 đến 1023 tương

ứng với thang điện áp (mặc định) từ 0 đến 5V Bạn có thể điều chỉnh thang điện áp nàybằng hàm analogReference()

Hàm analogRead() cần 100 micro giây để thực hiện

 analogWrite() - PWM - PPM : analogWrite() là lệnh xuất ra từ một chân trênmạch Arduino một mức tín hiệu analog (phát xung PWM) Người ta thường điều khiển mức sáng tối của đèn LED hay hướng quay của động cơ servo bằngcách phát xung PWM như thế này

Hàm thời gian

 millis(): millis() có nhiệm vụ trả về một số - là thời gian (tính theo mili giây) kể

từ lúc mạch Arduino bắt đầu chương trình của bạn Nó sẽ tràn số và quay số 0(sau đó tiếp tục tăng) sau 50 ngày

 micros() :micros() có nhiệm vụ trả về một số - là thời gian (tính theo microgiây) kể từ lúc mạch Arduino bắt đầu chương trình của bạn Nó sẽ tràn số và

Ngày đăng: 28/11/2019, 20:16

TỪ KHÓA LIÊN QUAN

w