Lý do chọn đề tài Ngày nay, với sự phát triển vượt bậc của khoa học kỹ thuật, cùng với sự phát triển đó thì việc vận dụng các vi điều khiển để hỗ trợ và phục vụ cho các nhu cầu về đời
Trang 1ĐẠI HỌC LẠC HỒNG KHOA CƠ ĐIỆN - ĐIỆN TỬ
ĐỒNG NAI, 2021
Trang 21
MỤC LỤC Chương I: MỞ ĐẦU
Chương IV: KẾT QUẢ
1 Kết quả của chương trình
2 Kết Luận
Trang 32
CHƯƠNG I: MỞ ĐẦU
1 Lý do chọn đề tài
Ngày nay, với sự phát triển vượt bậc của khoa học kỹ thuật, cùng với sự phát triển
đó thì việc vận dụng các vi điều khiển để hỗ trợ và phục vụ cho các nhu cầu về đời sống hằng ngày, việc thay đổi điều chỉnh nhiệt độ rất cần thiết, theo dõi nhu cầu thiết yếu của con người về việc sử dụng các thiết bị để điều chỉnh nhiệt độ, dựa vào nhu cầu đó chúng
em đã lựa chọn nghiên cứu mô hình đo nhiệt độ và hiển thị ra Led ma trận 8x8 để giúp điều chỉnh nhiệt độ mà người sử dụng mong muốn
2 Mục tiêu nghiên cứu
- Tăng giảm nhiệt độ theo ý muốn
- Đáp ứng được nhu cầu của người dùng
Trang 4- Lí do lựa chọn thiết bị : cần thiết cho nhu cầu cuộc sống đáp ứng được
các mục đích của con người về điều chỉnh nhiệt độ trong môi trường sinh hoạt, lao
động và làm việc
1.1 Sơ đồ khối hệ thống:
Hình 1.1: Sơ đồ khối
Trang 54
● Giải thích nguyên lý hoạt động của các khối: khi khởi động nạp code lập trình
để hoạt động vào board(STM32F407 discovery), máy phun sương cũng trong chế độ hoạt động nhưng chưa phun sương, lúc này thì cảm biến nhiệt độ DS18B20 sẽ có
nhiệm vụ lấy nhiệt độ từ môi trường và Led Ma trận 8x32 sẽ hiển thị nhiệt độ để dự báo cho chúng ta biết Khi nhiệt độ nóng thu được từ môi trường > t0 mong muốn để
hệ thống phun sương thì hệ thống sẽ phun sương, thời gian phun sương mỗi lần là phút ( đã được thiết lập trong code) sau khi hết thời gian thiết lập, hệ thống phun sương sẽ ngắt và các trạng thái trở lại như ban đầu
1.2 Vi xử lí : STM32F407 discovery
- Kit STM32F407 Discovery hiện là loại kit được sử dụng ở rất nhiều trường đại học hiện nay trong giảng dạy vi điều khiển ARM, nếu so sánh về ngoại vi và sức mạnh của STM32 so với các dòng ARM của các hãng khác thì ở cùng 1 tầm giá, ARM của ST vượt trội về cấu hình và ngoại vi hơn rất nhiều
- Vi điều khiển chính: STM32F407VGT6 microcontroller featuring 32-bit ARM Cortex-M4F core, 1MB Flash, 192 KB RAM in an LQFP100 package
- Có led thông báo trạng thái nguồn
- Tích hợp nút nhấn cho người sử dụng và nút reset
- Có cổng Micro USB OTG
- Giá bán dao động từ 600-700 ngàn đồng
Trang 6Cần nối chân Data của cảm biến lên mức cao VCC qua điện trở kéo 4k7 Ohm hoặc 10k
Ohm trước khi kết nối với Vi điều khiển
- Khoảng nhiệt độ đo được: -55~125°C
- Độ chính xác (sai số): ±0.5°C
Trang 76
- Độ phân giải: 9~12 bit (có thể thiết đặt)
- Thời gian phản hồi < 750ms
- Kiểu chân: TO-92
Hình 1.3 Cảm biến nhiệt độ DS18B20 one wire và Module cảm biến DS18B20
1.4 Module MAX7219 + LED matrix 8x32
- Module là tổ hợp 4 Led Matrix 8x8, với mỗi led Matrix được điều khiển bởi một
IC MAX7219 (tương tự như IC 74HC595) 4 IC MAX7219 được mắc nối tiếp và giao tiếp với nhau bằng chuẩn SPI giúp tiết kiệm số chân cho vi điều khiển ( chỉ sử dụng 3 chân để điều khiển ) Ngoài ra IC MAX7219 còn được tích hợp Static RAM 8x8 từ đó việc hiển thị trở nên mượt mà hơn, đồng thời Module còn có thể mở rộng thêm bằng việc mắc nối tiếp các mạch Led Matrix 8x8 MAX7219 lại với nhau
Thông số kỹ thuật :
● 4 Led Matrix 8x8 (Cathode chung) , 4 IC MAX7219
● IC giao tiếp : MAX7219
● Chuẩn giao tiếp : SPI
● Điện áp sử dụng: 5VDC
● Kích thước (cm): 6.3 x 3.5 x 1.5
● Mạch hiển thị 4 Led ma trận MAX7219 có ngõ vào tín hiệu nối tiếp, ghi dịch chuyển tín hiệu nên chỉ cần 3 GPIO để điều khiển, mạch có khả năng nối tiếp thêm nhiều mạch bằng cổng nối tiếp nên dễ dàng để mở rộng
Trang 87
Sơ đồ chân:
Hình 1.4.1 Sơ đồ chân module led ma trận + ic max 7219
● DIN: là chân truyền dữ liệu từ vi điều khiển đến Max7219 (chân MOSI của vi điều khiển)
● CLK: là chân cấp xung nhịp hoạt động cho Max7219 được nối với chân SCK của vi điều khiển
● CS: là chân lựa chọn hoạt động, chân này nối với bất kì một chân I/O nào của vi điều khiển
● VCC: là chân cấp nguồn: sử dụng nguồn 5VDC
● GND: kết nối với chân GND của vi điều khiển
Hình 1.4 Module led matrix MAX7219 8x32
Trang 9- Bơm phun sương hay còn gọi là bơm tạo sương được kết hợp bởi những ưu điểm của máy bơm tự mồi và bơm hóa chất Bơm được sản xuất bằng nhiều loại vật liệu nhập khẩu
có khả năng chống ăn mòn Bơm có kích thước nhỏ gọn, dòng điện tiêu thụ thấp, áp suất cao, tiếng ồn thấp, tuổi thọ dài Với khả năng chịu dầu, chịu nhiệt, kháng axit, kháng kiềm, kháng hóa chất, chống ăn mòn… Thân máy bơm được tách ra khỏi động cơ và không có bộ phận cơ học nên không có sự ăn mòn trong thân máy bơm
Trang 109
- Trọng lượng: 0.56 kg
- Lực hút: 1 mét
- Lực đẩy tối đa: 35 mét
Hình 1.6.1 Động cơ phun sương Hình 1.6.2 Béc phun sương 5 đầu
Thông số kỹ thuật:
o Ống nhựa :
- Ống LDPE ( ống dẻo )
- Chất liệu: Nhựa mềm PVC
- Chất lượng: Hàng chất lượng cao
- Màu sắc:đa màu sắc
- Đặc điểm kỹ thuật: Đường kính
trong: 4mm
- Độ dày: 1,2-1.5mm
- Tính năng: Ống tưới nhỏ giọt
o Béc phun sương :
- Nhựa ABS, POM
- Số đầu tưới: 5 họng phun
- Bán kính tưới: 1m
- Lưu lượng tưới: 25-35l/h
- Áp suất làm việc: 2.5-4.5 B
Trang 1110
1.7 Module 1 Relay Kích Mức Thấp 5VDC:
- Module 1 Relay gồm 1 rơ le hoạt động tại điện áp 5VDC, chịu được hiệu điện thế lên đến 250VAC 10A Module 1 relay kích mức thấp được thiết kế chắc chắn, khả năng cách điện tốt Trên module đã có sẵn mạch kích relay sử dụng transistor và IC cách ly quang giúp cách ly hoàn toàn mạch điều khiển (vi điều khiển) với rơ le bảo đảm vi điều khiển hoạt động ổn định
- Có sẵn header rất tiện dụng khi kết nối với vi điều khiển Mô-đun này tuân thủ các tiêu chuẩn an toàn quốc tế, khu vực đầu vào và khu vực tải có các khe cách ly
Thông số kỹ thuật
- Mức logic : 0V (GND)
- Điều khiển đóng ngắt điện DC hoặc AC, bạn có thể điều khiển tải AC 220 V 10A
- Có tiếp điểm thường mở và thường đóng:
- NO : thường mở (khi kích tiếp điểm đóng lại)
- COM : chung
- NC : Thường đóng (khi kích tiếp điểm mở ra)
- In là chân tín hiệu điều khiển
- VCC, GND là nguồn nuôi Relay
Hình 1.7 Module 1 Relay Kích Mức Thấp 5VDC
Trang 12Hình 2.1 Phần mềm STM32cube MX
2.2 KeilC V5 :
Hiện nay có khá nhiều trình biên dịch ngôn ngữ C cho 8051 như Mikro C, IAR,SDCC,
Reads 51…µVision là môi trường phát triển tích hợp (IDE: Integrated Development Environment, trình soạn thảo ngôn ngữ C, trình biên dịch và debug) của công ty Keil Software, và thường được gọi là Keil C
Hình 2.2 Phần mềm Keilc V5
Trang 1312
CHƯƠNG III: THIẾT KẾ BÀI TOÁN
1 Bài toán đặt ra
- Đo nhiệt độ dùng IC DS18B20 hiển thị trên led ma trận 8x8 với yêu cầu: Nếu nhiệt
độ nóng > t0 mong muốn, thì điều khiển mở hệ thống phun sương, thời gian phun sương mỗi lần là phút (t0 và xx phút do người dùng thiết lập bằng nút nhấn)
- Led Matrix + IC MAX7219(DIN-CS-CLK) ————— PA2-PA3-PA4
- Motor +Relay 5v ————— PE1
Hình 2.1: Sơ đồ kết nối
Trang 1413
Hình 2.2 Khai báo led + IC MAX7219, Nút nhấn, DS18B20
Hình 2.3 Khai báo Motor thông qua Relay kích mức thấp 5VDC
Trang 16static void MX_GPIO_Init(void);
static void MX_TIM2_Init(void);
void button(void);
void caidatnhietdo(void);
void caidatphut(void);
int main(void)
Trang 20//button down minute
Trang 25/** Initializes the RCC Oscillators according to the specified parameters
* in the RCC_OscInitTypeDef structure
Trang 26RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV4;
RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV2;
if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_5) != HAL_OK)
Trang 2726
/* USER CODE BEGIN TIM2_Init 0 */
/* USER CODE END TIM2_Init 0 */
TIM_ClockConfigTypeDef sClockSourceConfig = {0};
TIM_MasterConfigTypeDef sMasterConfig = {0};
/* USER CODE BEGIN TIM2_Init 1 */
/* USER CODE END TIM2_Init 1 */
Trang 28{
Error_Handler();
}
/* USER CODE BEGIN TIM2_Init 2 */
/* USER CODE END TIM2_Init 2 */
Trang 29/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(GPIOE, GPIO_PIN_1, GPIO_PIN_RESET);
/*Configure GPIO pins : PA2 PA3 PA4 */
Trang 3029
GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_15; GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
/* USER CODE BEGIN 4 */
/* USER CODE END 4 */
Trang 3130
{
/* USER CODE BEGIN Error_Handler_Debug */
/* User can add his own implementation to report the HAL error return state */ disable_irq();
* @brief Reports the name of the source file and the source line number
* where the assert_param error has occurred
* @param file: pointer to the source file name
* @param line: assert_param error line source number
* @retval None
*/
void assert_failed(uint8_t *file, uint32_t line)
{
/* USER CODE BEGIN 6 */
/* User can add his own implementation to report the file name and line number, ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */
Trang 32- Mạch hoạt động ổn định không xuất hiện lỗi
- Đạt được yêu cầu đề bài nêu ra
- Tăng giảm nhiệt độ theo ý muốn
- Đáp ứng được nhu cầu của người dùng
2 Kết Luận:
Đề tài " Đo nhiệt độ dùng DS18B20 hiển thị led ma trận 8x8" là kết quả của quá trình tổng hợp kiến thức về bộ xử lý điều khiển STM32F được học tại lớp Ngoài ra, trong quá trình hoàn thành mô hình giúp thành viên trong nhóm hoàn thiện nhiều kĩ thuật và thu hoạch được nhiều kỹ năng và kiến thức bên ngoài hơn Rõ ràng nhất cho thấy :
Về phần cứng : hoàn thiện kỹ năng quan sát và đấu nối các thiết bị
Về phần mềm : hoàn thiện thiếu sót trong quá trình tạo code, hiểu thêm về STM32F hoạt động như thế nào và biết thêm chức năng mới
Về phần kỹ năng : hoàn thiện kỹ năng viết báo cáo, thuyết trình và cách thức hoàn thành bài báo cáo hiệu quả, nâng cao kỹ năng hoạt động nhóm
Trang 3332
Tài liệu tham khảo
1 STM32 giao tiếp với DS18B20:
https://vidieukhien.xyz/2018/05/14/stm32f4-giao-tiep-voi-ds18b20/
2 Lập trình STM32 đọc nhiệt độ với DS18b20 giao tiếp Onewire:
https://khuenguyencreator.com/lap-trinh-stm32-doc-nhiet-do-voi-ds18b20/