Mục tiêu nghiên cứu
Chương trình được thiết kế cho vi xử lý nhằm phục vụ mạch đếm sản phẩm cơ bản phải đáp ứng một số yêu cầu thiết yếu Đầu tiên, chương trình cần phát hiện sự thay đổi mức logic từ tín hiệu cảm biến hồng ngoại Tiếp theo, kích cỡ tràn trong bộ đếm counter 0 sẽ tạo ra một sự kiện ngắt để thực hiện việc đếm và hiển thị kết quả trên LED 7 đoạn Cuối cùng, chương trình cũng phải nhận diện các switch được ấn để tăng hoặc giảm số cài đặt hiển thị.
Kết quả đạt được
Mạch đếm sản phẩm cho phép chúng ta thiết lập số lượng sản phẩm cần đếm trước khi tiến hành Sau khi hoàn thành việc đếm, mạch sẽ tự động bắt đầu đếm lại từ đầu.
Chương trình trên vi xử lý cần phát hiện thời điểm số đếm đạt giá trị cài đặt trước, sau đó sẽ tự động reset và bắt đầu đếm lại từ đầu.
CƠ SỞ LÝ THUYẾT
Sơ đồ khối hệ thống
Hình 2.1 Sơ đồ khối hệ thống
Phần cứng
2.2.1 Vi xử lí: STM43F411 Discovery
Kit STM32F411 Discovery, phiên bản nâng cấp của kit STM32F407 Discovery, được sử dụng phổ biến trong nghiên cứu về dòng ARM STM32F4 Kit này có thiết kế phần cứng tương tự với STM32F407, chỉ khác biệt ở việc thay đổi CPU từ dòng F407 sang F411.
Thông số kỹ thuật STM32F411 Discovery:
- Điện áp hoạt động: từ 3V -5V
- Bộ vi điều khiển STM32F411VET6 có bộ nhớ Flash 512 KB, RAM 128 KB trong gói LQFP100
ST-LINK / V2 được tích hợp trên bo mạch với công tắc chế độ lựa chọn, cho phép sử dụng như một ST-LINK / V2 độc lập Thiết bị này có đầu nối SWD, hỗ trợ lập trình và gỡ lỗi hiệu quả.
- Nguồn cung cấp bảng: thông qua bus USB hoặc từ điện áp nguồn 5 V bên ngoài
- L3GD20: Cảm biến chuyển động ST MEMS Con quay hồi chuyển đầu ra kỹ thuật số 3 trục
- LSM303DLHC: Gói hệ thống ST MEMS có cảm biến gia tốc tuyến tính kỹ thuật số 3D và cảm biến từ tính kỹ thuật số 3D
Hai nút nhấn (người dùng và đặt lại)
-USB OTG với đầu nối micro-AB
2.2.2 LED 7 đoạn Anode chung 0.5 Inch 74HC595
Mạch hiển thị 2 LED 7 đoạn 0.5 inch 74HC595 cho phép bạn dễ dàng điều khiển và hiển thị thông tin chỉ với 3 chân giao tiếp.
IC ghi dịch 74HC595, ngoài ra mạch còn có khả năng mở rộng thêm các led tiếp theo
Trang 4 qua cổng đầu ra nối tiếp, mạch có bộ thư viện đi kèm dễ sử dụng phù hợp cho các ứng dụng: bộ đếm, đồng hồ,
Loại dương chung (Common Anode): nếu cực dương (anode) của tất cả 8 LED được nối với nhau và các cực âm (cathode) đứng riêng lẻ
Với yêu cầu đề tài thì chọn Led 7 đoạn để hiển thị sản phẩm đếm được
Thông số kĩ thuật Led 7 đoạn 0.5 Inch 74HC595:
Dòng điện sử dụng: 50mA
3 chân giao tiếp: SCLK, RCLK, DIO
Hiển thị 2 led 7 đoạn cỡ 0.5''
Hình 2.2.2.1 Led 7 đoạn 0.5 Inch 74HC595
Hình 2.2.2.2 Sơ đồ cấu tạo của led 7 đoạn
2.2.3 Cảm Biến Vật Cản Hồng Ngoại E3F-DS10C4
Cảm biến vật cản hồng ngoại E3F-DS10C4 là một sản phẩm chất lượng cao, nổi bật với độ bền và độ ổn định vượt trội Cảm biến này sử dụng công nghệ ánh sáng hồng ngoại để phát hiện vật cản phía trước, phát ra tia hồng ngoại với dải tần số chuyên biệt, giúp chống nhiễu hiệu quả ngay cả trong điều kiện ánh sáng ngoài trời.
Cảm biến vật cản hồng ngoại E3F-DS10C4 là một cảm biến tiệm cận có thể điều chỉnh khoảng cách nhờ vào biến trở tích hợp Với ngõ ra dạng Transistor NPN (cảm biến sinking), thiết bị này đã được kết nối với điện trở nội 10k lên VCC, cho phép người dùng sử dụng ngay mà không cần thêm điện trở kéo lên VCC.
Thông số kĩ thuật cảm biến vật cản hồng ngoại E3F-DS10C4:
Số dây tín hiệu: 3 dây (2 dây cấp nguồn DC và 1 dây tín hiệu)
Chân tín hiệu ngõ ra sử dụng transistor NPN với nội trở 10k được kéo lên VCC Khi có vật cản, tín hiệu sẽ ở mức thấp (Low-GND), trong khi khi không có vật cản, tín hiệu sẽ ở mức cao (High-VCC).
Nguồn điện cung cấp: 6 ~ 36VDC
Dòng tiêu thụ: 20~35mA
Khoảng cách điều chỉnh cảm biến: 2~10cm
Khoảng cách phát hiện vật cản: 0~10cm
Góc khuếch tán (góc chiếu): 3~5 độ
Có thể điều chỉnh khoảng cách nhận của cảm biến bằng biến trở tinh chỉnh
Dòng kích ngõ ra: 300mA
Có led hiển thị ngõ ra màu đỏ
Chất liệu sản phẩm: vỏ ngoài nhựa ABS, phía trong đổ keo chống nước, chống va đập
Hình 2.2.3.1 Cảm Biến Vật Cản Hồng Ngoại E3F-DS10C4
Hình 2.2.3.2 Sơ đồ cấu tạo của cảm biến
Thông số kĩ thuật động cơ
- Điện áp hoạt động:3V~ 9V DC (Hoạt động tốt nhất từ 6 - 8V)
- Mômen xoắn cực đại: 800gf cm min 1:48 (3V)
- Tốc độ không tải: 125 Vòng/ 1 Phút (3V) - (Với bánh 66mm: 26m/1p)
- 208 Vòng/ 1 Phút (5V) - (Với bánh 66mm: 44m/1p)
Thông số kỹ thuật: Điện áp sử dụng: 3.3~5VDC Đèn led 5mm màu đỏ
Tích hợp biến trở chỉnh cường độ sáng
Hình 2.2.6 Dây đai truyền động 05
Tần số hoạt động: 47 ~ 63HZ
Dòng điện tối đa: 10A
Điều chỉnh điện áp (Đầy tải) ≤ 0.3%
Bảo vệ quá tải 105% —- 150% công suất định mức, phục hồi tự động
Chức năng bảo vệ ngắn mạch tự động
Bảo vệ quá áp 105% —- 150% điện áp định mức
Công suất làm việc: 125VAC 2A
Phần mềm hỗ trợ lập trình
STM32CubeMX là công cụ hỗ trợ cấu hình và tạo mã cho MCU STM32, giúp lập trình viên dễ dàng thực hiện các công việc cấu hình và nâng cấp thông qua giao diện đồ họa Điều này không chỉ đơn giản hóa quá trình lập trình mà còn rút ngắn thời gian nghiên cứu và phát triển.
Hình 2.3.1: Phần mềm Stm32CubeMx
Hiện nay, có nhiều trình biên dịch ngôn ngữ C cho 8051 như Mikro C, IAR, SDCC và Reads 51 Một trong những môi trường phát triển tích hợp (IDE) phổ biến là Keil C, được phát triển bởi công ty Keil Software, bao gồm trình soạn thảo ngôn ngữ C, trình biên dịch và công cụ debug.
Keil C là một môi trường phát triển mạnh mẽ và phổ biến, hỗ trợ lập trình cho các vi điều khiển lõi 8051 và ARM từ các nhà sản xuất toàn cầu.
Hình 2.3.2: Phần mềm KeilC Version5
THIẾT KẾ
Thiết kế
Mô hình băng tải đếm sản phẩm sử dụng màn hình LED 7 đoạn để hiển thị số lượng sản phẩm Khi số lượng đạt mức quy định, hệ thống sẽ tự động dừng động cơ và bật đèn báo Người dùng có thể dễ dàng thiết lập số lượng cần đếm thông qua nút nhấn.
Vi điều khiển STM32 nhận tín hiệu số từ nút nhấn, xử lý và hiển thị trạng thái trên LED 7 đoạn Khi nhấn nút Start, động cơ sẽ hoạt động và cảm biến gửi tín hiệu về cho vi điều khiển Người dùng có thể nhập số lượng sản phẩm mong muốn thông qua nút nhấn, với giới hạn tối đa là 99 sản phẩm Vi điều khiển sẽ dừng động cơ khi đạt đủ số lượng đã cài đặt trước đó.
Bảng 3.1.1 Cấu hình cho vi điều khiển
Sơ đồ nối chân của bài toán
Hình 3.1.2: Sơ đồ kết nối
Hình 3.2.1.1: Sơ đồ giải thuật
Hình 3.2.1.2 Sơ đồ giải thuật chi tiết
3.2.2 Các bước để thực hiện cấu hình và code
Hình 3.2.2.1 Cài đặt nối chân
Hình 3.2.2.2 Cài đặt tần số
Hình 3.2.2.3 Lưu và cài đặt version
The code snippet initializes an array of LED pins and defines several variables, including counters and display values It includes the necessary function prototypes for configuring the system clock and initializing GPIO The function `hienthiled` is designed to display values on the LEDs using the specified encoding defined in the `maled` array.
HAL_GPIO_WritePin(GPIOD, GPIO_PIN_13,0);
HAL_GPIO_WritePin( GPIOD, GPIO_PIN_14,(maled