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

Mô hình băng tải đếm sản phẩm hiển thị bằng led 7 đoạn

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 (1001.23 KB, 24 trang )

ĐẠI HỌC LẠC HỒNG
KHOA CƠ ĐIỆN ĐIỆN TỬ
---

BÁO CÁO MÔN HỌC VI ĐIỀU KHIỂN
Đề tài:

MƠ HÌNH BĂNG TẢI ĐẾM SẢN PHẨM HIỂN
THỊ BẰNG LED 7 ĐOẠN

GVHD: Th.S NGÔ KIM LONG


MỤC LỤC
CHƯƠNG 1 MỞ ĐẦU

1

1.1 Lý do chọn đề tài

1

1.2 Mục tiêu nghiên cứu

1

1.3 Phạm vi nghiên cứu

1

1.4 Kết quả đạt được



1

CHƯƠNG 2 CƠ SỞ LÝ THUYẾT

2

2.1 Sơ đồ khối hệ thống

2

2.2 Phần cứng

2

2.2.1 Vi xử lí: STM43F411 Discovery
Error! Bookmark not defined.

2.2.2 LED 7 đoạn Anode chung 0.5 Inch 74HC595

3

2.2.3 Cảm Biến Vật Cản Hồng Ngoại E3F-DS10C4

3

2.2.4 Động cơ

6


2.2.5 Đèn

6

2.2.6 Băng tải

7

2.2.7 Nguồn tổ ong

8

2.2.8 Nút nhấn

8

2.3 Phần mềm hỗ trợ

10

2.3.1 STM32CubeMX

11

2.3.2 Keilc V5

11

CHƯƠNG 3 THIẾT KẾ


110
3.1 Bài toán đặt ra
110


3.2 Giai quyết bài toán
1Error! Bookmark not defined.

3.2.1 Sơ đồ giải thuật

18

3.2.2 Các bước thực hiện cấu hình và code

18

3.2.3 Code chương trình
CHƯƠNG 4 KẾT LUẬN
220
4.1 Kết quả đạt được
220
4.2 Hạn chế
220

4.3 Hướng phát triển
TÀI LIỆU THAM KHẢOError! Bookmark not defined.
DANH MỤC BẢNG BIỂUError! Bookmark not defined.

22



Chương 1 Mở đầu

DANH MỤC HÌNH ẢNHError! Bookmark not defined.

CHƯƠNG 1

MỞ ĐẦU

1.1 Lý do chọn đề tài
Để ứng dung trong các mạch chứ c năng, những ứng dung cơ bản
không cần tốc đô ̣ xử lý nhanh các chíp vi điều khiển có đô ̣ rộng dữ liêu 8
bit vẫn còn được sử dung rộng rãi và được ứng dụng rất nhiều trong thực
tế. Cụ thể trong nôi dụng đề tài nghiên cứu này ta sẽ dành thời gian nghiên
cứu về ứ ng chíp vi xử lý 8 bit trong mô hình mạch đếm sản phẩm công
nghiệp

1.2 Mục tiêu nghiên cứu
Chương trình được viết trên vi xử lý phục vu ̣ cho mạch đếm sản phẩm cơ
bản nhất phải đáp ứng một số yêu cầu cơ bản sau..
Phát hiêṇ ra sự thay đổi mức logic được lấy từ tín hiệu ra từ cảm biến hồng ngoại.
Kích cờ tràn trong bô ̣đếm couter 0 tạo 1 sự kiện ngắt couter để đếm và hiển
thi ̣trên LED7 đoạn.
Phát hiện ra các switch được ấn để tăng giảm hiển thi ̣số cài đăt. ̣

1.3 Phạm vi nghiên cứu
- Mơ hình băng tải đếm sản phẩm hiển thị bằng led 7 đoạn
- Sử dụng VĐK STM32F411 Discovery
- Hiển thị số lượng trên Led 7 đoạn.
- Khi số lượng đếm bằng số lượng quy định trước đó thì dừng động cơ và

có đèn báo.
- Người dùng thiết lập số lượng qua nút nhấn

1.4 Kết quả đạt được
Mạch đếm sản phẩm cho ta khả năng thiết lập số sản phẩm cần đếm cho
trước sau khi đếm được bằng đó sản phẩm thì mạch đếm sẽ đếm lại từ
đầu.
Do đó Chương trình trên vi xử lý cũng phải phát hiên được thời điểm số đếm đươc̣
bằng số đếm được cài đặt trướ c sau đó sẽ tự động reset đếm lại từ đầu.

Trang 1


Chương 2 Cở sở lý thuyết

CHƯƠNG 2

CƠ SỞ LÝ THUYẾT

2.1 Sơ đồ khối hệ thống

Hình 2.1 Sơ đồ khối hệ thống

2.2 Phần cứng

2.2.1 Vi xử lí: STM43F411 Discovery
Kit STM32F411 Discovery (ARM Cortex M4 + DSP Core) là phiên bản nâng cấp của
kit STM32F407 Discovery được sử dụng rất phổ biến hiện nay trong các nghiên cứu
về dòng ARM STM32F4, kit có thiết kế phần cứng tương tự (gần như tương đương)
với STM32F407 chỉ thay đổi CPU từ dòng F407 thành F411.

Thông số kỹ thuật STM32F411 Discovery:
-Điện áp hoạt động: từ 3V -5V

Trang 2


Chương 2 Cở sở lý thuyết

- Bộ vi điều khiển STM32F411VET6 có bộ nhớ Flash 512 KB, RAM 128 KB trong
gói LQFP100
-ST-LINK / V2 tích hợp trên bo mạch với công tắc chế độ lựa chọn để sử dụng bộ
này như một ST-LINK / V2 độc lập (với đầu nối SWD để lập trình và gỡ lỗi)
-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

Hình 2.2.1 STM43F411 Discovery

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 được thiết kế giúp bạn có thể dễ dàng
điều khiển và hiển thị thơng tin lên 2 led 7 đoạn chỉ với 3 chân giao tiếp thơng qua IC
ghi dịch 74HC595, ngồi ra mạch cịn có khả năng mở rộng thêm các led tiếp theo
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:
Trang 3


Chương 2 Cở sở lý thuyết

Nguồn sử dụng: 3 ~ 6VDC.
Dòng điện sử dụng: 50mA
IC Driver: 74HC595.
3 chân giao tiếp: SCLK, RCLK, DIO.
Hiển thị 2 led 7 đoạn cỡ 0.5''.
Kích thước: 25 x 38mm

Hình 2.2.2.1 Led 7
Inch 74HC595

đoạn 0.5

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 Adjustable IR Infrared Proximity Sensor
là loại chất lượng tốt với độ bền và độ ổn định cao, cảm biến sử dụng ánh sáng hồng
ngoại để xác định vật cản phía trước cảm biến, cảm biến phát ra tia hồng ngoại với
dải tần số chuyên biệt cho khả năng chống nhiễu tốt kể cả ở điều khiện ánh sáng
ngoài trời.
Trang 4



Chương 2 Cở sở lý thuyết

Cảm biến vật cản hồng ngoại E3F-DS10C4 Adjustable IR Infrared Proximity Sensor
có thể chỉnh khoảng cách mong muốn thông qua biến trở trên cảm biến, cảm biến có
ngõ ra là cấu trúc Transistor NPN (sinking sensors) đã được nối điện trở nội 10k lên
VCC nên có thể sử dụng ngay mà khơng cầ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:

Model: 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: dạng Transistor NPN đã được kéo nội trở 10k lên VCC, khi có
vật cản sẽ ở mức thấp (Low-GND), khi khơng có vật cản sẽ xuất ra mức cao (HighVCC).
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ỏ ngồi nhựa ABS, phía trong đổ keo chống nước, chống va
đập.
Kích thước: 18 x 68mm

Hình 2.2.3.1 Cảm
Biến Vật Cản Hồng Ngoại E3F-DS10C4

Trang 5



Chương 2 Cở sở lý thuyết

Hình 2.2.3.2 Sơ đồ cấu tạo của cảm biến

2.2.4 Động cơ
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)

Hình 2.2.4 Động cơ

2.2.5 Đèn
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.
Trang 6



Chương 2 Cở sở lý thuyết

Hình 2.2.5 Đèn

2.2.6 Băng tải

2.2.7 Nguồn tổ ong
Thông số kỹ thuật:
Điện áp đầu vào: 180V-240V
Tần số hoạt động: 47 ~ 63HZ
Công suất: 60W
Điện áp đầu ra: 12V
Dòng điện tối đa: 10A
Điện áp điều chỉnh: ± 10%
Hiệu suất ≥ 85%
Đ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
Nhiệt độ làm việc: -20 ℃ ~ 60 ℃
Nhiệt độ bảo quản -40 ℃ ~ 85 ℃
Kích thước: 110 * 78 * H36 (mm)

Trang 7


Chương 2 Cở sở lý thuyết


Hình 2.2.7 Nguồn tổ ong

2.2.8 Nút nhấn
Thông số kỹ thuật:
Lỗ lắp ốc: 10mm
Phi nút bấm: 8mm
Số chân: 2 chân
Công suất làm việc: 125VAC 2A
Tuổi thọ: 20.0000 Lần
Trọng lượng: 2g

Hình 2.2.8 Nút nhấn

2.3Phần mềm hỗ trợ lập trình.

2.3.1 STM32CubeMX:
STM32CubeMX là một cơng cụ hỗ trợ cấu hình và tạo code cho MCU STM32.
Tất cả các cơng việc cấu hình, nâng cấp đều được thực hiện qua giao diện đồ họa.
Việc này giúp cho việc lập trình trên STM32 dễ dàng hơn, rút ngắn được thời gian
nghiên cứu và phát triển.

Trang 8


Chương 2 Cở sở lý thuyết

Hình 2.3.1: Phần mềm Stm32CubeMx.

2.3.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 Devel- opment 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.
 Keil C là môi trường phát triển khá mạnh và được sử dụng rộng rãi hiện nay.
Nó hỗ trợ ta viết chương trình cho các chip vi điều khiển lõi 8051 và ARM của
tất cả các hãng trên thế giới.


Hình 2.3.2: Phần mềm KeilC Version5.

Trang 9


Chương 3 Phát biểu vấn đề

CHƯƠNG 3

THIẾT KẾ

3.1 THIẾT KẾ
3.1.1 Bài tốn đặt ra
Mơ hình băng tải đếm sản phẩm hiển thị bằng led 7 đoạn khi số lượng đếm bằng số
lượng quy định trước đó thì dừng động cơ và có đèn báo. Người dùng thiết lập số
lượng qua nút nhấn.
Như vậy, vi điều khiển STM32 sẽ nhận tín hiệu (Digital) từ nút nhấn gửi về, xử lí, và
hiển thị trạng thái lên LED 7 đoạn.Khi nhấn Start thì động cơ chạy và cảm biến sẽ
xuất tín hiệu cho vi điều khiển . Ta sẽ tiến hành nhập số lượng mong muốn bằng nút
nhấn ( giới hạn 99 sản phẩm), vi điều khiển sẽ xuất tín hiệu cho động cơ dừng khi đạt
đủ số lượng cài đặt trước đó.

Port


PIN

Cấu hình

GPIOB

PIN 0,1,3

INPUT

GPIOD

PIN0,1,13,14,15

OUTPUT

GPIOA

PIN 0

INPUT

GPIOD

PIN 2

INPUT

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
PD2: Cảm biến – Input
PD0: DC – Output
PD1: Đèn – Output
PD13,14,15: LED 7 đoạn -Output
PA0: Start – output
PB0: UP – Input
PB1: DOWN- Input
PB3: Mode- Input
3.1.2 Sơ đồ kết nối

Trang 10


Chương 3 Phát biểu vấn đề

Hình 3.1.2: Sơ đồ kết nối
3.2.1 Giai quyết bài toán
3.2.1.1 Sơ đồ giải thuật

Trang 11


Chương 3 Phát biểu vấn đề

Hình 3.2.1.1: Sơ đồ giải thuật

Trang 12



Chương 3 Phát biểu vấn đề

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
3.2.2.1 Thực hiện cấu hình

Trang 13


Chương 3 Phát biểu vấn đề
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

3.2.3 Code chương trình

Trang 14


Chương 3 Phát biểu vấn đề
#include "main.h"
uint16_t
pinled[]={GPIO_PIN_0,GPIO_PIN_1,GPIO_PIN_3,GPIO_PIN_2,GPIO_PIN_13,GPIO_PI
N_14,GPIO_PIN_15};
uint8_t caidat=0, gtcaidat=0, counter=0,dv,ch;
uint8_t maled[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};

void SystemClock_Config(void);
static void MX_GPIO_Init(void);
void hienthiled(uint8_t maled)
{
for(uint8_t i=0;i<8;i++)
{
HAL_GPIO_WritePin(GPIOD, GPIO_PIN_13,0);
HAL_GPIO_WritePin( GPIOD, GPIO_PIN_14,(maled <HAL_GPIO_WritePin(GPIOD, GPIO_PIN_13,1);
}
}
void xuatled(uint8_t giatri)
{
dv=giatri%10;
ch=giatri/10;

}

HAL_GPIO_WritePin(GPIOD, GPIO_PIN_15,0);
hienthiled(maled[dv]);
hienthiled(maled[ch]);
HAL_GPIO_WritePin(GPIOD, GPIO_PIN_15,1);
HAL_Delay(50);

int main(void)
{
HAL_Init();
SystemClock_Config();
MX_GPIO_Init();
while (1)

{
if(caidat==0) xuatled(counter);
{

if(HAL_GPIO_ReadPin (GPIOB, GPIO_PIN_3)==0) //vào che do cai dat
Trang 15


Chương 3 Phát biểu vấn đề

}
if(caidat==1)
{

xuatled(88);
caidat=1;

if(HAL_GPIO_ReadPin (GPIOB, GPIO_PIN_0)==0) // nút up
{
gtcaidat++;
while(HAL_GPIO_ReadPin (GPIOB, GPIO_PIN_0)==0)
{
}
}
if(HAL_GPIO_ReadPin (GPIOB, GPIO_PIN_1)==0) //nút dow
{
gtcaidat--;
while(HAL_GPIO_ReadPin (GPIOB, GPIO_PIN_0)==0)
{
}

}
if(HAL_GPIO_ReadPin (GPIOB, GPIO_PIN_3)==0)
{
caidat=0;
while(HAL_GPIO_ReadPin (GPIOB, GPIO_PIN_3)==0)
{
}
}
xuatled( gtcaidat);
}

if(HAL_GPIO_ReadPin (GPIOA, GPIO_PIN_0)==0) // start
{
HAL_GPIO_WritePin (GPIOD, GPIO_PIN_0,1);
if(HAL_GPIO_ReadPin (GPIOD, GPIO_PIN_2)==1)
{
counter++;
xuatled(counter);
while(HAL_GPIO_ReadPin (GPIOD, GPIO_PIN_2)==1)
{
};
if(counter>=gtcaidat)
{

HAL_GPIO_WritePin (GPIOD, GPIO_PIN_0,0);
HAL_GPIO_WritePin (GPIOD, GPIO_PIN_1,1);
Trang 16


Chương 3 Phát biểu vấn đề

counter=0;
}

}

}

}

}
void SystemClock_Config(void)
{
RCC_OscInitTypeDef RCC_OscInitStruct = {0};
RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
/** Configure the main internal regulator output voltage
*/
__HAL_RCC_PWR_CLK_ENABLE();
__HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCAL
E1);
/** Initializes the CPU, AHB and APB busses clocks
*/
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;
RCC_OscInitStruct.HSEState = RCC_HSE_ON;
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
RCC_OscInitStruct.PLL.PLLM = 8;
RCC_OscInitStruct.PLL.PLLN = 200;
RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2;
RCC_OscInitStruct.PLL.PLLQ = 4;
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)

{
Error_Handler();
}
/** Initializes the CPU, AHB and APB busses clocks
*/
RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|
RCC_CLOCKTYPE_SYSCLK
|RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;
RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2;
RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;

}

if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_3) != HAL_OK)
{
Error_Handler();
}

Trang 17



×