1. Trang chủ
  2. » Giáo Dục - Đào Tạo

BÁO cáo môn học hệ điều HÀNH NHÚNG THỜI GIAN THỰC đề tài thiết kế đồng hồ thời gian thực có LED nháy theo nhạc sử dụng hệ điều hành FREERTOS

45 31 0

Đ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

Tiêu đề Thiết kế đồng hồ thời gian thực có LED nháy theo nhạc sử dụng hệ điều hành FreeRTOS
Tác giả Nguyễn Đình Hiếu, Nguyễn Đăng Toàn, Nguyễn Công Tùng
Người hướng dẫn Lê Thị Hồng Vân
Trường học Học Viện Kỹ Thuật Mật Mã
Chuyên ngành Hệ điều hành nhúng thời gian thực
Thể loại Báo cáo môn học
Năm xuất bản 2022
Thành phố Hà Nội
Định dạng
Số trang 45
Dung lượng 1,13 MB

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

Nội dung

HỌC VIỆN KỸ THUẬT MẬT MÃ KHOA ĐIỆN TỬ- VIỄN THÔNGBÁO CÁO MÔN HỌC HỆ ĐIỀU HÀNH NHÚNG THỜI GIAN THỰC Đề tài: “Thiết kế đồng hồ thời gian thực có LED nháy theo nhạc sử dụng hệ điều hành FRE

Trang 1

HỌC VIỆN KỸ THUẬT MẬT MÃ KHOA ĐIỆN TỬ- VIỄN THÔNG

BÁO CÁO MÔN HỌC

HỆ ĐIỀU HÀNH NHÚNG THỜI GIAN THỰC

Đề tài: “Thiết kế đồng hồ thời gian thực có LED nháy theo nhạc sử

dụng hệ điều hành FREERTOS”

Giảng viên hướng dẫn: Lê Thị Hồng Vân

2 Nguyễn Đăng Toàn DT030244

3 Nguyễn Công Tùng DT030247

Trang 2

LỜI NÓI ĐẦU

Ngày nay khoa học công nghệ ngày càng phát triển, vi điều khiển AVR và

vi điều khiển PIC ngày càng thông dụng và hoàn thiện hơn, nhưng có thể nói sựxuất hiện của Arduino vào năm 2005 tại Italia đã mở ra một hướng đi mới cho viđiều khiển Sự xuất hiện của Arduino đã hỗ trợ cho con người rất nhiều trong lậptrình và thiết kế, nhất là đối với những người bắt đầu tìm tòi về vi điều khiển màkhông có quá nhiều kiến thức, hiểu biết sâu sắc về vật lý và điện tử Phần cứngcủa thiết bị đã được tích hợp nhiều chức năng cơ bản và là mã nguồn mở Ngônngữ lập trình trên nền Java lại vô cùng dễ sử dụng tương thích với ngôn ngữ C

và hệ thư viện rất phong phú và được chia sẻ miễn phí Chính vì những lý donhư vậy nên Arduino hiện đang dần phổ biến và được phát triển ngày càngmạnh mẽ trên toàn thế giới

Trên cơ sở kiến thức đã học trong môn học: Tin học đại cương, Điện tửtương tự và số, Hệ điều hành nhúng thời gian thực… cùng với những hiểu biết

về các thiết bị điện tử, chúng em đã quyết định thực hiện đề tài “Thiết kế đồng

hồ thời gian thực có LED nháy theo nhạc sử dụng hệ điều hành thời gian thực

thiếu sót, hạn chế vì thế chúng em rất mong có được sự góp ý và nhắc nhờ từ côgiáo để có thể hoàn thiện đề tài của mình Chúng em xin chân thành cảm ơn cô

Lê Thị Hồng Vân đã giúp đỡ chúng em rất nhiều trong quá trình tìm hiểu, thiết

kế và hoàn thành đề tài đồ án môn học này

Trang 3

Mục lục

LỜI NÓI ĐẦU 2

Mục lục 3

Danh mục hình ảnh 4

CHƯƠNG I: TỔNG QUAN VỀ HỆ THỐNG 5

1.1 Đặt vấn đề 5

1.2 Lý do chọn đề tài 5

1.3 Mục đích nghiên cứu đề tài 5

1.4 Giải pháp thiết kế 5

CHƯƠNG II: CƠ SỞ LÝ THUYẾT 7

2.1 Tìm hiểu về hệ điều hành nhúng thời gian thực FreeRTOS 7

2.1.1 Lịch sử phát triển của hệ điều hành nhúng thời gian thực FreeRTOS 7

2.1.2 Cách thức hoạt động của FreeRTOS 8

2.1.3 Các chức năng của FreeRTOS 9

2.2 Giới thiệu các thiết bị phần cứng sử dụng 10

2.2.1 Kit Arduino UNO R3 10

2.2.2 Module thời gian thực Module Tiny RTC I2C 17

2.2.3 Module LED P10 18

2.2.4 Module cảm biến âm thanh 20

CHƯƠNG III: THIẾT KẾ VÀ THI CÔNG SẢN PHẨM 22

3.1 Thiết kế và thi công phần cứng 22

3.2 Thiết kế và thi công phần mềm 24

3.2.1 Chương trình hiển thị lên LED P10 24

3.2.2 Thiết kế chương trình chính 25

3.2.3 Chương trình điều khiển sản phẩm 27

CHƯƠNG IV: TỔNG KẾT 29

4.1 Nhận xét, đánh giá 29

4.2 Hướng phát triển 29

4.3 Kết luận 29

Trang 4

PHỤ LỤC 31

Danh mục hình ảnh Hình 1: Sơ đồ khối 6

Hình 2 1: Cách hoạt động của RTOS 9

Hình 2 2: Board Arduino Uno 11

Hình 2 3: Vi điều khiển của Arduino Uno 12

Hình 2 4: Các chân trên Arduino Uno R3 14

Hình 2 5: Module Tiny RTC I2C (không PIN) 17

Hình 2 6: Màn hình LED P10 18

Hình 2 7: Chiều đi của data LED 19

Hình 2 8: Module cảm biến âm thanh 20

Hình 3 1: Mô phỏng mạch trên proteus 22

Hình 3 2: Thiết kế và thi công vỏ hộp để chứa và bảo vệ các thiết bị 23

Hình 3 3: Thuật toán quét LED 24

Hình 3 4: Phương pháp ngắt timer thực hiện thuật toán quét led 24

Hình 3 5: Lưu đồ thuật toán của chương trình chính 25

Hình 3 6: Lưu đồ thuật toán tác vụ taskRealTime 26

Hình 3 7: Lưu đồ thuật toán tác vụ “animation” 27

Hình 3 8: Sơ đồ điều khiển sản phẩm 27

Hình 3 9: Lưu đồ thuật toán chương trình điều khiển 28

Trang 6

CHƯƠNG I: TỔNG QUAN VỀ HỆ THỐNG.

1.1 Đặt vấn đề

Khoa học kỹ thuật ngày càng phát triển kéo theo việc ra đời các loại đồng

hồ nhằm xác định thời gian rõ ràng và chính xác hơn, tiêu biểu là đồng hồ cơ vàđồng hồ số Đồng hồ số ra đời mang những tính năng vượt bậc so với đồng hồ

cơ hay những loại đồng hồ xưa về những mặt: kinh phí, độ chính xác và nhiềutính năng khác

1.2 Lý do chọn đề tài

Hiện nay, trên thị trường chỉ có một số loại đồng hồ kim và đồng hồ sốđơn giản thông thường dùng để xem giờ Thiết kế đồng hồ thời gian thực cóLED nháy theo nhạc ngoài nhằm mục đích hỗ trợ người dùng theo dõi thời gian,đồng thời đây cũng là một sản phẩm gần gũi, có tính mới lạ đẹp mắt và dễ dàng

1.3 Mục đích nghiên cứu đề tài

Thiết kế và thi công đồng hồ thời gian thực Đồng hồ có tính năng hiển thịthời gian đúng giờ, led có thể nháy theo nhạc và có giao diện tiện lợi, đẹp mắtcho người dùng

1.4 Giải pháp thiết kế

Hệ thống được thiết kế gồm 6 khối: Khối nguồn, khối thời gian, khối viđiều khiển, khối hiển thị, khối điều khiển, khối cảm biến âm thanh

Trang 7

Hình 1: Sơ đồ khốiChức năng của các khối:

- Khối nguồn: cung cấp nguồn hoạt động cho hệ thống vi điều

khiển

- Khối xử lý trung tâm: Đóng vai trò đầu não của hệ thống Xử lý

tín hiệu nhận được từ khối thời gian thực và khối cảm biến âmthanh từ đó hiển thị thông tin lên khối hiển thị Nhận tín hiệu điềukhiển để thay đổi trạng thái hoạt động

- Khối hiển thị: Hiển thị các thông số thời gian như giờ, phút, giây

- Khối RTC: Khối này thực chất là một chíp thời gian thực (Real

Time Clock), được sử dụng với ý nghĩa thời gian tuyệt đối màcon người đang sử dụng Trong sơ đồ này nó sẽ đảm nhiệm chứcnăng cấp time chính xác cho vi điều khiển xử lý

- Khối điều khiển: Sử dụng nút bấm Thực hiện chức năng nhập

các dữ liệu đưa đến vi điều khiển và bao gồm thao tác thay đổihiển thị

- Khối cảm biến âm thanh: Cảm biến âm thanh có chức nặng nhận

biết được âm thanh giúp LED nháy theo điệu nhạc

Trang 8

CHƯƠNG II: CƠ SỞ LÝ THUYẾT.

2.1 Tìm hiểu về hệ điều hành nhúng thời gian thực FreeRTOS

Hệ điều hành thời gian thực – Real Time Operating Systems (RTOS) làmột hệ điều hành cho các hệ thống nhúng Loại hệ điều hành này thường đượcthiết kế để tiết kiệm tài nguyên và đáng tin cậy Phần cứng chạy hệ điều hànhnhúng có thể rất hạn chế về tài nguyên như RAM và ROM, do đó thiết kế nhúngcủa các hệ điều hành này có thể có phạm vi hẹp phù hợp với ứng dụng cụ thể đểđạt được hoạt động mong muốn theo các ràng buộc này Để tận dụng tốt hơn sứcmạnh xử lý của CPU, các nhà phát triển phần mềm có thể viết mã quan trọngtrực tiếp bằng ngôn ngữ máy (tốc độ, chi phí, khả năng bảo trì), hoặc ngôn ngữkhả chuyển (portable language) như C

Một số hệ điều hành nhúng phổ biến như: QNX, PDOS, pSOS, VxWorks,Nulceus, ERCOS, EMERALDS, Windows CE….Nhưng trong đồ án môn họcnày chúng em sử dụng hệ điều hành nhúng thời gian thực FreeRTOS VìFreeRTOS phù hợp cho nghiên cứu, học tập về các kỹ thuật, công nghệ trongviết hệ điều hành nói chung và hệ điều hành nhúng thời gian thực nói riêng,cũng như việc phát triển mở rộng tiếp các thành phần cho hệ điều hành (bổ sungmô-đun, trình điều khiển, chuyển đổi môi trường thực hiện)

2.1.1 Lịch sử phát triển của hệ điều hành nhúng thời gian thực

FreeRTOS

FreeRTOS là lõi của hệ điều hành thời gian thực miễn phí Hệ điều hànhnày được Richard Barry công bố rộng rãi từ năm 2003, phát triển mạnh đến nay

và được cộng đồng mạng mã nguồn mở ủng hộ FreeRTOS có tính khả chuyển,

mã nguồn mở, lõi có thể down miễn phí và nó có thể dùng cho các ứng dụngthương mại Nó phù hợp với những hệ nhúng thời gian thực nhỏ Hầu hết các

Trang 9

code được viết bằng ngôn ngữ C nên nó có tính phù hợp cao với nhiều nền khácnhau.

Ưu điểm của nó là dung lượng nhỏ và có thể chạy trên những nền mànhiều hệ không chạy được Có thể port cho nhiều kiến trúc vi điều khiển vànhững công cụ phát triển khác nhau Mỗi port chính thức bao gồm những ứngdụng ví dụ tiền cấu hình biểu hiện sự riêng biệt của lõi, kiến thức mới và hướngphát triển Những hỗ trợ miễn phí được cung cấp bởi cộng đồng mạng Hỗ trợthương mại với những dịch vụ phát triển đầy đủ cũng được cung cấp

FreeRTOS được cấp giấy phép bởi bản đã được chỉnh sửa bởi GPL(GeneralPublic License và có thể sử dụng trong ứng dụng thương mại với giấyphép này Ngoài ra liên quan đến FreeRTOS có OpenRTOS và SafeRTOS.OpenRTOS là bản thương mại của FreeRTOS.org và không liên quan gì đếnGPL SafeRTOS là về cơ bản dựa trên FreeRTOS nhưng được phân tích, chứngminh bằng tài liệu và kiểm tra nghiêm ngặt với chuẩn IEC61508 Và chuẩnIEC61508 SIL3 đã được tạo ra và phát triển độc lập để hoàn thiện tài liệu choSafeRTOS

2.1.2 Cách thức hoạt động của FreeRTOS

RTOS là một phân đoạn hoặc một phần của chương trình, trong đó nó giảiquyết việc điều phối các task, lập lịch và phân mức ưu tiên cho task, nắm bắt cácthông điệp gửi đi từ task

RTOS khá phức tạp, nói một cách dễ hiểu hơn là nó thực hiện việc xử lýcác trạng thái máy (State Machine) Để giải quyết một bài toán nhiều trạng tháimáy, thông thường chúng ta sử dụng code sau:

while(1)

{

switch(state)

{

Trang 10

Chương trình sẽ thực thi từ states 1 tới states 4 sau đó quay vòng lại Bất

kì khi nào states thay đổi, chương trình sẽ nhảy qua phục vụ task đó

Nhược điểm của phương pháp này đó là tài nguyên sử dụng chung, tốc độchuyển chậm khi thay đổi states bởi nó phải hoàn thành mỗi Task trước khichuyển sang Task khác, khó kiểm soát khi nhiều tác vụ (Task)

Hình 2 1: Cách hoạt động của RTOSNhân Kernel sẽ điều phối sự hoạt động của các tác vụ (Task), mỗi task sẽ

có một mức ưu tiên (prioritize) và thực thi theo chu kì cố định Nếu có sự tácđộng như ngắt, tín hiệu hoặc tin nhắn giữa các Task, Kernel sẽ điều phối chuyểntới Task tương ứng với Code đó

Trang 11

Sự chuyển dịch giữa các Task rất linh động, độ trễ thấp mang lại độ tincậy cao cho chương trình.

2.1.3 Các chức năng của FreeRTOS

Quản lý công việc: Ứng dụng được chia thành các đơn vị chương trìnhnhỏ gọi là các Task (tác vụ), có thể lập lịch và tuần tự được gọi là 'Chủ đề' hoặc'Nhiệm vụ' Điều này được thực hiện để đạt được tính đồng thời trong Ứng dụngthời gian thực Quản lý tác vụ bằng Kernel bao gồm Tạo tác vụ thời gian thực,kết thúc, thay đổi mức độ ưu tiên, v.v Tạo tác vụ liên quan đến việc tạo Khốiđiều khiển tác vụ (TCB) có thông tin về id tác vụ, mức độ ưu tiên, trạng thái tác

vụ tức là nếu tác vụ đang ở (nhàn rỗi, đang chạy, sẵn sàng , đã kết thúc) trạngthái, v.v

Lập lịch tác vụ: Nó ghi lại trạng thái của từng tác vụ và xác định tác vụ cómức độ ưu tiên cao nhất sẽ được thực thi Tác vụ đang chạy bị tạm ngừng và bộ

xử lý thực hiện tác vụ ưu tiên cao

Đồng bộ hóa tác vụ: Nó là cần thiết để thông tin được truyền một cách antoàn từ Nhiệm vụ hoặc Chủ đề này sang Nhiệm vụ khác Đồng bộ hóa tác vụcho phép các tác vụ chia sẻ lẫn nhau các tài nguyên như bộ đệm , thiết bị I / O,v.v

Quản lý bộ nhớ: Nó phân bổ bộ nhớ cho mỗi chương trình Có hai loạiQuản lý Bộ nhớ cho RTOS Họ đang: quản lý ngăn xếp hoặc quản lý đống

Quản lý thời gian: Để lên lịch cho các tác vụ cần được thực hiện trongkhoảng thời gian xác định, cần có ngắt định kỳ Do đó phần cứng Timer đượclập trình để ngắt bộ xử lý Ngắt thời gian được gọi là System Tick

Xử lý ngắt: CPU được thông báo về bất kỳ sự kiện không đồng bộ nàothông qua một ngắt Nó là một cơ chế phần cứng xử lý một sự kiện bằng cáchcung cấp các chức năng như xác định Trình xử lý ngắt, tạo và xóa quy trình dịch

vụ ngắt, v.v

Trang 12

Quản lý I / O thiết bị: Quản lý I / O thiết bị giúp cung cấp khung thốngnhất (API - Giao diện lập trình viên ứng dụng) Nó cũng giúp truy cập trình điềukhiển thiết bị phần cứng cụ thể, tức là nó định vị thiết bị phù hợp cho yêu cầu I /O.

2.2 Giới thiệu các thiết bị phần cứng sử dụng

2.2.1 Kit Arduino UNO R3

Nhắc tới lập trình hay nghiên cứu chế tạo bằng Arduino, dòng đầu tiên màmọi người thường tìm hiểu là Arduino Uno và hiện tại đã phát triển đến thế hệthứ 3 ( R3 ) Nếu mà người mới tìm hiểu bạn nên nghiên cứu Arduino Uno R3hơn là tiếp cận những dòng Arduino khác vì dòng Arduino Uno R3 rất dễ sửdụng đối với những người mới tiếp cận về lập trình

Hình 2 2: Board Arduino UnoArduino Uno là một bo mạch thiết kế với bộ xử lí trung tâm là vi điềukhiển AVR Atmega 328 Cấu tạo chính bao gồm các thành phần sau:

Trang 13

- Cổng USB: đây là loại cổng giao tiếp để ta upload code từ PC lên viđiều khiển Đồng thời nó cũng là giao tiếp serial để truyền dữ liệu giữa vi điềukhiển và máy tính

- Jack nguồn: để chạy Arduino thỉ có thể lấy nguồn từ cổng USB ở trên,nhưng không phải lúc nào cũng có thể cắm với máy tính được Lúc đó ta cầnmột nguồn từ 9V đến 12V

- Có 14 chân vào/ra số đánh số thứ tự từ 0 đến 13, ngoài ra có một chânnối đất (GND) và một chân điện áp tham chiếu (AREF)

- Vi điều khiển AVR: đây là bộ xử lí trung tâm của toàn bo mạch Vớimỗi mẫu Arduino khác nhau thì con chip là khác nhau Ở con Arduino Uno nàythì sử dụng ATMega328

THÔNG SỐ KỸ THUẬT

- Vi xử lý: Atmega328

- Điện áp hoạt động: 5V

- Điện áp đầu vào: 7-12V

- Điện áp đầu vào (Giới hạn): 6-20V

- Chân vào/ra (I/O) số: 14 ( 6 chân có thể cho đầu ra PWM)

- Chân vào tương tự: 6

- Dòng điện trong mỗi chân I/O: 40mA

- Dòng điện chân nguồn 3.3V: 50mA

Trang 14

Hình 2 3: Vi điều khiển của Arduino UnoArduino UNO có thể sử dụng 3 vi điều khiển họ 8bit AVR là ATmega8 ,ATmega168 , ATmega328 Bộ não này có thể xử lý những tác vụ đơn giản nhưđiều khiển đèn LED nhấp nháy , xử lý tín hiệu cho xe điều khiển từ xa , làm mộttrạm đo nhiệt độ - độ ẩm và hiển thị lên màn hình LCD ,

Thiết kế tiêu chuẩn của Arduino UNO sử dụng vi điều khiển ATmega328với giá khoảng 90.000đ Tuy nhiên nếu yêu cầu phần cứng của bạn không caohoặc túi tiền không cho phép , bạn có thể sử dụng các loại vi điều khiển khác cóchức năng tương đương nhưng rẻ hơn như ATmega8 ( bộ nhớ flash 8KB ) vớigiá khoảng 45.000đ hoặc ATmega168 ( bộ nhớ flash 16KB ) với giá khoảng65.000đ

 Điện áp

Arduino UNO có thể được cấp nguồn 5V thông qua cổng USB hoặc cấpnguồ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 thi cấp nguồn bằng pin vuông 9V là hợp lí nhất nếu bạn không có sẵnnguồ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àmhỏng Arduino UNO

 Các chân năng lượng

Trang 15

- 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

- Vin ( 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

 Bộ nhớ

Vi điều khiển Atmega328 tiêu chuẩn cung cấp cho người dùng :

32KB bộ nhớ Flash ; những đoạn lệnh bạn lập trình sẽ được lưu trữ trong

bộ Flash của vi điều khiển Thưởng thì sẽ có khoảng vài KB trong số này sẽđược dùng cho bootloader nhưng đừng lo , bạn hiếm khi nào cần quả 20KB bộnhở này đâu

2KB cho SRAM ( Stats Random Access Memory ) : giá trị các biến bạnkhai báo khi lập trình sẽ lưu ở đây Bạn khai bảo càng nhiều biến thì càng cầnnhiều bộ nhớ RAM Tuy vậy , thực sự thì cũng hiếm khi nào bộ nhớ RAM lạitrở thành thứ mà bạn phải bận tâm Khi mất điện , dữ liệu trên SRAM sẽ bịmất

1KB cho EEPROM ( Electrically Eraseble Programmable Read OnlyMemory ) : dây giống như một chiếc ổ cứng mini – nơi bạn có thể đọc và ghi dữ

Trang 16

liệu của mình vào đây mà không phải lo bị mất khi cúp điện giống như dữ liệutrên SRAM

 Cổng vào ra

Hình 2 4: Các chân trên Arduino Uno R3Arduino UNO có 14 chân digital dùng để đọc hoặc xuất tín hiệu Chúngchỉ 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 :

- 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ông qua 2 chân này Kết nốibluetooth thường thấy nói nôm na chính là kết nối Serial khôngdây Nếu không cần giao tiếp Serial , bạn không nên sử dụng 2chân này nếu không cần thiết

Trang 17

- Chân PWM ( - ) 3 , 5 , 6 , 9 , 10 , và 1l : 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 ứngvớ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 đến5V 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

( SGK ) Ngoài các chức năng thông thường , 4 chân này còndù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ảohiệu Nó được nối với chân số 13 Khi chân này được ngườidù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 áptham 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

 Ngắt trong Arduino

Ngắt (interrupt) là quá trình dừng chương trình chính đang chạy để ưutiên thực hiện một chương trình khác, chương trình này được gọi là chương trìnhphục vụ ngắt (ISR – Interrupt Service Routine) Sau khi thực hiện xong chươngtrình phục vụ ngắt thì vi điều khiển quay lại thực hiện tiếp công việc trước đó.Trong các quá trình ngắt, ta phân biệt thành 2 loại: ngắt cứng và ngắt mềm Ngắtmềm là ngắt được gọi bằng một lệnh trong chương trình ngôn ngữ máy Khác

Trang 18

với ngắt mềm, ngắt cứng không được khởi động bên trong máy tính mà do cáclinh kiện điện tử tác đông lên hệ thống.

Đối với Arduino, ngắt Timer chủ yếu được dùng để định các khoảng thờigian nhất định, xuất xung tần số tùy chỉnh ra chân đầu ra số hay định thời giankiểm tra dự liệu truyền nối tiếp Tùy theo Board Arduino mà số lượng Timercũng khác nhau

Arduino UNO có 3 Timer, Timer 0, 1 và 2 Các timer này sẽ tăng giá trịcủa nó dựa vào xung nhịp của Arduino Khi bạn đặt giá trị ngắt, Timer sẽ tăngdần giá trị khi xảy ra xung nhịp và so sánh với giá trị đặt trước, khi bằng nhau

nó sẽ xảy ra một ngắt

Timer 0, 2 là 2 timer 8 bit, hay nói cách khác nó chỉ có thể đếm từ 0 đến

255 và với Timer1 là timer 16 bit, nó có thể đếm từ 0 đến 65535 mà thôi.Arduino UNO có xung nhịp là 16MHz, tương đương 1/16000000s, 63ns Nếucác Timer đếm các xung nhịp này thì với Timer 0,2 chỉ có thể đếm256*63ns 16us và với Timer 1 là 4 ms

Trang 19

2.2.2 Module thời gian thực Module Tiny RTC I2C.

Module Thời Gian Thực Tiny RTC I2C là IC thời gian thực giá rẻ, rấtchính xác với thạch anh tích hợp sẵn có khả năng điều chỉnh nhiệt Sử dụngchuẩn giao tiếp I2C giúp giao tiếp dễ dang với các dòng vi điều khiển hiện có.Module có đầu vào cho pin riêng, tách biệt khỏi nguồn chính đảm bảo cho việcgiữ thời gian chính xác Thạch anh tích hợp sẵn giúp tăng độ chính xác trongthời gian dài hoạt động và giảm số lượng linh kiện cần thiết khi làm board

Thời gian trong Module được giữ ở dạng: giờ, phút, giây, ngày, thứ,tháng, năm Các tháng có ít hơn 31 ngày sẽ tự động được điều chỉnh, các nămNhuận cũng được chỉnh đúng số ngày Thời gian có thể hoạt động ở chế độ 24hhoặc 12h AmPM

Hình 2 5: Module Tiny RTC I2C (không PIN)THÔNG SỐ KỸ THUẬT

Trang 20

là 32×16=512 LED RGB

Trang 21

Chức năng của các chân

R1: Chân data cho màu đỏ của 8 hàng led bên trên

R2: Chân data cho màu đỏ của 8 hàng led phía dưới

G1: Chân data cho màu xanh lá của 8 hàng led bên trên

G2: Chân data cho màu xanh lá của 8 hàng led phía dưới

B1: Chân data cho màu xanh dương của 8 hàng led bên trên

B2: Chân data cho màu xanh dương của 8 hàng led phía dưới

CLK: Chân đẩy data vào ic ghi dịch

LAT: Chân chốt data ( đẩy data lưu trong ic ghi dịch ra ngoài led)

OE: Chân cho phép bảng led sáng ( OE=0 thì bảng led được phép sáng, OE=1 thì bảng led auto tắt)

A,B,C: 3 chân của ic vào 3 ra 8, tức 3 chân dùng để quét led, cho phép hàng nào sáng Với 3 chân ABC ta điều khiển đc 8 hàng độc lập, nhưng module P10 có tới 16 hàng => trong 1 thời điểm có 2 hàng cùng sáng => module này quét kiểu 2/16 = 1/8

=> Trong 1 thời điểm số led RGB ta có thể điều khiển là 512 x 1/8 = 64 LED RGB

Chiều đi của data

Với P10 1 màu, data đi theo chiều zigzac, thì P10 FULL, data đi theo đường thẳng

Hình 2 7: Chiều đi của data LED

Các bạn có thể thấy, module này chia ra làm 2 nửa theo chiều ngang, với dữ liệucủa 8 hàng trên do RGB1 quyết định, còn 8 hàng dưới do RGB2 quyết định Chân ABC sẽ quyết định hàng nào trong 8 hàng của cả 2 nửa được sáng

Trang 22

Trong 1 thời điểm sẽ có 2 hàng được phép sáng ( do ABC quyết định)

2.2.4 Module cảm biến âm thanh

Micro loại điện dung ( condenser ) micro dạng tụ, màng của chúng hoạtđộng như một cái mảng tụ điện và khi các âm thanh tác động lên màng thu sẽtạo nên các rung động, màng rung sẽ chuyển hóa các rung động âm thanh đấythành các tín hiệu âm thanh Loại micro này có độ nhạy rất cao và bắt âm thanhchính xác, thích hợp cho thu các dạng tín hiệu mềm như giọng hát, guitarthùng…

Ngày đăng: 26/12/2022, 04:43

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w