Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 14 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
14
Dung lượng
2,15 MB
Nội dung
BỘ GIAO THÔNG VẬN TẢI TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI TP.HCM KHOA ĐIỆN – ĐIỆN TỬ VIỄN THÔNG - - BÁOCÁO HỌC PHẦN: KỸ THUẬT ĐO II ĐỀ TÀI: CẢMBIẾNTIỆMCẬNTỪ LJ12A3-4-BX Giảng viên hướng dẫn : DƯƠNG THÙY LIÊN Nhóm thực : NHÓM Thành viên : Hà Thúc Tuấn Đặng Văn Tùng Nguyễn Thanh Lượng Trần Thị Thủy Tiên TP.HCM tháng 11 năm 2018 LỜI NÓI ĐẦU Ngày nay,sự phát triển của giới mặt,trong khoa học cơng nghệ nói chung lĩnh vực điện-điện tử nói riêng nỗi lên mạnh mẽ phát triển vượt bậc làm cho giới ngày văn minh đại hơn.Với đời Báocáođồán kĩ thuật đo Nhóm cảm biến,vai trò quan trọng,nó sử dung thiết bị cảm nhận phát đặc biệt chúng thể vai trò vơ đặc biệt kĩ thuật công nghiêp, đo lường, kiểm tra điều khiển tự động Với ứng dụng quan trọng vậy, nhóm chọn đề tài CẢMBIẾNTIỆMCẬNTỪ (LJ12A3-4-Bx) nhằm mục đích tìm hiểu, nghiên cứu nguyên lý làm việc cảmbiếntiệmcận Song song với tìm hiểu q trình hoạt động điều khiển,truy xuất liệu hình LCD, vi điều khiển ARM STM32F407VE mơ thực tế Dù cố gắng để hình thành mơ hình có thiếu sót, mong bạn đóng góp ý kiến để mơ hình hồn chỉnh Qua đây, nhóm xin chân thành cảm ơn cô Dương Thùy Liên, thuộc khoa Điện-Điện tử viễn thông trường Đại học Giao Thơng Vận Tải Thành phố Hồ Chí Minh phụ trách mơn “Kĩ thuật đo 2” hướng dẫn nhóm thực mơ hình Báocáođồán kĩ thuật đo Nhóm MỤC LỤC Trang LỜI NÓI ĐẦU …………………………………………………………… MỤC LỤC……………………………………………………………… Chương 1: TỔNG QUAN VỀ CẢMBIẾNTIỆMCẬNTỪ 1.1 Khái niệm chung cảmbiến ……………………………………… 1.2 Khái niệm từ trường ……………………………………………… 1.3 Cảmbiến LJ12A3……………………………………………… 1.3.2 Cấu tạo cảmbiếntiệmcận ……………………………………… 1.3.3 Nguyên lí hoạt động …………………………………………… 1.3.4 Các thông số cảmbiến …………………………………… Chương 2: QUÁ TRÌNH THỰC HIỆN 2.1 Các linh kiện sử dụng ……………………………………………… … 2.1.1 ARM STM32F407 ……………………………………………… 2.1.2 Điện trở 33k, 6.8k ………………………………………………… 2.1.3 LCD 16,02 …………………………………………………… … 2.1.4 Phần mềm nạp code cho STM32 ………………………………… 2.1.5 Bộ giao tiếp I2C………………………………………………… 2.1.6 Phần mền sinh code ……………………………………………… 2.2 Sơ đồ lắp mạch sơ đồ đấu dây ……………………………………… 2.3 Lưu đồ giải thuật …………………………………………………… … 2.4 Code …………………………………………………………………… 10 Chương 3: KẾT LUẬN …………………………………………………… 13 Tài liệu tham khảo ………………………………………………… 13 Báocáođồán kĩ thuật đo Nhóm CHƯƠNG 1:TỔNG QUAN VỀ CẢMBIẾN 1.1 Khái niệm chung cảmbiến Bộ cảmbiến thiết bị điện tửcảm nhận trạng thái hay q trình vật lý hay hóa học mơi trường cần khảo sát, biến đổi thành tín hiệu điện để thu thập thông tin trạng thái hay q trình Đại lượng vật lý hóa học INPUT Cảmbiến OUTPUT điện Tín hiệu 1.2 Khái niệm cảmbiếntiệmcậntừCảmbiếntiệmcậntừ (còn gọi “Cơng tắc tiệmcận từ” ) phản ứng có vật gần cảmbiến phát vật cách tạo trường điện từ, Trong hầu hết trường hợp, khoảng cách vài mm 1.3 CảmbiếntiệmcậntừLJ12A3 1.3.1 Khái niêm cảmbiếntiệmcận từ: - Cảmbiếntiệmcậntừ phát vật cách tạo trường điện từ Dĩ nhiên thiết bị phát vật kim loại 1.3.2 Cấu tạo cảmbiếntiệmcận từ: - Cuộn điện từ - Lõi từ - Bộ dao động khối ổn áp 1.3.3 Nguyên lí hoạt động cảmbiếntiệmcận từ: - Cảmbiếntiệmcậntừbao gồm cuộn dây đ ược cu ốn quanh m ột lõi t đầu cảm ứng Sóng cao tần qua lõi dây t ạo m ột tr ường ện t dao động quanh Trường điện từmạch bên ki ểm soát - Khi vật kim loại di chuy ển v ề phía này, t ạo dòng điên ( dòng ện xốy) vật Báocáođồán kĩ thuật đo Nhóm - Những dòng điện gây tác động nh máy bi ến th ế, l ượng cuộn phát giảm dao động giảm xuống; độ mạnh t tr ường giảm - Mạch giám sát phát m ức dao động gi ảm sau thay đ ổi đ ầu vật phát 1.3.4 Các thơng số cảm biến: • Nguồn cấp: 6-36 V DC • Giới hạn đo: 0-4 mm • Thơng số ngõ cảm biến: tín hiệu số từ V 1.3.5 Tính tốn điện trở ngõ CB kết nối với ARM V2 = R2 Chọn R = 33kΩ R = 13kΩ Báocáođồán kĩ thuật đo Nhóm CHƯƠNG 2: QUÁ TRÌNH THỰC HIỆN 2.1 Các linh kiện sử dụng 2.1.1 Vi điều khiển ARM STM32F407: Kết nối với cảm biến,màn hình LCD 2.1.2: Cảmbiến tiện cậntừ LJ12A3-4-Bx Báocáođồán kĩ thuật đo Nhóm 2.1.3: Điện trở: sử dụng để đầu cảmbiến V 2.1.4 LCD 16×02 : Xuất giá trị 2.1.5 Phần mềm nạp code cho ARM STM32F407 : Keil V5 Báocáođồán kĩ thuật đo Nhóm 2.1.6: Bộ giao tiếp I2C: module chuyển đổi I2C cho LCD 2.1.7: Phần mền sinh code Báocáođồán kĩ thuật đo Nhóm 2.2 Sơ đồ lắp mạch mơ hình đấu dây 2.3 Lưu đồ giải thuật Cấp nguồn Data = LOW HAL_exit_callback S Đ Count ++ Báocáođồán kĩ thuật đo Nhóm Sau cấp nguồn cho mạch, STM32 đọc giá trị digital cảmbiến cho tín hiệu số Nếu có kim loại tính hiệu thấp biếnđếm count tăng thêm đơn vị 2.4 Cấu hình chân STM32cube: 2.4 Code: #include "main.h" #include "stm32f4xx_hal.h" #include "i2c-lcd.h" #include "stdio.h" uint8_t count=0; char x [5],so1[5]; I2C_HandleTypeDef hi2c1; void SystemClock_Config(void); static void MX_GPIO_Init(void); static void MX_I2C1_Init(void); int main(void) { 10 Báocáođồán kĩ thuật đo HAL_Init(); Nhóm SystemClock_Config(); MX_GPIO_Init(); MX_I2C1_Init(); lcd_init (); lcd_send_cmd(0x80); lcd_send_string("MON KTD 2:"); lcd_send_cmd(0xc0); lcd_send_string("so sp la:"); while (1) { } } void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) { count++; HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_12); lcd_send_cmd(0xCA); sprintf(x,"%3d",count); lcd_send_string(x); } void SystemClock_Config(void) { RCC_OscInitTypeDef RCC_OscInitStruct; RCC_ClkInitTypeDef RCC_ClkInitStruct; HAL_RCC_PWR_CLK_ENABLE(); HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1); RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI; RCC_OscInitStruct.HSIState = RCC_HSI_ON; RCC_OscInitStruct.HSICalibrationValue = 16; RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE; if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) { 11 Báocáođồán kĩ thuật đo Error_Handler( FILE_, _LINE_); } RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK| RCC_CLOCKTYPE_SYSCLK |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2; RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_HSI; RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1; RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1; Nhóm if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_0) != HAL_OK) { Error_Handler( FILE_, _LINE_); } HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq()/1000); HAL_SYSTICK_CLKSourceConfig(SYSTICK_CLKSOURCE_HCLK); HAL_NVIC_SetPriority(SysTick_IRQn, 0, 0); } static void MX_I2C1_Init(void) { hi2c1.Instance = I2C1; hi2c1.Init.ClockSpeed = 100000; hi2c1.Init.DutyCycle = I2C_DUTYCYCLE_2; hi2c1.Init.OwnAddress1 = 0; hi2c1.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT; hi2c1.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE; hi2c1.Init.OwnAddress2 = 0; hi2c1.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE; hi2c1.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE; if (HAL_I2C_Init(&hi2c1) != HAL_OK) { Error_Handler( FILE_, _LINE_); } } static void MX_GPIO_Init(void) { GPIO_InitTypeDef GPIO_InitStruct; HAL_RCC_GPIOC_CLK_ENABLE(); HAL_RCC_GPIOB_CLK_ENABLE(); 12 Báocáođồán kĩ thuật đo Nhóm HAL_GPIO_WritePin(GPIOB, GPIO_PIN_12|GPIO_PIN_13, GPIO_PIN_RESET); GPIO_InitStruct.Pin = GPIO_PIN_0; GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING; GPIO_InitStruct.Pull = GPIO_NOPULL; HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); GPIO_InitStruct.Pin = GPIO_PIN_12|GPIO_PIN_13; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); HAL_NVIC_SetPriority(EXTI0_IRQn, 0, 0); HAL_NVIC_EnableIRQ(EXTI0_IRQn); } void _Error_Handler(char *file, int line) { while(1) { } } #ifdef USE_FULL_ASSERT void assert_failed(uint8_t* file, uint32_t line) { } #endif 13 Báocáođồán kĩ thuật đo Nhóm CHƯƠNG 3: KẾT LUẬN Sau thời gian tìm hiểu qua nghiên cứu, nhóm tìm hiểu thành công hoạt động ứng dụngcảmbiếntiệmcậntừ thành cơng Cảmbiến dược ứng dụng nhiều đời sống: ví dụ hệ thống tự động đếmsảnphẩm vật liệu kim loại dây chuyền tự động, … Tài liệu tham khảo LJ12A3 datasheet Wikipedia Giáo trình kỹ thuật đo 14 ... lcd_send_cmd(0x80); lcd_send_string("MON KTD 2:"); lcd_send_cmd(0xc0); lcd_send_string("so sp la:"); while (1) { } } void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) { count++; HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_12);... HAL_NVIC_SetPriority(EXTI0_IRQn, 0, 0); HAL_NVIC_EnableIRQ(EXTI0_IRQn); } void _Error_Handler(char *file, int line) { while(1) { } } #ifdef USE_FULL_ASSERT void assert_failed(uint8_t* file, uint32_t line) { } #endif 13