đề tài này sử dụng ds1307 để cập nhật thời gian thực hiện thị lên LCD với lập trình STM32, sử dùng ngôn ngữ CC++, thời gian sẽ được cập nhật liên tục khi cung cấp nguồn 3.3V liên tục cho module ds1307.
Mục tiêu nghiên cứu
- Tìm hiểu nguyên lý hoạt động , cách ứng dụng DS1307.
- Tư duy thuật toán và tạo code C nạp vào chip STM32f103C6Tx để hiện thị thời gian thực lên màn hình LCD 16x2.
Củng cố kiến thức cơ bản về linh kiện điện tử, rèn luyện kỹ năng vẽ mạch và in mạch, đồng thời thực hành làm mạch thực tế bằng phần mềm thiết kế Proteus.
Phương pháp nghiên cứu
- Sử dụng phương pháp nghiên cứu lý thuyết.
- Vẽ và chạy mạch trên phần mền mô phỏng,
- CHƯƠNG 2: LINH KIỆN ĐIỆN TỬ
Module DS1307
Giới thiệu chung
Mạch thời gian thực RTC DS1307 cung cấp thông tin thời gian như ngày, tháng, năm, giờ, phút và giây cho Vi điều khiển qua giao tiếp I2C Mạch tích hợp sẵn pin backup giúp duy trì thời gian ngay cả khi không có nguồn điện Ngoài ra, mạch còn bao gồm IC EEPROM AT24C32 để lưu trữ thông tin, phù hợp cho các ứng dụng điều khiển và đồng bộ dữ liệu thời gian thực.
Cấu tạo và đặc điểm
DS1307 là chip thời gian thực (RTC) được sản xuất bởi Dallas, cung cấp độ chính xác cao cho thông tin thời gian như thứ, ngày, tháng, năm, giờ, phút và giây Chip này bao gồm 7 thanh ghi 8 bit, mỗi thanh ghi lưu trữ một loại thông tin thời gian cụ thể Ngoài ra, DS1307 còn có một thanh ghi điều khiển ngõ ra phụ.
DS1307 có 56 thanh ghi trống, có thể sử dụng như RAM Thiết bị này giao tiếp qua chuẩn I2C, cho phép đọc và ghi dữ liệu một cách dễ dàng Cấu tạo bên ngoài của DS1307 rất đơn giản, ví dụ như một dạng đóng vỏ của nó.
+ trên là hai dạng cấu tạo của ds1307 chip này có 8 chân và chúng ta hay dùng là dạng dip và các chân nó được mô tả như sau :
+ x1 và x2 là đầu vào dao động cho ds1307 cần dao động thạch anh 32.768khz.[separator].
Vbat là nguồn cung cấp năng lượng cho chip, với điện áp từ 2V đến 3.5V Chúng ta sử dụng pin 3V làm nguồn cho chip, giúp chip hoạt động liên tục ngay cả khi không có nguồn Vcc, cho phép DS1307 duy trì hoạt động theo thời gian.
VCC là nguồn cung cấp cho giao tiếp I2C, với điện áp chuẩn 5V, thường được sử dụng chung với vi xử lý Trong trường hợp không có VCC nhưng vẫn có VBAT, chip DS1307 vẫn hoạt động bình thường, tuy nhiên sẽ không thể ghi và đọc dữ liệu.
+ gnd là nguồn mass chung cho cả vcc và vbat.
SQW/OUT là một ngõ ra phụ dùng để tạo xung dao động hình vuông SCL và SDA là hai bus dữ liệu của DS1307, nơi thông tin được truyền và ghi qua hai đường truyền này theo chuẩn I2C.
Điện áp làm việc: 3.3V đến 5V
Bao gồm 1 IC thời gian thực DS1307
Các thành phần cần thiết như thạch anh 32768kHz, điện trở pull-up và tụ lọc nguồn đều được tích hợp trên board
Có sẵn pin dự phòng duy trì thời gian khi mất điện
5-pin bao gồm giao thức I2C sẵn sàng giao tiếp: INT
(QWO), SCL, SDA, VCC và GND
Dễ dàng thêm một đồng hồ thời gian thực để dự án của bạn
Nhỏ gọn và dễ dàng để lắp thêm vào bo mạch hoặc test board
MCU STM32F103C6Tx
Giới thiệu tổng quan
- Stm32f103c8t6 là vi điều khiển 32bit, thuộc họ f1 của dòng chip stm32 hãng st.
- Tốc độ tối đa 72mhz.
- Clock, reset và quản lý nguồn
điện áp hoạt động từ 2.0 → 3.6v.
sử dụng thạch anh ngoài từ 4mhz → 20mhz.
thạch anh nội dùng dao động rc ở mode 8mhz hoặc 40khz.
- Chế độ điện áp thấp:
có các mode: ngủ, ngừng hoạt động hoặc hoạt động ở chế độ chờ.
cấp nguồn ở chân vbat bằng pin ngoài để dùng bộ rtc và sử dụng dữ liệu được lưu trữ khi mất nguồn cấp chính.
- 2 bộ adc 12 bit với 9 kênh cho mỗi bộ
khoảng giá trị chuyển đổi từ 0 – 3.6 v
có chế độ lấy mẫu 1 kênh hoặc nhiều kênh.
có hỗ trợ dma cho adc, uart, i2c, spi.
timer 16 bit hỗ trợ các mode input capture/ output compare/ pwm.
1 timer 16 bit hỗ trợ để điều khiển động cơ với các mode bảo vệ ngắt input, dead-time.
watchdog timer để bảo vệ và kiểm tra lỗi.
1 systick timer 24 bit đếm xuống cho hàm delay,….
- Có hỗ trợ 9 kênh giao tiếp:
- Kiểm tra lỗi crc và 96-bit id
Giới thiệu về kit STM32C6Tx
Các thông số kĩ thuật:
Điện áp cấp 5VDC qua cổng Micro USB sẽ được chuyển đổi thành 3.3VDC qua IC nguồn và cấp cho Vi điều khiển chính.
Tích hợp sẵn thạch anh 8Mhz.
Tích hợp sẵn thạnh anh 32Khz cho các ứng dụng RTC.
Ra chân đầy đủ tất cả các GPIO và giao tiếp: CAN, I2C, SPI, UART, USB,
Tích hợp Led trạng thái nguồn, Led PC13, Nút Reset.
Màn hình LCD 16x2
Thông số kĩ thuât
Thiết bị hiển thị LCD 1602 (Liquid Crystal Display) hiện đang được ứng dụng rộng rãi trong nhiều lĩnh vực của vi điều khiển LCD 1602 sở hữu nhiều ưu điểm vượt trội so với các loại hiển thị khác, bao gồm khả năng hiển thị đa dạng ký tự như đồ họa, chữ và số Nó cũng dễ dàng tích hợp vào mạch ứng dụng thông qua nhiều giao thức giao tiếp khác nhau, tiêu tốn ít tài nguyên hệ thống và có giá thành phải chăng.
Thông số kĩ thuật của mà hình LCD 1602:
- Điện áp ra mức thấp : 2.4
- Dòng điện cấp nguồn : 350uA – 600uA
- Nhiệt độ hoạt động : - 30 - 75 độ C
Chức năng của từng chân LCD 1602
- Chân số 1 - VSS : chân nối đất cho LCD được nối với GND của mạch điều khiển.
- Chân số 2 - VDD : chân cấp nguồn cho LCD, được nối với VCC=5V của mạch điều khiển.
- Chân số 3 - VE : điều chỉnh độ tương phản của LCD.
- Chân số 4 - RS : chân chọn thanh ghi, được nối với logic "0" hoặc logic "1": + Logic “0”: Bus DB0 - DB7 sẽ nối với thanh ghi lệnh IR của LCD (ở chế độ
“ghi” - write) hoặc nối với bộ đếm địa chỉ của LCD (ở chế độ “đọc” - read)
+ Logic “1”: Bus DB0 - DB7 sẽ nối với thanh ghi dữ liệu DR bên trong LCD
- Chân số 5 - R/W : chân chọn chế độ đọc/ghi (Read/Write), được nối với logic
“0” để ghi hoặc nối với logic “1” đọc.
Chân số 6 - E (Enable) là chân cho phép trong hệ thống Sau khi các tín hiệu được truyền lên bus DB0-DB7, các lệnh chỉ được chấp nhận khi có một xung cho phép từ chân E.
+ Ở chế độ ghi: Dữ liệu ở bus sẽ được LCD chuyển vào thanh ghi bên trong khi phát hiện một xung (high-to-low transition) của tín hiệu chân E.
Khi ở chế độ đọc, dữ liệu từ LCD sẽ được xuất ra các chân DB0-DB7 khi phát hiện sự chuyển tiếp từ thấp sang cao (low-to-high transition) tại chân E Dữ liệu này sẽ được LCD giữ trên bus cho đến khi chân E trở về mức thấp.
Chân số 7 đến 14 (D0 đến D7) là 8 đường bus dữ liệu dùng để trao đổi thông tin với MPU Có hai chế độ sử dụng cho 8 đường bus này: chế độ 8 bit, trong đó dữ liệu được truyền trên cả 8 đường với bit MSB là DB7, và chế độ 4 bit, khi dữ liệu được truyền trên 4 đường từ DB4 đến DB7, với bit MSB cũng là DB7.
- Chân số 15 - A : nguồn dương cho đèn nền.
- Chân số 16 - K : nguồn âm cho đèn nền.
Chuẩn giao tiếp I2C
Giới thiệu giao tiếp I2C
I2C tích hợp những ưu điểm nổi bật của SPI và UART, cho phép kết nối nhiều thiết bị slave với một master duy nhất, tương tự như SPI Hơn nữa, I2C hỗ trợ nhiều master có thể điều khiển một hoặc nhiều slave, điều này rất hữu ích khi cần nhiều vi điều khiển ghi dữ liệu vào một thẻ nhớ chung hoặc hiển thị thông tin trên màn hình LCD.
Giống như giao tiếp UART, I2C chỉ sử dụng hai dây để truyền dữ liệu giữa các thiết bị:
SDA (Serial Data) - đường truyền cho master và slave để gửi và nhận dữ liệu.
SCL (Serial Clock) - đường mang tín hiệu xung nhịp.
I2C là một giao thức truyền thông nối tiếp, vì vậy dữ liệu được truyền từng bit dọc theo một đường duy nhất (đường SDA).
Giống như SPI, giao thức I2C cũng là đồng bộ, với đầu ra của các bit được đồng bộ hóa thông qua tín hiệu xung nhịp chung giữa thiết bị master và slave Tín hiệu xung nhịp này luôn do thiết bị master điều khiển.
Trong giao thức I2C, dữ liệu được truyền qua các tin nhắn, mỗi tin nhắn được chia thành các khung dữ liệu Mỗi tin nhắn bao gồm một khung địa chỉ chứa địa chỉ nhị phân của thiết bị slave và một hoặc nhiều khung dữ liệu chứa thông tin đang được truyền Thông điệp cũng có điều kiện khởi động và dừng, cùng với các bit đọc/ghi và bit ACK/NACK giữa các khung dữ liệu Cụ thể, điều kiện khởi động xảy ra khi đường SDA chuyển từ mức điện áp cao xuống thấp trước khi đường SCL chuyển từ mức cao xuống thấp, trong khi điều kiện dừng diễn ra khi đường SDA chuyển từ mức điện áp thấp sang cao sau khi đường SCL chuyển từ mức thấp lên cao.
Khung địa chỉ: Một chuỗi 7 hoặc 10 bit duy nhất cho mỗi slave để xác định slave khi master muốn giao tiếp với nó.
Bit Đọc/Ghi: Một bit duy nhất được sử dụng để chỉ định xem master đang gửi dữ liệu đến slave (mức điện áp thấp) hay yêu cầu dữ liệu từ slave (mức điện áp cao).
Bit ACK / NACK là một phần quan trọng trong giao tiếp giữa các thiết bị, trong đó mỗi khung tin nhắn được theo sau bởi một bit xác nhận hoặc không xác nhận Khi khung địa chỉ hoặc khung dữ liệu được nhận thành công, thiết bị nhận sẽ gửi lại một bit ACK cho thiết bị gửi, đảm bảo rằng thông tin đã được truyền đạt chính xác.
I2C không sử dụng đường Slave Select như SPI, do đó cần một phương pháp khác để thông báo cho slave rằng dữ liệu đang được gửi đến nó Phương pháp này được thực hiện thông qua việc định địa chỉ, với khung địa chỉ luôn là khung đầu tiên xuất hiện sau bit khởi động trong một tin nhắn mới.
Master gửi địa chỉ của slave mà nó muốn giao tiếp, và mỗi slave sẽ so sánh địa chỉ này với địa chỉ của mình Nếu địa chỉ khớp, slave sẽ phản hồi bằng một bit ACK điện áp thấp cho master Ngược lại, nếu địa chỉ không khớp, slave sẽ không thực hiện hành động nào và đường SDA sẽ giữ ở mức cao.
Khung địa chỉ có một bit quan trọng ở cuối tin nhắn, cho phép slave nhận biết liệu master muốn ghi dữ liệu vào nó hay nhận dữ liệu từ nó Khi master gửi dữ liệu đến slave, bit đọc/ghi sẽ ở mức điện áp thấp Ngược lại, nếu master yêu cầu dữ liệu từ slave, bit sẽ ở mức điện áp cao.
Sau khi master phát hiện bit ACK từ slave, khung dữ liệu đầu tiên đã sẵn sàng được gửi.
Khung dữ liệu có độ dài 8 bit và được truyền với bit quan trọng nhất trước Sau mỗi khung dữ liệu, một bit ACK hoặc NACK được gửi để xác nhận việc nhận khung thành công Bit ACK cần được nhận bởi master hoặc slave, tùy thuộc vào bên gửi dữ liệu, trước khi khung dữ liệu tiếp theo được phép gửi đi.
Sau khi tất cả các khung dữ liệu đã được gửi, master có thể gửi điều kiện dừng cho slave để tạm dừng quá trình truyền Điều kiện dừng này được xác định bởi sự chuyển đổi điện áp từ thấp lên cao trên đường SDA, sau khi có chuyển tiếp từ thấp lên cao trên đường SCL, trong khi đường SCL vẫn giữ ở mức cao.
Các bước truyền dữ liệu I2C
Master gửi tín hiệu khởi động đến tất cả các slave được kết nối bằng cách thay đổi đường SDA từ mức điện áp cao xuống mức điện áp thấp, sau đó mới chuyển đường SCL từ mức cao xuống mức thấp.
- Master gửi cho mỗi slave địa chỉ 7 hoặc 10 bit của slave mà nó muốn giao tiếp, cùng với bit đọc / ghi.
Mỗi slave so sánh địa chỉ nhận từ master với địa chỉ của chính nó Nếu địa chỉ trùng khớp, slave sẽ gửi phản hồi ACK bằng cách kéo dòng SDA xuống thấp trong một bit Ngược lại, nếu địa chỉ không khớp, slave sẽ giữ đường SDA ở trạng thái cao.
- Master gửi hoặc nhận khung dữ liệu.
- Sau khi mỗi khung dữ liệu được chuyển, thiết bị nhận trả về một bit ACK khác cho thiết bị gửi để xác nhận đã nhận thành công khung.
- Để dừng truyền dữ liệu, master gửi điều kiện dừng đến slave bằng cách chuyển đổi mức cao SCL trước khi chuyển mức cao SDA.
Một master với nhiều slave
Giao thức I2C cho phép điều khiển nhiều thiết bị slave từ một master nhờ vào việc sử dụng địa chỉ Với địa chỉ 7 bit, I2C có thể hỗ trợ 128 địa chỉ duy nhất, trong khi địa chỉ 10 bit, mặc dù ít phổ biến hơn, có thể cung cấp tới 1.024 địa chỉ Để kết nối nhiều thiết bị slave với một master, cần thực hiện đấu dây với điện trở kéo lên 4,7K Ohm, kết nối đường SDA và SCL với Vcc.
Nhiều master với nhiều slave
Nhiều master có thể kết nối với một hoặc nhiều slave, tuy nhiên, khi hai master cố gắng gửi hoặc nhận dữ liệu đồng thời qua đường SDA, sẽ xảy ra sự cố Để khắc phục vấn đề này, mỗi master cần phát hiện trạng thái của đường SDA trước khi truyền tin nhắn Nếu đường SDA thấp, có nghĩa là một master khác đang kiểm soát bus và master đó phải chờ để gửi tin nhắn Ngược lại, nếu đường SDA cao, việc truyền tin nhắn có thể diễn ra an toàn Để kết nối nhiều master với nhiều slave, cần sử dụng sơ đồ với các điện trở kéo.
I2C có thể có vẻ phức tạp hơn so với các giao thức khác, nhưng có những lý do chính đáng để cân nhắc việc sử dụng I2C khi kết nối với một thiết bị cụ thể.
- Chỉ sử dụng hai dây
- Hỗ trợ nhiều master và nhiều slave
- Bit ACK / NACK xác nhận mỗi khung được chuyển thành công
- Phần cứng ít phức tạp hơn so với UART
- Giao thức nổi tiếng và được sử dụng rộng rãi
- Tốc độ truyền dữ liệu chậm hơn SPI
- Kích thước của khung dữ liệu bị giới hạn ở 8 bit
- Cần phần cứng phức tạp hơn để triển khai so với SPI
THIẾT KẾ MẠCH
Giới thiệu về phần mềm
Hình 3.1 Giao diện của Protues 8.11.
Proteus là phần mềm mạnh mẽ cho phép mô phỏng hoạt động của mạch điện tử, bao gồm cả thiết kế mạch và lập trình điều khiển cho các họ vi điều khiển như MCS-51, PIC và AVR.
Proteus là phần mềm mô phỏng mạch điện tử do Lancenter Electronics phát triển, hỗ trợ mô phỏng hầu hết các linh kiện điện tử phổ biến Phần mềm này đặc biệt hữu ích cho việc làm việc với các bộ vi điều khiển (MCU) như PIC, 8051, AVR và Motorola.
Phần mềm Proteus bao gồm hai chương trình chính: ISIS, cho phép mô phỏng mạch, và ARES, dùng để vẽ mạch in Đây là công cụ mô phỏng hiệu quả cho nhiều loại Vi Điều Khiển như PIC, 8051, dsPIC, AVR, và ARM7/LPC2000 Proteus hỗ trợ các giao tiếp như I2C, SPI, CAN, USB, và Ethernet, đồng thời cũng có khả năng mô phỏng các mạch số và mạch tương tự một cách hiệu quả.
ISIS đã được phát triển trong hơn 12 năm và hiện có hơn 12.000 người dùng toàn cầu Điểm mạnh của ISIS là khả năng mô phỏng hoạt động của các hệ vi điều khiển mà không cần phần mềm hỗ trợ Ngoài ra, phần mềm này còn cho phép xuất file sang ARES hoặc các phần mềm thiết kế mạch in khác.
Trong giáo dục, ISIS nổi bật với khả năng tạo ra hình ảnh mạch điện đẹp mắt, cho phép người dùng tùy chỉnh đường nét và màu sắc của mạch, cũng như thiết kế theo các mẫu có sẵn.
Những khả năng khác của ISIS là:
• Tự động sắp xếp đường mạch và vẽ điểm giao đường mạch
• Chọn đối tượng và thiết lập thông số cho đối tượng dễ dàng
• Xuất file thống kê linh kiện cho mạch
• Xuất ra file Netlist tương thích với các chương trình làm mạch in thông dụng
Đối với các nhà thiết kế mạch chuyên nghiệp, ISIS cung cấp nhiều công cụ hữu ích cho việc quản lý các mạch điện lớn, với khả năng xử lý hàng ngàn linh kiện.
• Thiết kế theo cấu trúc (hierachical design)
• Khả năng tự động đánh số linh kiện
3.1.2 Giới thiệu phần mềm STM32CubeMX
3.1.2a Phần mềm Arduino IDE là gì ?
Phần mềm STM32CubeMX hỗ trợ lập trình viên cấu hình chức năng cho vi điều khiển STM32 thông qua giao diện đồ họa, đồng thời tự động tạo mã từ các cấu hình đã thiết lập Công cụ này giúp giải quyết xung đột pin, đơn giản hóa quá trình lập trình và tiết kiệm thời gian trong nghiên cứu và phát triển.
3.1.2b Giao diện khi khởi động STM32CubeMX
Sau khi nhấn vào File -> New Project thì giao diện chọn vi điều khiển STM32 sẽ hiện ra:
Chọn vi điều khiển bằng cách nhập tên vi điều khiển vào mục Part Number Search, ví dụ như vi điều khiển STM32F103C8, được sử dụng trong khóa học lập trình STM32 của TAPIT.
Bắt đầu Project: nhấn vào Start Project
Bạn có thể lọc vi điều khiển dựa trên các thông số như giá tiền, số chân nhập xuất, bộ nhớ chương trình, bộ nhớ dữ liệu và tốc độ tối đa của CPU tại mục MCU Filters Sau khi chọn vi điều khiển, bạn có thể tìm hiểu thêm về các tính năng, sơ đồ khối, tài liệu của hãng hoặc tải về Datasheet để tham khảo.
Để cấu hình nạp code cho vi điều khiển STM32F103C8T6, bạn cần chọn System Core -> SYS -> Debug: Serial Wire Việc này cho phép nạp code thông qua các chân SWDIO và SWCLK, sử dụng mạch nạp ST-Link để kết nối với vi điều khiển.
Việc cấu hình các ngoại vi như INPUT, External Interrupt, ADC, TIMER, và UART có thể thực hiện dễ dàng bằng cách nhấp chuột phải vào chân tương ứng và sau đó nhấn chuột trái để cài đặt Ví dụ, để cấu hình chân PC13 hoạt động với chức năng OUTPUT, người dùng có thể phóng to hoặc thu nhỏ hình ảnh vi điều khiển bằng cách lăn chuột giữa.
Ngoài ra, các bạn cũng có thể cấu hình các ngoại vi khác tại các mục: System Core, Analog, Timers, Connectivity…
Trong mục Cấu hình Đồng hồ (Clock Configuration), người dùng có thể thiết lập nguồn tạo dao động và tần số hoạt động cho vi điều khiển, bao gồm bộ xử lý trung tâm (CPU) và các ngoại vi (Peripherals) thông qua cây đồng hồ (Clock tree), kết hợp với cấu hình RCC tại lõi hệ thống (System Core).
4 Lưu thông tin Project và sinh code
Tại Project Manager, bạn cần đặt tên cho Project và chọn nơi lưu trữ (lưu ý không sử dụng Tiếng Việt có dấu) Chọn Toolchain/IDE là MDK-ARM V5 nếu bạn sử dụng Keil C IDE để code và debug Sau khi cấu hình xong, nhấn vào GENERATE CODE để sinh code Khi code đã được sinh, sẽ có thông báo yêu cầu bạn Open Project, và lúc này Project sẽ được mở trong phần mềm Keil C với đầy đủ các cấu hình đã thực hiện.
3.1.3 Phần mềm lập trình KelC
Keil C là phần mềm chuyên dụng giúp tạo môi trường lập trình cho nhiều dòng vi xử lý như ARM, AVR, 8051, PIC, với hai ngôn ngữ chính là C và assembly.
3.1.3b Các thao tác với KelC
Sau khi cấu hình, sinh code từ phần mềm STM32CubeMX và mở Project Keil C, các bạn mở file main.c tại mục Application/User.
Có các biểu tượng Build (F7) để compile chương trình và Load (F8) để nạp chương trình.
Một số lưu ý khi nạp chương trình:
Các bạn nhấn vào biểu tượng Option for Target hoặc Project -
> Option for Target để thực hiện 1 số cấu hình:
In the Target Options window, select the Debug tab and check the Use ST-Link Debugger option to upload the program to the kit; if you choose Use Simulator, the system will operate in simulation mode.
Sơ đồ khối chức năng
Khối nguồn : Cung cấp nguồn điện 5V cho mạch hoạt động
Khối cảm biến : Module DS1307 RTC
Khối xử lý: MCU STM32F103C6Tx
Khối hiển thị : Gồm một LCD kích thước 16x2 để hiện thị thời gian
Khối Xử Lý Khối Cảm Biển
Sơ đồ nguyên lý
Hình 3.5: Sơ đồ nguyên lý trước khi chạy
Hình 3.6 : Sơ đồ nguyên lý sau khi chạy
Mạch vẫn hoạt động khi cung cấp nguồn điện vào
Trong điều kiện môi trường bình thường mạch đo đúng nhiệt độ
Độ lớn của còi phụ thuộc vào nhiệt độ của môi trường
Khi điện áp các chân linh kiện thì thấy đúng số liệu với mạch mô phỏng
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
- Đạt được mục tiêu đề ra ban đầu của đề tài nghiên cứu
- Mạch hoạt động đúng nguyên lý
- Khả năng ứng dụng cao
- Công suất tiêu thụ điện nhỏ
- Sản phầm hoạt động đôi khi còn lỗi do cảm biến chưa được tối ưu
- Còi báo đôi khi bị nhiễu phát ra âm thanh
- Mối hàn khá xấu, dùng breadboard nên phải đi nhiều dây khá rối
- Cải thiện đổ ổn định của sản phẩm.
- Đưa sản phẩm từ mô hình đi vào trong thực tế cuộc sống.
Hệ thống quản lý pin
Các ứng dụng công nghiệp như Lò hơi, máy hấp, máy làm lạnh, v.v.