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

(Tiểu luận) bài tập lớnhệ thống nhúng xây dựng ứng dụng giao tiếp màn hìnhlcd graphic

26 4 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

Khái niệm- I2C Inter – Integrated Circuit là 1 giao thức giao tiếp nối tiếp đồng bộ đượcphát triển bởi Philips Semiconductors, sử dụng để truyền nhận dữ liệu giữa cácIC với nhau chỉ sử

BỘ THÔNG TIN VÀ TRUYỀN THÔNG HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THƠNG - - BÀI TẬP LỚN HỆ THỐNG NHÚNG “Xây dựng ứng dụng giao tiếp hình LCD Graphic” Giảng viên : TS NGUYỄN NGỌC MINH Sinh viên : NGUYỄN TRỌNG DŨNG - B19DCDT031 TRẦN THỊ THU HƯƠNG - B19DCDT112 NGUYỄN HUY QUANG - B19DCDT176 MẠC THỊ THÙY DƯƠNG - B19DCDT036 Nhóm : 03 Hệ : Đại học quy Hà Nội - 2022 Bài báo cáo tập lớn Hệ thống nhúng LỜI CẢM ƠN Chúng em xin gửi đến Học viện Công nghệ Bưu Viên thơng lời cảm ơn trân trọng mang đến cho chúng chúng em kiến thức mơn học vơ bổ ích mơn “Hệ thống nhúng” Trong q trình tìm hiểu học tập môn học, chúng em nhận nhiều hướng dẫn, giúp đỡ, chia sẻ thực tế, kiến thức mơn học hữu ích thầy Nguyễn Ngọc Minh giúp chúng em hoàn thành tập lớn; chúng em xin chân thành cảm ơn tiếp thu hướng dẫn tận tình thầy Tuy nhiên, tập lớn chúng em không tránh khỏi sai sót Rất mong nhận góp ý thầy để tập lớn chúng em hoàn thiện Cuối cùng, chúng em kính chúc thầy dồi sức khỏe thành công nghiệp cao quý, hồn thành tốt cơng việc giao đạt nhiều thành tựu to lớn nghiệp Chúng em xin chân thành cảm ơn! Hà Nội, tháng 11 năm 2022 Bài báo cáo tập lớn Hệ thống nhúng MỤC LỤC LỜI CẢM ƠN2 DANH MỤC HÌNH ẢNH4 DANH MỤC BẢNG BIỂU5 MỤC LỤC I TỔNG QUAN VỀ KIT STM32F103C8T6 GIỚI THIỆU VỀ KIT STM32FT103C8T6 .6 THIẾT KẾ MẠCH NGUYÊN LÝ II GIAO THỨC I2C KHÁI NIỆM CẤU TẠO NGUYÊN LÝ HOẠT ĐỘNG KHUNG TRUYỀN I2C 10 QUÁ TRÌNH TRUYỆN NHẬN DỮ LIỆU 10 CÁC CHẾ ĐỘ HOẠT ĐỘNG CỦA I2C 11 III GIAO TIẾP UART .11 GIỚI THIỆU VỀ GIAO TIẾP UART 11 CÁCH THỨC HOẠT ĐỘNG CỦA GIAO THỨC UART 13 CÁC BƯỚC TRUYỀN UART .15 ƯU VÀ NHƯỢC ĐIỂM CỦA UART .15 CÁC ỨNG DỤNG CỦA GIAO TIẾP UART 16 IV MÀN HÌNH OLED 0.96 INCH 16 TỔNG QUAN 16 THÔNG SỐ KỸ THUẬT 16 ƯU VÀ NHƯỢC ĐIỂM 17 V LẬP TRÌNH 17 DANH MỤC HÌNH ẢNH Bài báo cáo tập lớn Hệ thống nhúng Hình 1: Kit STM32F103C8T6 Hình 2: Sơ đồ nguyên lý Hình 3: Giao thức I2C Hình 4: Sơ đồ nguyên lý Hình 5: Khối bit địa Hình 6: Xung hoạt động trình truyền nhận liệu Hình 7: Giao thức UART Hình 8: Mơ hình truyền UART 13 Hình 9: Cấu tạo gói (packet) Hình 10: Start Bit Hình 11: Data Frame Hình 12: Parity Bits Hình 13: Chế độ PWM dược sử dụng làm chế độ điện áp PWM Hình 14: Sơ đồ ví dụ thiết kế ứng dụng điển hình DANH MỤC BẢNG Bảng 1: Bảng khung truyền I2C 10 Bảng 2: Bảng cấu hình để truyền nhận 11 Bài báo cáo tập lớn Hệ thống nhúng Bảng 3: Bảng định thức tối đa tuyệt đối 24 Bảng 4: Bảng định mức ESD .27 YBảng 5: Bảng điều kiện đề xuất …………………………………………… 41 Bảng 6: Bảng thông tin nhiệt .49 Bảng 7: Bảng đặc tính điện 53 YBảng 8: Thông tin điểm liệu đồ…………………………………… 68 Bảng 2: Công nghệ sử dụng đồ số 73 YBảng 1: Bảng điều kiện môi trường lấy liệu………………………… …….79 Bảng 2: Điều kiện môi trường kết hợp nhiệt độ .79 Bảng 3: Độ cao tốc độ truyền tin 79 Bảng 4: Cấu hình máy chủ .83 Bảng 5: Bảng đánh giá tiêu chí 87 Bảng 6: Bảng phân bố điểm .87 I TỔNG QUAN VỀ KIT STM32F103C8T6 Giới thiệu Kit STM32F103C8T6 Bài báo cáo tập lớn Hệ thống nhúng Hình 1: Kit STM32F103C8T6 STM32 dòng chip phổ biến ST với nhiều họ thơng dụng F0,F1,F2,F3,F4… STM32 có thiết kế dựa dịng sản phẩm sau: Hiệu cao (High-performance), Phổ thông (Mainstream) Tiết kiệm lượng (Ultra Low-Power) Hiệu cao (High-performance): dịng vi điều khiển có hiệu tính tốn cao, tốc độ hoạt động lớn thường sử dụng ứng dụng đa phương tiện Dòng bao gồm dòng vi điều khiển Cortex-M3/4F/7 với tần số hoạt động từ khoảng 120MHz đến 268MHz Các dòng điều hỗ trợ công nghệ ART Accelerator Phổ thông (Mainstream): Là dòng vi điều khiển thiết kế với mục tiêu tối ưu giá Các sản phẩm thường có giảm thấp 1$/pcs với tần số hoạt động khoảng từ 48MHz đến 72MHz Tiết kiệm lượng (Ultra Low-Power): Là nhóm vi điều khiển hoạt động với tiêu chí tiết kiệm lượng tiêu thụ Các nhóm vi điều khiển có khả hoạt động với pin thời gian dài hỗ trợ nhiều chế độ ngủ khác Với sản phẩm hãng STMicrochips, điển hình nhóm dòng ARM Cortex M0+ STM32F103 thuộc họ F1 với lõi ARM Cortex M3 STM32F103 vi điều khiển 32 bit, tốc độ tối đa 72Mhz Giá thành rẻ so với loại vi điều khiển có chức tương tự Mạch nạp công cụ lập trình đa dạng dễ sử dụng Một số ứng dụng chính: dùng cho driver để điều khiển ứng dụng, điều khiển ứng dụng thông thường, thiết bị cầm tay thuốc, máy tính thiết bị ngoại vi chơi game, GPS bản, ứng dụng cơng nghiệp, thiết bị lập trình PLC, biến tần, máy in, máy quét, hệ thống cảnh báo, thiết bị liên lạc nội bộ… STM32F103 C8T6 vi điều khiển 32bit STMicroelectronics với 64 Kb nhớ Flash, USB 2.0 full-speed, CAN, Timer, ADC giao diện kết nối Thông tin chung sản phẩm:   Lõi : ARM 32 bit Cortex M3 Tần số hoạt động lên tới 72 MHz Document continues below Discover more from:kiện điện tử Cấu ELE1302 Học viện Công ng… 179 documents Go to course PHỐT HOT Tiktoker 45 PÔ Nguyễn Ngọc La… Cấu kiện điện tử 93% (61) Lớp học hè Samsung 44 SVMC - You did a… Cấu kiện điện tử 100% (2) Transistor - hey, goodluck Cấu kiện điện tử 100% (2) Tụ-điện - good luck, i trust you Cấu kiện điện tử 100% (1) tập chương 2 điện tử số ptit 2021… Cấu kiện điện tử Bài báo cáo tập lớn Hệ thống nhúng 100% (1) BAO CAO DO AN - hi           Bộ nhớ : 64 Kb Flash , 20Kb SRAM all Điện áp : 2~3.6 VDC 55 Tổng số I/O : 37 Cấu kiện ADC : 2x12 bit, tần số lấy mẫu 1MHz 100% (1) điện tử DAC : Không DMA : Điều khiển kênh DMA Timer : bộ, 16 bit ( IC, OC, PWM ) Giao diện kết nối : 2xI2C, 3xUSART, 2xSPI, CAN, 1xUSB 2.0 full- speed, 1xCAN Kiểu chân : LQFP48 Ứng dụng : Những tính làm cho vi điều khiển STM32F103C8T6 thích hợp cho loạt ứng dụng điều khiển động cơ, kiểm soát ứng dụng nâng cao, thiết bị y tế thiết bị cầm tay, máy tính thiết bị ngoại vi chơi game, GPS, ứng dụng công nghiệp, PLC, biến tần, máy in, máy quét , hệ thống báo động, hệ thống liên lạc video, HVACs Thiết kế mạch nguyên lý  Nguồn vào : 5V-DC  Qua IC ổn áp AMS1117 để lấy nguồn 3.3 V cho vi xử lý  Khối nút nhấn + ma trận phím  Khối JTAG: Hỗ trợ nạp chương trình debug  Khối nạp SWD: Hỗ trợ nạp chuẩn dây ST, sử dụng mạch nạp ST-Link  Khối hiển thị Led đoạn: Sử dụng Led Anode chung số kích thước 0.36  Khối hiển thị LCD: giao tiếp bit, 4bit  Khối Led đơn  Khối còi  Khối ADC  Khối thạch anh chọn chế độ hoạt động chip  Khối reset, wkup, pin Bakup  Khối giao tiếp USB  Khối giao tiếp USART  Khối đọc cảm biến nhiệt độ DS18B20  Khối Led thu phát hồng ngoai Sơ đồ nguyên lý: Bài báo cáo tập lớn Hệ thống nhúng Hình 2: Sơ đồ nguyên lý II GIAO THỨC I2C Khái niệm - I2C ( Inter – Integrated Circuit) giao thức giao tiếp nối tiếp đồng phát triển Philips Semiconductors, sử dụng để truyền nhận liệu IC với sử dụng hai đường truyền tín hiệu - Các bit liệu truyền bit theo khoảng thời gian đặn thiết lập tín hiệu đồng hồ - Bus I2C thường sử dụng để giao tiếp ngoại vi cho nhiều loại IC khác loại vi điều khiển, cảm biến, EEPROM, … Bài báo cáo tập lớn Hệ thống nhúng Hình 3: Giao thức I2C Cấu tạo I2C sử dụng đường truyền tín hiệu:  SCL - Serial Clock Line: Tạo xung nhịp đồng hồ Master phát  SDA – Serial Data Line: Đường truyền nhận liệu Nguyên lý hoạt động Hình 4: Sơ đồ nguyên lý - Giao tiếp I2C bao gồm trình truyền nhận liệu thiết bị chủ tớ, hay Master - Slave - Thiết bị Master vi điều khiển, có nhiệm vụ điều khiển đường tín hiệu SCL gửi nhận liệu hay lệnh thông qua đường SDA đến thiết bị khác - Các thiết bị nhận liệu lệnh tín hiệu từ thiết bị Master gọi thiết bị Slave Các thiết bị Slave thường IC, chí vi điều khiển - Master Slave kết nối với hình Hai đường bus SCL SDA hoạt động chế độ Open Drain, nghĩa thiết bị kết nối với mạng I2C kéo đường bus xuống mức thấp Bài báo cáo tập lớn Hệ thống nhúng Hình 6: Xung hoạt động trình truyền nhận liệu - Tiếp theo đó, Master gửi bit địa tới Slave muốn giao tiếp với bit Read/Write - Slave so sánh địa vật lý với địa vừa gửi tới Nếu trùng khớp, Slave xác nhận cách kéo đường SDA xuống set bit ACK/NACK ‘0’ Nếu không trùng khớp SDA bit ACK/NACK mặc định ‘1’ - Thiết bị Master gửi nhận khung bit liệu Nếu Master gửi đến Slave bit Read/Write mức Ngược lại nhận bit mức - Nếu khung liệu truyền thành công, bit ACK/NACK set thành mức để báo hiệu cho Master tiếp tục - Sau tất liệu gửi đến Slave thành cơng, Master phát tín hiệu Stop để báo cho Slave biết trình truyền kết thúc chuyển SCL, SDA từ mức lên mức Các chế độ hoạt động I2C - Chế độ chuẩn (standard mode) với tốc độ 100 kBit/s - Chế độ tốc độ thấp (low speed mode) với tốc độ 10 kBit/s - III Ngồi ra, khác với giao tiếp SPI có Master, giao tiếp I2C cho phép chế độ truyền nhận liệu nhiều thiết bị Master khác với thiết bị Slave Tuy nhiên trình có phức tạp thiết bị Slave nhận lúc nhiều khung liệu từ thiết bị Master khác nhau, điều đơi dẫn đến xung đột sai sót liệu nhận - Để tránh điều đó, làm việc chế độ này, thiết bị Master cần phát xem đường SDA trạng thái - Nếu SDA mức 0, nghĩa có thiết bị Master khác có quyền điều khiển phải chờ đến truyền xong - Ngược lại SDA mức 1, nghĩa đường truyền SDA an toàn có sử dụng GIAO TIẾP UART 11 Bài báo cáo tập lớn Hệ thống nhúng Giới thiệu giao tiếp UART - Các hệ thống nhúng, vi điều khiển máy tính hầu hết sử dụng UART dạng giao thức giao tiếp phần cứng thiết bị thiết bị Trong số giao thức truyền thơng có, UART sử dụng hai dây cho bên truyền bên nhận - Theo định nghĩa, UART giao thức truyền thông phần cứng sử dụng giao tiếp nối tiếp không đồng với tốc độ định cấu hình.Trong giao tiếp UART, hai UART giao tiếp trực tiếp với UART truyền chuyển đổi liệu song song từ thiết bị điều khiển CPU thành dạng nối tiếp, truyền nối tiếp đến UART nhận, sau chuyển đổi liệu nối tiếp trở lại thành liệu song song cho thiết bị nhận Hình 7: Giao thức UART - Hai đường dây mà thiết bị UART sử dụng để truyền liệu là:  Transmitter (Tx)  Receiver (Rx) - UART truyền liệu không đồng bộ, có nghĩa khơng có tín hiệu đồng hồ để đồng hóa đầu bit từ UART truyền đến việc lấy mẫu bit UART nhận Thay tín hiệu đồng hồ, UART truyền thêm bit start stop vào gói liệu chuyển Các bit xác định điểm bắt đầu điểm kết thúc gói liệu để UART nhận biết bắt đầu đọc bit - Khi UART nhận phát bit start, bắt đầu đọc bit đến tần số cụ thể gọi tốc độ truyền (baud rate) Tốc độ truyền thước đo tốc độ truyền liệu, biểu thị bit giây (bps – bit per second) Cả hai UART phải hoạt động tốc độ truyền Tốc độ truyền UART truyền nhận chênh lệch khoảng 10% trước thời gian bit bị lệch xa 12 Bài báo cáo tập lớn Hệ thống nhúng - Cả hai UART phải cấu hình để truyền nhận cấu trúc gói liệu - Bảng 2: Cấu hình để truyền nhận Số lượng dây sử dụng 9600, 19200, 38400, 57600, 115200, 230400, 460800, 921600, 1000000, 1500000 Tốc độ truyền Phương pháp truyền Bất đồng Truyền nối tiếp hay song song? Nối tiếp Số lượng thiết bị chủ tối đa Số lượng thiết bị tớ tối đa Cách thức hoạt động giao tiếp UART - UART truyền liệu nhận từ bus liệu (Data Bus) Bus liệu sử dụng để gửi liệu đến UART thiết bị khác CPU, nhớ vi điều khiển Dữ liệu chuyển từ bus liệu đến UART truyền dạng song song Sau UART truyền nhận liệu song song từ bus liệu, 13 Bài báo cáo tập lớn Hệ thống nhúng thêm bit start, bit chẵn lẻ bit stop, tạo gói liệu Tiếp theo, gói liệu xuất nối tiếp bit chân Tx UART nhận đọc gói liệu bit chân Rx UART nhận sau chuyển đổi liệu trở lại dạng song song loại bỏ bit start, bit chẵn lẻ bit stop Cuối cùng, UART nhận chuyển gói liệu song song với bus liệu đầu nhận Hình 8: Mơ hình truyền UART - Dữ liệu truyền qua UART tập hợp thành gói (packet) Mỗi gói chứa bit start, đến bit liệu (tùy thuộc vào UART), bit chẵn lẻ (parity bit) tùy chọn bit stop  Hình 9: Cấu tạo gói (packet) Start bit (Bit bắt đầu) Đường truyền liệu UART thường giữ mức điện áp cao khơng truyền liệu Để bắt đầu truyền liệu, UART truyền kéo đường truyền từ mức cao xuống mức thấp chu kỳ đồng hồ Khi UART nhận phát chuyển đổi điện áp cao xuống thấp, bắt đầu đọc bit khung liệu tần số tốc độ truyền Hình 10: Start Bit  Data Frame (Khung liệu) Khung liệu chứa liệu thực tế truyền Nó dài từ bit đến bit sử dụng bit chẵn lẻ Nếu không sử dụng bit chẵn lẻ, 14 Bài báo cáo tập lớn Hệ thống nhúng khung liệu dài bit Trong hầu hết trường hợp, liệu truyền với bit có trọng số bé (LSB – Least Significant Bit) trước tiên Hình 11: Data Frame  Parity Bit (Bit chẵn lẻ) Tính chẵn lẻ mơ tả tính chẵn lẻ số Bit chẵn lẻ cách để UART nhận cho biết liệu có liệu thay đổi trình truyền hay khơng Bit bị thay đổi xạ điện từ, tốc độ truyền không khớp truyền liệu đường dài Sau UART nhận đọc khung liệu, đếm số bit có giá trị kiểm tra xem tổng số số chẵn hay lẻ Nếu bit parity (even parity – parity chẵn), tổng số bit khung liệu phải số chẵn Nếu bit parity (odd parity – parity lẻ) số tổng bit khung liệu số lẻ Khi bit chẵn lẻ khớp với liệu, UART biết q trình truyền khơng có lỗi Nhưng bit chẵn lẻ tổng số lẻ, bit chẵn lẻ tổng số chẵn, UART biết bit khung liệu thay đổi Hình 12: Parity Bits Các bước truyền UART - Bước 1: UART truyền nhận liệu song song từ bus liệu - Bước 2: UART truyền thêm bit start, bit chẵn lẻ bit dừng vào khung liệu - Bước 3: Tồn gói gửi nối tiếp từ UART truyền đến UART nhận UART nhận lấy mẫu đường liệu tốc độ truyền định cấu hình trước - Bước 4: UART nhận loại bỏ bit start, bit chẵn lẻ bit stop khỏi khung liệu - Bước 5: UART nhận chuyển đổi liệu nối tiếp trở lại thành song song chuyển đến bus liệu đầu nhận Ưu nhược điểm UART - - Khơng có giao thức truyền thơng hồn hảo, UART thực tốt chúng làm Dưới số ưu nhược điểm để giúp bạn định xem chúng có phù hợp với nhu cầu bạn hay không Ưu điểm:  Chỉ sử dụng hai dây để truyền liệu 15 Bài báo cáo tập lớn Hệ thống nhúng -  Khơng cần tín hiệu đồng hồ  Có bit chẵn lẻ phép kiểm tra lỗi  Cấu trúc gói liệu thay đổi miễn hai bên thiết lập cho  Phương pháp truyền đơn giản, giá thành thấp Nhược điểm:  Kích thước khung liệu giới hạn tối đa bit  Không phù hợp với hệ thống đòi hỏi nhiều thiết bị chủ tớ  Tốc độ truyền UART phải nằm khoảng 10% Các ứng dụng giao tiếp UART - - IV Giao tiếp UART thường sử dụng vi điều khiển cho u cầu xác chúng có sẵn thiết bị truyền thông khác giao tiếp không dây, thiết bị GPS, module Bluetooth nhiều ứng dụng khác Các tiêu chuẩn truyền thông RS422 & TIA sử dụng UART ngoại trừ RS232 Thông thường, UART IC riêng sử dụng giao tiếp nối tiếp UART MÀN HÌNH OLED 0.96 INCH Tổng quan   OLED (viết tắt Organic Light Emitting Diode: Diode phát sáng hữu cơ) trở thành đối thủ cạnh tranh ứng cử viên sáng giá thay hình LCD Màn hình OLED gồm lớp nền, Anode, lớp hữu cơ, Cathode Và phát ánh sáng theo cách tương tự đèn LED Quá trình gọi phát lân quang điện tử Thông số kỹ thuật     Điện áp sử dụng: 2.2 ~ 5.5 VDC Cơng suất tiêu thụ: 0.04w Góc hiển thị: lớn 160 độ Số điểm hiển thị: 128x64 điểm 16 Bài báo cáo tập lớn Hệ thống nhúng Độ rộng hình: 0.96 inch Màu hiển thị: Trắng / Xanh Dương Giao tiếp: I2C Driver: SSD1306 Bảng 3: Sơ đồ nối chân      VCC 3.3V đến 5V GND GND SCL Xung clock – A5 SDA Truyền liệu – A4 Ưu nhược điểm: - Ưu điểm:    - Nhược điểm:   V Màn hình Oled 0.96 inch giao tiếp I2C cho khả hiển thị đẹp, sang trọng, rõ nét vào ban ngày khả tiết kiệm lượng tối đa với mức chi phí phù hợp, hình sử dụng giao tiếp I2C cho chất lượng đường truyền ổn định dễ giao tiếp với chân GPIO Góc nhìn cải thiện cơng nghệ tiền nhiệm, khoảng 170 độ Độ sáng OLED tốt LED không cần đèn LCD Tuổi thọ hình thấp Giá thành sản xuất cao dễ hỏng gặp nước Lập trình: #include #include // I2C dùng để điều khiển SSD1306 #include #include #define OLED_RESET Adafruit_SSD1306 display(OLED_RESET); #define NUMFLAKES 10 17 Bài báo cáo tập lớn Hệ thống nhúng #define XPOS #define YPOS #define DELTAY #define LOGO16_GLCD_HEIGHT 16 #define LOGO16_GLCD_WIDTH 16 #if (SSD1306_LCDHEIGHT != 64) #error("Height incorrect, please fix Adafruit_SSD1306.h!"); #endif String inputString = ""; //nhập chuỗi bool stringComplete = false; void setup() { Serial.begin(9600); // Đây khởi tạo giao tiếp UART inputString.reserve(200); // Khởi tạo 200 byte để chứa liệu UART display.begin(SSD1306_SWITCHCAPVCC, 0x3C); display.display(); delay(2000); display.clearDisplay(); display.drawPixel(10, 10, WHITE); display.display(); delay(2000); 18 Bài báo cáo tập lớn Hệ thống nhúng display.clearDisplay(); display.setTextSize(1); display.setTextColor(WHITE); display.setCursor(0, 0); display.println("Hello, world!"); display.setTextColor(BLACK, WHITE); display.display(); delay(2000); } void loop() { if (stringComplete) { // Hàm kiểm tra chữ nhập vào UART Serial.println(inputString); if (inputString == "duong thang\n") { Serial.println("Ve duong thang"); duuongthang(); display.display(); delay(2000); display.clearDisplay(); } else if (inputString == "hinh tam giac\n") { hinhtamgiac(); delay(2000); display.clearDisplay(); 19 Bài báo cáo tập lớn Hệ thống nhúng } else if (inputString == "hinh tron\n") { hinhtron(); display.display(); delay(2000); display.clearDisplay(); } else if (inputString == "hinh chu nhat\n") { hinhchunhat(); display.display(); delay(2000); display.clearDisplay(); } else if (inputString == "chu chay\n") // Cái chỗ em nhập vào serial { chuchay(); display.display(); delay(2000); display.clearDisplay(); scrolltext(); 20 Bài báo cáo tập lớn Hệ thống nhúng delay(2000); display.clearDisplay(); } else { Text(inputString); display.display(); delay(2000); display.clearDisplay(); } inputString = ""; stringComplete = false; } } void serialEvent() { //Hàm nhận serial while (Serial.available()) { //Nếu serial có giá trị char inChar = (char)Serial.read(); inputString += inChar; // Lưu chuỗi nhập vào inputString if (inChar == '\n') { // Nếu kí tự cuối kí tự xuống dịng stringComplete = true; // Thì báo chuỗi hoàn thành -> chạy tới hàm kiểm tra xem lệnh không? hiển thị tương ứng } } } void chuchay(void) { 21 Bài báo cáo tập lớn Hệ thống nhúng display.setTextSize(1); display.setTextColor(WHITE); display.setCursor(0, 0); for (uint8_t i = 0; i < 168; i++) { if (i == '\n') continue; display.write(i); if ((i > 0) && (i % 21 == 0)) display.println(); } display.display(); } void hinhtron(void) { display.drawCircle(20, 20, 15, WHITE); display.display(); } void hinhchunhat(void) { uint8_t color = 1; int16_t i = 12; display.fillRect(i, i, display.width() - i * 2, display.height() - i * 2,WHITE); display.display(); } void Text(String text) { display.setTextSize(1); display.setTextColor(WHITE); display.setCursor(0, 0); display.setTextSize(2); display.println(text); 22 Bài báo cáo tập lớn Hệ thống nhúng display.setTextColor(BLACK, WHITE); display.display(); } void hinhtamgiac(void) { for (int16_t i = 0; i < min(display.width(), display.height()) / 2; i += 5) { display.drawTriangle(display.width() / 2, display.height() / - i, display.width() / - i, display.height() / + i, display.width() / + i, display.height() / + i, WHITE); display.display(); } } void filltriangle(void) { uint8_t color = WHITE; for (int16_t i = min(display.width(), display.height()) / 2; i > 0; i -= 5) { display.fillTriangle(display.width() / 2, display.height() / - i, display.width() / - i, display.height() / + i, display.width() / + i, display.height() / + i, WHITE); if (color == WHITE) color = BLACK; else color = WHITE; display.display(); } } void drawroundrect(void) { for (int16_t i = 0; i < display.height() / - 2; i += 2) { display.drawRoundRect(i, i, display.width() - * i, display.height() - * i, display.height() / 4, WHITE); display.display(); } } 23 Bài báo cáo tập lớn Hệ thống nhúng void fillroundrect(void) { uint8_t color = WHITE; for (int16_t i = 0; i < display.height() / - 2; i += 2) { display.fillRoundRect(i, i, display.width() - * i, display.height() - * i, display.height() / 4, color); if (color == WHITE) color = BLACK; else color = WHITE; display.display(); } } void drawrect(void) { for (int16_t i = 0; i < display.height() / 2; i += 2) { display.drawRect(i, i, display.width() - * i, display.height() - * i, WHITE); display.display(); } } void duuongthang() { display.clearDisplay(); display.drawLine(32,0,32, 127, WHITE); display.display(); } void scrolltext(void) { display.setTextSize(2); display.setTextColor(WHITE); display.setCursor(10, 0); display.clearDisplay(); display.println("Hello"); display.display(); display.startscrollright(0x00, 0x0F); 24 Bài báo cáo tập lớn Hệ thống nhúng delay(2000); display.stopscroll(); delay(1000); display.startscrollleft(0x00, 0x0F); delay(2000); display.stopscroll(); delay(1000); display.startscrolldiagright(0x00, 0x07); delay(2000); display.startscrolldiagleft(0x00, 0x07); delay(2000); display.stopscroll(); } 25

Ngày đăng: 26/12/2023, 04:55

Xem thêm:

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w