ĐỌC GIÁ TRỊ ADC LÊN LED 7 Thanh

22 31 0
ĐỌC GIÁ TRỊ ADC LÊN LED 7 Thanh

Đ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

PowerPoint Presentation ĐỌC GIÁ TRỊ ADC LÊN LED 7 Thanh BÁO CÁO BÀI TẬP LỚN Phần 1 Trình bày về 1 hệ thống nhúng trong thực tế Đề tài Máy tính công nghiệp 1 Giới thiệu Máy tính công nghi.

BÁO CÁO BÀI TẬP LỚN ĐỌC GIÁ TRỊ ADC LÊN LED Thanh Phần 1: Trình bày về hệ thống nhúng thực tế Đề tài: Máy tính công nghiệp Giới thiệu: o o Máy tính cơng nghiệp hình cảm ứng: kết hợp máy tính cơng nghiệp hình cơng nghiệp Những máy tính thiết kế mạnh mẽ, cứng cáp khả mở rộng linh hoạt lựa chọn hàng đầu ứng dụng giao diện người máy (HMI), phục vụ thị trường tự động hóa nhà máy, máy móc, thiết bị dịch vụ thơng minh Chúng xử lí thao tác nhanh gọn, hoạt động với hiệu suất cao, người dùng dễ dàng điều chỉnh thao tác máy tính nhờ vào hình cảm ứng Máy tính cơng nghiệp khơng quạt: máy tính loại bỏ hồn tồn thành phần quay Máy tính hoạt động khơng ngừng nghỉ giải pháp tối ưu cho ứng dụng cần ổn định Vì loại bỏ thành phần quay nên máy tính hoạt động tương đối êm, khơng gây tiếng ồn Thiết kế tản nhiệt trực tiếp giúp máy tính làm việc mơi trường khắc nghiệt 2 Vai trị chức máy tính cơng nghiệp o o Máy tính cơng nghiệp ứng dụng rộng rãi hoạt động như: máy tính công nghiệp lắp đặt sân bay đảm bảo cho nhu cầu bảo mật, chống rung lắc, chúng sử dụng trạm thu phí đường cao tốc kết hợp dò vòng từ phát xe hay nhà máy điện,… máy tính cơng nghiệp sử dụng nhiều hoạt động thường ngày đời sống khơng để ý tới Có nhiều người thường thắc mắc máy tính cơng nghiệp khác so với máy tính văn phịng Thực tế, máy tính cơng nghiệp có chức tương tự máy tính văn phịng bình thường nhiên chúng khác phần cứng Đầu tiên ổ CPU quạt với cơng nghệ cao cho phép nhiệt tỏa bên qua lớp vỏ CPU Thiết kế không quạt hạn chế rủi ro bụi bặm hay độ ẩm rò rỉ vào vi mạch bên trong, làm tăng tuổi thọ độ bền cho máy tính Hệ thống nhớ lớn việc sử dụng loại chip mang lại tốc độ cao máy tính văn phịng cần vài chục GB Hệ điều hành tương đối giống chúng dùng hệ điều hành Nhìn qua máy tính văn phịng máy tính cơng nghiệp khác Hình ảnh máy tính công nghiệp Phần 2: Đọc giá trị ADC lên LED Mục lục Sơ đồ mạch 04 Cod e Thành phần Nguyên lý hoạt động Kết quả mô phỏng I SƠ ĐỒ KHỐI I SƠ ĐỒ KHỐI Khối chuyển đổi tương tự sang số: ADC Khối điều khiển trung tâm: STM32F103x LED7thanh Sử dụng IC II CÁC THÀNH PHẦN TRONG BÀI MÔ PHỎNG II CÁC THÀNH PHẦN TRONG BÀI MÔ PHỎNG ADC(Khối chuyển đổi tương tự sang số) - Là mạch điện tử lấy điện áp tương tự làm đầu vào chuyển đổi thành liệu số (1 giá trị đại diện cho mức điện áp mã nhị phân) II CÁC THÀNH PHẦN TRONG BÀI MÔ PHỎNG Các khái niệm cần biết: Độ phân giải (Resolution) Thời gian lấy mẫu (Sampling Time) II CÁC THÀNH PHẦN TRONG BÀI MÔ PHỎNG Các mode hoạt động ADC: Single conversion mode Continuous Conversion Mode Scan Mode Discontinuous Mode II CÁC THÀNH PHẦN TRONG BÀI MÔ PHỎNG STM32F103 • 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 CORTEX 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 II CÁC THÀNH PHẦN TRONG BÀI MÔ PHỎNG Led Anode chung – Common Anode (CA) Trong hình hiển thị Anode chung, tất kết nối Anode LED nối với mức logic “1”, phân đoạn LED riêng lẻ sáng cách áp dụng cho tín hiệu logic “0” mức thấp “LOW” thông qua điện trở giới hạn dòng điện để giúp phù hợp với cực Cathode với đoạn LED cụ thể từ a đến III NGUYÊN LÝ HOẠT ĐỘNG Nguyên tắc thực thi sau : - Có giá trị kênh ADC cần thị lên led số Trạng thái button1 Điều khiển kênh ADC Trạng thái button điều khiển kênh lại Sử dụng máy trạng thái ( State_Machine Để tạo trạng thái ) Xem trạng thái ban đầu chưa làm Chưa thực thi IDLE Khi button1 nhấn thị ADC kênh lên led7 Tương tự có button2 nhấn thị giá trị khác - Giá trị ADC nằm giải từ -> 4096 ( 12 bit) VD state_Machine ứng dụng button : Tepedef enum{ IDLE, Button1_State, Button2_State }Button_state; Button_state Curent_state = IDLE; //gán trạng thái ban đầu trạng thái không làm IDLE; III NGUN LÝ HOẠT ĐỢNG o Đọc trạng thái Button hệ thống, sau sử dụng kiến thức Tin học sở (switch case) để đọc trạng thái o Có trạng thái : IDLE(Ko nhấn button) Trạng thái Button1 nhấn (Kênh ADC_ channel4 hoạt động ) Trạng thái Button2 Nhấn Kênh ADC_Channel hoạt động o VD: Cách sử dụng switch – case: Switch(Current_state){ Case Button1_State: Play(val1);//Hien thi gia tri Cua ADCChannel4 Break; Case Button2_state: Play(Val2); Break; default: Break; } IV CODE Tiến hành lập trình: void ADC_ConfiguraChannel4(){ /*cau hinh ADC1*/ ADC_InitTypeDef ADC_InitStructure; ADC_InitStructure.ADC_Mode = ADC_Mode_Independent; ADC_InitStructure.ADC_ScanConvMode = ENABLE; ADC_InitStructure.ADC_ContinuousConvMode = ENABLE; ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None; ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right; ADC_InitStructure.ADC_NbrOfChannel = 1; /* Cau hinh chanel, rank, thoi gian lay mau */ ADC_RegularChannelConfig(ADC1, ADC_Channel_4, 1, ADC_SampleTime_71Cycles5); ADC_Init(ADC1, &ADC_InitStructure); /* Cho phep bo ADC1 hoat dong */ ADC_Cmd(ADC1, ENABLE); /* Reset ghi cablib */ ADC_ResetCalibration(ADC1); /* Cho ghi cablib reset xong */ while(ADC_GetResetCalibrationStatus(ADC1)); /* Khoi dong bo ADC */ ADC_StartCalibration(ADC1); /* Cho trang thai cablib duoc bat */ while(ADC_GetCalibrationStatus(ADC1)); /* Bat dau chuyen doi ADC */ ADC_SoftwareStartConvCmd(ADC1, ENABLE); } Tiến hành lập trình: A Kiểm tra trạng thái button và chống nhiễu button bằng hàm delay void Check(){ if(GPIO_ReadInputDataBit(GPIOB, Button1) == 0){ delay_ms(20); while(GPIO_ReadInputDataBit(GPIOB, Button1) == 0); currentMode = ADC_Channel3; } if(GPIO_ReadInputDataBit(GPIOB, Button2) == 0){ delay_ms(20); while(GPIO_ReadInputDataBit(GPIOB, Button2) == 0); currentMode = ADC_Channel4; } } Tiến hành lập trình: B Chương trình main Thực thi kiểm tra bằng switch Case int main(){ } Led7Seg_Configure(); GPIO_Configuration(); Button_Configure(); while(1){ //ADC_Configura(); Check(); ADC_ConfiguraChannel3(); uint16_t val1 = ADC_GetConversionValue(ADC1); ADC_ConfiguraChannel4(); uint16_t val2 = ADC_GetConversionValue(ADC1); switch(currentMode){ case ADC_Channel3: Play(val1); delay_ms(500); break; case ADC_Channel4: Play(val2); delay_ms(500); break; default: break; } } Tiến hành lập trình: B Chương trình main Thực thi kiểm tra bằng switch Case int main(){ } Led7Seg_Configure(); GPIO_Configuration(); Button_Configure(); while(1){ //ADC_Configura(); Check(); ADC_ConfiguraChannel3(); uint16_t val1 = ADC_GetConversionValue(ADC1); ADC_ConfiguraChannel4(); uint16_t val2 = ADC_GetConversionValue(ADC1); switch(currentMode){ case ADC_Channel3: Play(val1); delay_ms(500); break; case ADC_Channel4: Play(val2); delay_ms(500); break; default: break; } } ... thoi gian lay mau */ ADC_ RegularChannelConfig (ADC1 , ADC_ Channel_4, 1, ADC_ SampleTime _71 Cycles5); ADC_ Init (ADC1 , &ADC_ InitStructure); /* Cho phep bo ADC1 hoat dong */ ADC_ Cmd (ADC1 , ENABLE); /* Reset... trình: void ADC_ ConfiguraChannel4(){ /*cau hinh ADC1 */ ADC_ InitTypeDef ADC_ InitStructure; ADC_ InitStructure .ADC_ Mode = ADC_ Mode_Independent; ADC_ InitStructure .ADC_ ScanConvMode = ENABLE; ADC_ InitStructure .ADC_ ContinuousConvMode... ADC_ InitStructure .ADC_ ContinuousConvMode = ENABLE; ADC_ InitStructure .ADC_ ExternalTrigConv = ADC_ ExternalTrigConv_None; ADC_ InitStructure .ADC_ DataAlign = ADC_ DataAlign_Right; ADC_ InitStructure .ADC_ NbrOfChannel

Ngày đăng: 19/11/2022, 21:12

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

Tài liệu liên quan