Tải bản đầy đủ (.docx) (14 trang)

báo cáo đồ án mạch đếm sản phẩm ARM STM32F4 dùng cảm biến tiệm cận từ LJ12A3 ngắt ngoài. hiển thị ra LCD I2C

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (800.38 KB, 14 trang )

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ÁO CÁO
HỌC PHẦN: KỸ THUẬT ĐO II

ĐỀ TÀI:
CẢM BIẾN TIỆM CẬN TỪ LJ12A3-4-BX

Giảng viên hướng dẫn : DƯƠNG THÙY LIÊN
Nhóm thực hiện

: NHÓM 3

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 của thế giới về mọi mặt,trong đó khoa học công nghệ nói
chung và lĩnh vực điện-điện tử nói riêng đang nỗi lên mạnh mẽ và phát triển rất vượt
bậc làm cho thế giới hiện nay ngày càng văn minh và hiện đại hơn.Với sự ra đời của



Báo cáo đồ án kĩ thuật đo 2
Nhóm 3
cảm biến,vai trò của nó rất là quan trọng,nó được sử dung như những thiết bị cảm
nhận và phát hiện và đặc biệt hơn chúng thể hiện vai trò vô cùng đặc biệt của mình
trong kĩ thuật công nghiêp, đo lường, kiểm tra và điều khiển tự động.
Với những ứng dụng quan trọng như vậy, nhóm 3 đã chọn đề tài CẢM BIẾN TIỆM
CẬN TỪ (LJ12A3-4-Bx) nhằm mục đích tìm hiểu, nghiên cứu về nguyên lý làm
việc của các cảm biến tiệm cận.
Song song với đó là tìm hiểu quá trình hoạt động và điều khiển,truy xuất dữ liệu ra
màn hình LCD, vi điều khiển ARM STM32F407VE và có thể mô phỏng thực tế.
Dù đã cố gắng để hình thành mô hình nhưng có thể có những thiếu sót, mong cô và
các bạn cùng đóng góp ý kiến để mô hình hoàn chỉnh hơn. Qua đây, nhóm 3 cũng
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 3 thực hiện mô hình này.

2


Báo cáo đồ án kĩ thuật đo 2

Nhóm 3
MỤC LỤC

Trang
LỜI NÓI ĐẦU ……………………………………………………………
2
MỤC LỤC……………………………………………………………….... 3
Chương 1: TỔNG QUAN VỀ CẢM BIẾN TIỆM CẬN TỪ
1.1 Khái niệm chung về cảm biến

……………………………………… 4
1.2 Khái niệm về từ trường ………………………………………………. 4
1.3 Cảm biến LJ12A3………………………………………………. . . . . . . 4
1.3.2 Cấu tạo cảm biến tiệm cận ……………………………………… 4
1.3.3 Nguyên lí hoạt động ……………………………………………. 4
1.3.4 Các thông số của cảm biến ……………………………………..... 5
Chương 2: QUÁ TRÌNH THỰC HIỆN
2.1 Các linh kiện sử dụng ……………………………………………… …. 6
2.1.1 ARM STM32F407 ……………………………………………… 6
2.1.2 Điện trở 33k, 6.8k ………………………………………………… 6
2.1.3 LCD 16,02 …………………………………………………… …... 6
2.1.4 Phần mềm nạp code cho STM32 …………………………………. 7
2.1.5 Bộ giao tiếp I2C…………………………………………………... 7
2.1.6 Phần mền sinh code ……………………………………………… 7
2.2 Sơ đồ lắp mạch và sơ đồ đấu dây ……………………………………… 8
2.3 Lưu đồ giải thuật …………………………………………………… ..… 9
2.4 Code ……………………………………………………………………. 10
Chương 3: KẾT LUẬN ……………………………………………………. 13
Tài liệu tham khảo ………………………………………………….. 13

3


Báo cáo đồ án kĩ thuật đo 2

Nhóm 3

CHƯƠNG 1:TỔNG QUAN VỀ CẢM BIẾN
1.1 Khái niệm chung về cảm biến.
Bộ cảm biến là thiết bị điện tử cảm nhận những trạng thái hay quá trình vật lý hay

hóa học ở môi trường cần khảo sát, và biến đổi thành tín hiệu điện để thu thập thông
tin về trạng thái hay quá trình đó.
Đại lượng vật lý
hóa học

INPUT

Cảm biến

OUTPUT
điện

Tín hiệu

1.2 Khái niệm về cảm biến tiệm cận từ.
Cảm biến tiệm cận từ (còn được gọi là “Công tắc tiệm cận từ” ) phản ứng khi có
vật ở gần cảm biến phát hiện các vật bằng cách tạo ra trường điện từ, Trong hầu hết
các trường hợp, khoảng cách này chỉ là vài mm
1.3 Cảm biến tiệm cận từ LJ12A3
1.3.1 Khái niêm về cảm biến tiệm cận từ:
- Cảm biến tiệm cận từ phát hiện được vật bằng cách tạo ra trường điện từ. Dĩ
nhiên thiết bị chỉ phát hiện được vật bằng kim loại.
1.3.2 Cấu tạo cảm biến tiệm cận từ:
- Cuộn điện từ
- Lõi từ
- Bộ dao động và khối ổn áp

1.3.3 Nguyên lí hoạt động của cảm biến tiệm cận từ:
- Cảm biến tiệm cận từ bao gồm một cuộn dây đ ược cu ốn quanh m ột lõi t ừ


đầu cảm ứng. Sóng cao tần đi qua lõi dây này sẽ t ạo ra m ột tr ường đi ện t ừ
dao động quanh nó. Trường điện từ này được một mạch bên trong ki ểm soát.
- Khi vật kim loại di chuy ển v ề phía này, sẽ t ạo ra dòng điên ( dòng đi ện
xoáy) trong vật
4


Báo cáo đồ án kĩ thuật đo 2
Nhóm 3
- Những dòng điện này gây ra tác động nh ư máy bi ến th ế, do đó năng l ượng
trong cuộn phát hiện giảm đi và dao động giảm xuống; độ mạnh của t ừ tr ường
giảm đi.
- Mạch giám sát phát hiện ra m ức dao động gi ảm đi và sau đó thay đ ổi đ ầu
ra. vật đã được phát hiện.

1.3.4 Các thông số của cảm biến:

• Nguồn cấp: 6-36 V DC
• Giới hạn đo: 0-4 mm
• Thông số ngõ ra của cảm biến: tín hiệu số từ 0 V
1.3.5 Tính toán điện trở ngõ ra CB kết nối với ARM

V2 = R2.
Chọn R 1 = 33kΩ
R 2 = 13kΩ

5


Báo cáo đồ án kĩ thuật đo 2


Nhóm 3

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ảm biến tiện cận từ LJ12A3-4-Bx

6


Báo cáo đồ án kĩ thuật đo 2

Nhóm 3

2.1.3: Điện trở: sử dụng để đầu ra cảm biến được 3 V

2.1.4 LCD 16×02 : Xuất ra giá trị.

2.1.5. Phần mềm nạp code cho ARM STM32F407 : Keil V5

7


Báo cáo đồ án kĩ thuật đo 2

Nhóm 3

2.1.6: Bộ giao tiếp I2C: module chuyển đổi I2C cho LCD


2.1.7: Phần mền sinh code.

8


Báo cáo đồ án kĩ thuật đo 2

Nhóm 3

2.2 Sơ đồ lắp mạch và 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 ++

9


Báo cáo đồ án kĩ thuật đo 2


Nhóm 3

Sau khi cấp nguồn cho mạch, STM32 sẽ đọc giá trị digital của cảm biến cho ra tín
hiệu số.
Nếu có kim loại tính hiệu sẽ ở mất thấp khi đó biến đếm count sẽ tăng thêm 1 đơ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áo cáo đồ án kĩ thuật đo 2
HAL_Init();

Nhóm 3

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áo cáo đồ án kĩ thuật đo 2
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 3

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áo cáo đồ án kĩ thuật đo 2

Nhóm 3

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áo cáo đồ án kĩ thuật đo 2

Nhóm 3

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 và
ứng dụng của cảm biến tiệm cận từ thành công.
Cảm biến có thể dược ứng dụng nhiều trong đời sống: ví dụ như hệ thống tự động
đếm sản phẩm bằng vật liệu kim loại trong dây chuyền tự động, ….


Tài liệu tham khảo
 LJ12A3 datasheet
 Wikipedia
 Giáo trình kỹ thuật đo 2

14



×