HỆ THỐNG NHÚNG Thực hiện ADC hiện thị lên led 7 thanh và đọc giá trị các kênh

18 67 0
HỆ THỐNG NHÚNG Thực hiện ADC hiện thị lên led 7 thanh và  đọc giá trị các kênh

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG KỸ THUẬT ĐIỆN – ĐIỆN TỬ *** BÁO CÁO BÀI TẬP HỆ THỐNG NHÚNG Thực ADC thị lên led đọc giá trị kênh Giảng viên: TS Nguyễn Ngọc Minh Sinh viên nhóm 01 Đặng Văn Hưng Đỗ Xuân Lộc Nguyễn Hữu Hùng Phạm Văn Thưởng Hà Nội, 2021 - B18DCDT100 - B18DCDT139 - B18DCDT092 - B18DCDT251 Báo cáo tập cuối kì Nhóm Mục lục LỜI NÓI ĐẦU Ngày nay, hệ thống nhúng trở nên phổ biến đóng vai trị quan trọng đời sống người Ví dụ quanh ta có nhiều sản phẩm nhúng lị vi sóng, nồi cơm điện, điều hịa, điện thoại di động, tơ, máy bay, tàu thủy, đầu đo, cấu chấp hành thơng minh, robot v.v ta thấy hệ thống nhúng có mặt lúc nơi sống Qua môn học hệ thống nhúng, chúng em hiểu thêm hệ thống nhúng thực tế, đặc điểm, tính ưu việt tính ứng dụng chúng người Với mong muốn làm rõ kiến thức học giới thiệu ứng dụng hệ thống nhúng, nhóm chúng em đưa mơ hình thiết kế kênh ADC đọc giá trị cảm biến biến trở hiển thị lên led có nút nhấn chọn cảm biến hiển thị – sản phẩm quen thuộc cần thiết đời sống Do thời gian thực kiến thức hạn chế nên cịn nhiều sai sót q trình thực đề tài, mong bổ sung đóng góp thầy bạn Chúng em xin chân thành cảm ơn thầy cô khoa điện tử, cảm ơn thầy Minh tận tình hướng dẫn giúp đỡ chúng em thực hoàn thành đề tài Báo cáo tập cuối kì Nhóm Giới thiệu đề tài I Hiểu rõ cách hoạt động ADC ứng dụng nhiều đo nhiệt độ, đọc giá trị điện áp, cường độ dòng điện, đọc phím nhấn, đọc giá trị biến trở, bảo vệ động cơ…, ADC có số bit cao tức độ phân giải ADC lớn Sử dụng ADC STM32F103R6 để đọc giá trị biến trở sau hiển thị lên LED7thanh Thay đổi giá trị ADC cách thay đổi vị trí trỏ biến trở Làm rõ ADC STM32F103R6, lập trình giao tiếp với led II • Sơ đồ nguyên lý Mạch nguyên lý mô fritzing Báo cáo tập cuối kì Nhóm H/a: Mạch nguyên lý mô fritzing III Linh kiện sử dụng STM32F103C8T6 Báo cáo tập cuối kì Nhóm STM32 dịng chip phổ biến ST với nhiều họ thông dụng F0,F1,F2,F3,F4… Stm32f103 thuộc họ F1 với lõi ARM COTEX M3 STM32F103 vi điều khiển 32 bit, tốc độ tối đa 72Mhz Giá thành rẻ so với loại vi điều khiển có chức tương tự Mạch nạp cơng cụ lập trình đa dạng dễ sử dụng • • • • Cấu hình chi tiết : ARM 32-bit Cortex M3 với clock max 72Mhz Bộ nhớ: o 64 kbytes nhớ Flash(bộ nhớ lập trình) o 20kbytes SRAM Clock, reset quản lý nguồn o o Điện áp hoạt động 2.0V -> 3.6V Power on reset(POR), Power down reset(PDR) programmable voltage detector (PVD) o Sử dụng thạch anh từ 4Mhz -> 20Mhz o Thạch anh nội dùng dao động RC mode 8Mhz 40khz Báo cáo tập cuối kì o • • • • Sử dụng thạch anh 32.768khz sử dụng cho RTC Trong trường hợp điện áp thấp: o Có mode :ngủ, ngừng hoạt động hoạt động chế độ chờ o Cấp nguồn chân Vbat pin để hoạt động RTC sử dụng lưu trữ data nguồn cấp ADC 12 bit với kênh cho o Khoảng giá trị chuyển đổi từ – 3.6V o Lấy mẫu nhiều kênh kênh o Có cảm biến nhiệt độ nội DMA: chuyển đổi giúp tăng tốc độ xử lý khơng có can thiệp q sâu CPU o kênh DMA o Hỗ trợ DMA cho ADC, I2C, SPI, UART timer o o o o • Nhóm timer 16 bit hỗ trợ mode IC/OC/PWM timer 16 bit hỗ trợ để điều khiển động với mode bảo vệ ngắt input, dead-time watdog timer dùng để bảo vệ kiểm tra lỗi sysTick timer 24 bit đếm xuống dùng cho ứng dụng hàm Delay… Hỗ trợ kênh giao tiếp bao gồm: o o o I2C(SMBus/PMBus) USART(ISO 7816 interface, LIN, IrDA capability, modem control) SPIs (18 Mbit/s) Báo cáo tập cuối kì o CAN interface (2.0B Active) o USB 2.0 full-speed interface Nhóm Kiểm tra lỗi CRC 96-bit ID • Module led số TM1637 Led số led dùng nhiều mô hình điện tử, thiết bị cần hiển thị thơng số: điện áp vào, điện áp Led đoạn số có chân với kích thước nhỏ gọn, màu hiển thị dễ dàng cho việc lắp đặt mạch điện tử • Thơng số kỹ thuật - số - Số chân: chân • Thứ tự chân cách kết nối với Arduino: - VCC : nối với chân 5V - GND : nối với chân GND Báo cáo tập cuối kì Nhóm - CLK DIO gắn vào chân digital Nút nhấn Nút ấn loại công tắc đơn giản điều khiển hoạt động máy số loại trình Hầu hết, nút nhấn nhựa kim loại Hình dạng nút ấn phù hợp với ngón tay bàn tay để sử dụng dễ dàng Tất phụ thuộc vào thiết kế cá nhân Nút ấn có loại nút nhấn thường mở nút nhấn thường đóng Báo cáo tập cuối kì Nhóm Biến trở volume Biến trở thiết bị có điện trở biến đổi theo ý muốn Chúng sử dụng mạch điện để điều chỉnh hoạt động mạch điện Điện trở thiết bị thay đổi cách thay đổi chiều dài dây dẫn điện thiết bị, tác động khác nhiệt độ thay đổi, ánh sáng xạ điện từ, Nguyên lý hoạt động chủ yếu biến trở dây dẫn tách rời dài ngắn khác Trên thiết bị có vi mạch điều khiển hay núm vặn Khi thực điều khiển núm vặn mạch kín thay đổi chiều dài dây dẫn khiến điện trở mạch thay đổi Thực tế việc thiết kế mạch điện tử ln có khoảng sai số, nên thực điều chỉnh mạch điện người ta phải dùng biến trở, lúc biến trở có vai trị phân áp, phân dòng mạch IV Nguyên lý hoạt động Để hiểu nguyên lý hoạt động mạch, trước tiên phải hiểu rõ ADC gì, lập trình ADC STM32F103F6 Báo cáo tập cuối kì Nhóm ADC Analog to Digital Converter chuyển đổi tín hiệu tương tự sang tín hiệu số Được ứng dụng nhiều đo nhiệt độ, đọc giá trị điện áp, cường độ dịng điện, đọc phím nhấn, đọc giá trị biến trở, bảo vệ động cơ…, ADC có số bit cao tức độ phân giải ADC lớn ADC STM32F103R6 ADC có 12 bit, tức giá trị đọc khoảng đến 2^12 = 4096 Hiển thị cho led đoạn Để hiển thị phải xây dựng thư viện riêng, ta cần xây dựng giao thức cần thiết Các giao tiếp ta cần giao diện nối tiếp dây CLK, DIO Dữ liệu vi xử lý nhận giao tiếp với TM1637 giao diện bus hai dây (Lưu ý: Phương thức giao tiếp hồn tồn khơng với giao thức bus 12C khơng có địa phụ) Khi liệu đưa vào, tín hiệu DIO khơng thay đổi CLK mức cao tín hiệu DIO thay đổi tín hiệu CLK mức thấp Khi CLK mức cao DIO thay đổi từ mức cao xuống mức thấp, đầu vào liệu bắt đầu Khi CLK mức cao DIO thay đổi từ mức thấp lên mức cao, đầu vào liệu kết thúc Truyền liệu TM1637 mang tín hiệu trả lời ACK Báo cáo tập cuối kì Nhóm Điều kiện bắt đầu đạt cách hạ thấp dòng DIO dòng đồng hồ trạng thái cao, sau điều kiện dừng hạ xuống Để truyền liệu đúng, tín hiệu trả lời ACK tạo bên chip để hạ chân DIO mức không đạt xung nhịp thứ Dây giao diện DIO phát hành vào cuối xung clock thứ Có loại gói Về hiển thị lên led ta nói đến gói Control display lệnh điều khiển hiển thị chốt liệu lưu trữ ghi bên cách thiết lập B3 B0 B1, B2 sử dụng để hiển thị độ sáng hình Màn hình tắt cách đặt lại B3 Khi lệnh điều khiển hình thực thi, liệu lưu trữ ghi bên chốt xuất chân phân đoạn Báo cáo tập cuối kì Nhóm Ví dụ ghi có giá trị 0x06 (00000110), gói hiển thị điều khiển nhận B3 kích hoạt chân phân đoạn có mức logic sau, theo sơ đồ mạch số hiển thị chữ số a) Lập trình ADC STM32 Khởi tạo biến cấu hình cho ADC GPIO b) Cấp clock cấu hình input ADC PA4 PA5 Báo cáo tập cuối kì c) Cấu hình cho DMA đọc giá trị từ DMA d) Button cấu hình theo sơ đồ sau Nhóm Báo cáo tập cuối kì e) Kết // Includes */ #include "stm32f10x.h" #include #define ARRAYSIZE 8*4 #define ADC1_DR ((uint32_t)0x4001244C) volatile uint16_t ADC_values[ARRAYSIZE]; volatile uint32_t status = 0; void ADCInit(void); void DMAInit(void); int main(void){ uint8_t index; ADCInit(); DMAInit(); //Enable DMA1 Channel transfer DMA_Cmd(DMA1_Channel1, ENABLE); //Start ADC1 Software Conversion ADC_SoftwareStartConvCmd(ADC1, ENABLE); //wait for DMA complete while (!status){}; Nhóm Báo cáo tập cuối kì ADC_SoftwareStartConvCmd(ADC1, DISABLE); //print averages /*for(index = 0; index Channel 7) as analog inputs== GPIO_StructInit(&GPIO_InitStructure); // Reset init structure, if not it can cause issues GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1| GPIO_Pin_2| GPIO_Pin_3| GPIO_Pin_4| GPIO_Pin_5| GPIO_Pin_6| GPIO_Pin_7; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN; GPIO_Init(GPIOA, &GPIO_InitStructure); ADC_InitTypeDef ADC_InitStructure; //ADC1 configuration ADC_InitStructure.ADC_Mode = ADC_Mode_Independent; //We will convert multiple channels ADC_InitStructure.ADC_ScanConvMode = ENABLE; //select continuous conversion mode ADC_InitStructure.ADC_ContinuousConvMode = ENABLE;//! //select no external triggering ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None; //right 12-bit data alignment in ADC data register ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right; //8 channels conversion ADC_InitStructure.ADC_NbrOfChannel = 8; //load structure values to control and status registers ADC_Init(ADC1, &ADC_InitStructure); //wake up temperature sensor //ADC_TempSensorVrefintCmd(ENABLE); //configure each channel ADC_RegularChannelConfig(ADC1, ADC_Channel_0, 1, ADC_SampleTime_41Cycles5); ADC_RegularChannelConfig(ADC1, ADC_Channel_1, 2, ADC_SampleTime_41Cycles5); ADC_RegularChannelConfig(ADC1, ADC_Channel_2, 3, ADC_SampleTime_41Cycles5); ADC_RegularChannelConfig(ADC1, ADC_Channel_3, 4, ADC_SampleTime_41Cycles5); ADC_RegularChannelConfig(ADC1, ADC_Channel_4, 5, ADC_SampleTime_41Cycles5); ADC_RegularChannelConfig(ADC1, ADC_Channel_5, 6, ADC_SampleTime_41Cycles5); ADC_RegularChannelConfig(ADC1, ADC_Channel_5, 7, ADC_SampleTime_41Cycles5); ADC_RegularChannelConfig(ADC1, ADC_Channel_7, 8, ADC_SampleTime_41Cycles5); //Enable ADC1 Nhóm Báo cáo tập cuối kì Nhóm ADC_Cmd(ADC1, ENABLE); //enable DMA for ADC ADC_DMACmd(ADC1, ENABLE); //Enable ADC1 reset calibration register ADC_ResetCalibration(ADC1); //Check the end of ADC1 reset calibration register while(ADC_GetResetCalibrationStatus(ADC1)); //Start ADC1 calibration ADC_StartCalibration(ADC1); //Check the end of ADC1 calibration while(ADC_GetCalibrationStatus(ADC1)); } void DMAInit(void){ //enable DMA1 clock RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE); //create DMA structure DMA_InitTypeDef DMA_InitStructure; //reset DMA1 channe1 to default values; DMA_DeInit(DMA1_Channel1); //channel will be used for memory to memory transfer DMA_InitStructure.DMA_M2M = DMA_M2M_Disable; //setting normal mode (non circular) DMA_InitStructure.DMA_Mode = DMA_Mode_Normal; //medium priority DMA_InitStructure.DMA_Priority = DMA_Priority_High; //source and destination data size word=32bit DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_HalfWord; DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_HalfWord; //automatic memory destination increment enable DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable; //source address increment disable DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable; //Location assigned to peripheral register will be source DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralSRC; //chunk of data to be transfered DMA_InitStructure.DMA_BufferSize = ARRAYSIZE; //source and destination start addresses DMA_InitStructure.DMA_PeripheralBaseAddr = (uint32_t)ADC1_DR; DMA_InitStructure.DMA_MemoryBaseAddr = (uint32_t)ADC_values; //send values to DMA registers DMA_Init(DMA1_Channel1, &DMA_InitStructure); // Enable DMA1 Channel Transfer Complete interrupt DMA_ITConfig(DMA1_Channel1, DMA_IT_TC, ENABLE); DMA_Cmd(DMA1_Channel1, ENABLE); //Enable the DMA1 - Channel1 NVIC_InitTypeDef NVIC_InitStructure; //Enable DMA1 channel IRQ Channel */ NVIC_EnableIRQ(DMA1_Channel1_IRQn); } V Ứng dụng hướng phát triển Mạch chuyển đổi tương tự số hay ADC (viết tắt tiếng Anh: Analog-toDigital Converter) hệ thống mạch thực chuyển đổi tín hiệu analog (tín hiệu tương tự) liên tục, ví dụ tín hiệu âm thanh micro, hay tín hiệu ánh sáng máy ảnh kỹ thuật số, thành tín hiệu Báo cáo tập cuối kì Nhóm số.Một hệ thống ADC bao gồm phận phần cứng (như tính tốn độc lập) làm nhiệm vụ chuyển đổi tín hiệu analog (dưới dạng điện áp hay dịng điện) thành giá trị số (digital) đại diện cho cường độ điện áp hay tín hiệu Thơng thường, tín hiệu số ngõ (digital output) mang dạng nhị phân bù tỉ lệ với giá trị ngõ vào, có số khả khác Có số kiến trúc ADC sử dụng Do phức tạp kiến trúc yêu cầu độ xác, phần lớn hệ thống ADC sản xuất bên mạch tích hợp (IC) Tại ngõ vào ADC chip có phần tử Multiplexer, cho ADC đa ngõ vào hay ADC đa kênh Trước giá thành ADC cao, nên bố trí đến 64 ngõ vào Hiện xuất chip bố trí 1, ngõ vào Ngồi lập trình ADC cịn ứng dụng thực tế cho số lĩnh vực như: - Đo đạc vật lý, hóa học, sinh học, y học, đo lường điện, - Âm nhạc, hình ảnh, truyền hình truyền thơng, - Thơng tin liên lạc, thiết bị dân sinh, chip bố trí 1, ngõ vào VI Tài liệu tham khảo - Bài tập tham khảo từ nhiều nguồn khác nhau: https://deviot.vn/tutorials/stm32f1.23165131/adc-voi-stm32.73721443 https://khuenguyencreator.com/lap-trinh-stm32-doc-adc-mot-kenh/ https://tapit.vn/chuc-nang-adc-su-dung-vi-dieu-khien-stm32f103c8t6/ https://sinhviendien.com/2021/07/03/bai-08-lap-trinh-adc-smt32/ https://vi.wikipedia.org/wiki/ADC#C%C3%A1c_nh%C3%B3m LỜI CẢM ƠN Em xin gửi lời cảm ơn tới nhà trường “Học viện Cơng nghệ Bưu Viễn thơng” đưa mơn học Hệ thống nhúng vào chương trình giảng dạy Đồng thời, em xin chân thành cảm ơn Giảng viên môn –Thầy Minh giảng Báo cáo tập cuối kì Nhóm dạy, hướng dẫn, truyền đạt cho chúng em nhiều kiến thức bổ ích mơn Hệ thống nhúng Trong thời gian học tập, lắng nghe thầy giảng dạy, em tiếp thu thêm nhiều kiến thức bổ ích, học tập tinh thần làm việc hiệu quả, nghiêm túc Đây thực điều cần thiết cho q trình học tập cơng việc sau em Hệ thống nhúng môn học bổ ích cần thiết, gắn liền với nhu cầu thực tiễn Mặc dù học tập tìm hiểu song thời gian học tập không nhiều nên hiểu biết môn Hệ thống nhúng nhóm em cịn hạn chế Vậy nên, tập nhóm cuối kỳ em có thiếu sót chưa xác, nhóm em mong nhận nhận xét, ý kiến đóng góp, phê bình từ phía thầy để làm nhóm hồn thiện Lời cuối cùng, em xin kính chúc thầy nhiều sức khỏe, thành cơng hạnh phúc công việc sống! Hà Nội, ngày 26 tháng 12 năm 2021 Nhóm sinh viên thực Đặng Văn Hưng Đỗ Xuân Lộc Nguyễn Hữu Hùng Phạm Văn Thưởng ... cơ…, ADC có số bit cao tức độ phân giải ADC lớn Sử dụng ADC STM32F103R6 để đọc giá trị biến trở sau hiển thị lên LED7 thanh Thay đổi giá trị ADC cách thay đổi vị trí trỏ biến trở Làm rõ ADC STM32F103R6,... nhiệt độ, đọc giá trị điện áp, cường độ dịng điện, đọc phím nhấn, đọc giá trị biến trở, bảo vệ động cơ…, ADC có số bit cao tức độ phân giải ADC lớn ADC STM32F103R6 ADC có 12 bit, tức giá trị đọc khoảng... thức học giới thiệu ứng dụng hệ thống nhúng, nhóm chúng em đưa mơ hình thiết kế kênh ADC đọc giá trị cảm biến biến trở hiển thị lên led có nút nhấn chọn cảm biến hiển thị – sản phẩm quen thuộc cần

Ngày đăng: 07/02/2022, 15:40

Hình ảnh liên quan

• Cấu hình chi tiết : - HỆ THỐNG NHÚNG Thực hiện ADC hiện thị lên led 7 thanh và  đọc giá trị các kênh

u.

hình chi tiết : Xem tại trang 5 của tài liệu.
Khi lệnh điều khiển màn hình được thực thi, dữ liệu được lưu trữ trong thanh ghi bên trong sẽ được chốt và xuất hiện ở các chân phân đoạn. - HỆ THỐNG NHÚNG Thực hiện ADC hiện thị lên led 7 thanh và  đọc giá trị các kênh

hi.

lệnh điều khiển màn hình được thực thi, dữ liệu được lưu trữ trong thanh ghi bên trong sẽ được chốt và xuất hiện ở các chân phân đoạn Xem tại trang 11 của tài liệu.
a) Khởi tạo biến cấu hình cho ADC và GPIO - HỆ THỐNG NHÚNG Thực hiện ADC hiện thị lên led 7 thanh và  đọc giá trị các kênh

a.

Khởi tạo biến cấu hình cho ADC và GPIO Xem tại trang 12 của tài liệu.
c) Cấu hình cho DMA và đọc giá trị từ DMA - HỆ THỐNG NHÚNG Thực hiện ADC hiện thị lên led 7 thanh và  đọc giá trị các kênh

c.

Cấu hình cho DMA và đọc giá trị từ DMA Xem tại trang 13 của tài liệu.

Mục lục

    I. Giới thiệu đề tài

    II. Sơ đồ nguyên lý

    III. Linh kiện sử dụng

    1. STM32F103C8T6

    2. Module led 7 thanh 4 số TM1637

    IV. Nguyên lý hoạt động

    2. Lập trình trong ADC trong STM32

    a) Khởi tạo biến cấu hình cho ADC và GPIO

    b) Cấp clock và cấu hình input ADC là PA4 PA5

    c) Cấu hình cho DMA và đọc giá trị từ DMA

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan