Báo cáo môn học : Thiết kế mạch đo nhiệt độ, độ ẩm sử dụng FPGA

18 69 2
Báo cáo môn học : Thiết kế mạch đo nhiệt độ, độ ẩm sử dụng FPGA

Đ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

Báo cáo trình bày việc thiết kế mạch đo nhiệt độ, độ ẩm sử dụng kit FPGA EPM240 kết hợp với cảm biến nhiệt độ độ ẩm DHT11 (22). Thiết kế sử dụng ngôn ngữ mô tả phần cứng VHDL, mạch hiển thị sử dụng led 7 thanh, có cảnh báo bằng led, sử dụng nút ấn để chuyển đổi giữa hiện thị nhiệt độ hoặc độ ẩm

Mạch đo nhiệt độ, độ ẩm sử dụng FPGA Nhóm 04 Phạm Hồng Đức : 20173762 Trần Anh Dũng : 20173785 Đào Văn Hào : 20173838 Vũ Xuân Cừ : 20173699 Giảng viên hướng dẫn : Ts Nguyễn Đại Dương Các nội dung A B C • Tổng quan phần cứng • Lưu đồ thuật tốn code • Demo sản phẩm Tổng quan phần cứng Sơ đồ khối Cảm biến nhiệt độ Chip điều khiển (FPGA) Led cảnh báo Mạch hiển thị Kit FPGA EPM240 Mạch hiển thị › Sử dụng IC 74LS47 kết hợp vớ led Cảm biến nhiệt độ DHT22 › Điện áp hoạt động 5V › Khoảng đo độ ẩm : 0% 100% RH sai số 2% RH › Khoảng đo nhiệt độ : -40 80 độ C sai số 0.5% độ C Cách đọc nhiệt độ từ cảm biến DHT22 start DHT_resp start_data wait_DHT_resp DHT_pullup trans_bit trans_bit start_data compare : start_data > trans_bit ? Data format: 8bit integral RH data + 8bit decimal RH data + 8bit integral T data + 8bit decimal T data + 8bit check sum Mạch nguyên lý DHT22 Lưu đồ thuật toán code Lưu đồ thuật toán Code VHDL library ieee; use ieee.std_logic_1164.all; LIBRARY IEEE; USE IEEE.STD_LOGIC_UNSIGNED.ALL; entity DemoDHT is generic ( clk_period_ns : positive := 20; 50mhz data_width: positive:= 8); port( clk: in std_logic ; dht_bus: inout std_logic; dataout: out std_logic_vector(7 downto 0); led : out std_logic_vector(3 downto 0); key_in : in std_logic ); end entity; Code VHDL architecture rtl of DemoDHT is constant delay_18_ms: positive := 18*10**6/clk_period_ns+1; constant max_delay : positive := 500*10**6/clk_period_ns+1; 500 ms constant N: integer :=70; type arr is array (1 to N) of std_logic_vector(7 downto 0); constant datas : arr := (X"20",X"21",X"22",X"23",X"24",X"25",X"26",X"27",X"28",X"29", X"30",X"31",X"32",X"33",X"34",X"35",X"36",X"37",X"38",X"39", X"40",X"41",X"42",X"43",X"44",X"45",X"46",X"47",X"48",X"49", X"50",X"51",X"52",X"53",X"54",X"55",X"56",X"57",X"58",X"59", X"60",X"61",X"62",X"63",X"64",X"65",X"66",X"67",X"68",X"69", X"70",X"71",X"72",X"73",X"74",X"75",X"76",X"77",X"78",X"79", X"80",X"81",X"82",X"83",X"84",X"85",X"86",X"87",X"88",X"89"); signal input_sync : std_logic_vector(0 to 2); type state_type is (start,wait_DHT_resp,DHT_resp,DHT_pullup,startdata,prepare,trans_bit,compare,display); signal state : state_type; signal delay_counter : natural range to max_delay; signal delay_counter2 : natural range to max_delay; signal delay_temp : natural range to max_delay; signal data_out : std_logic_vector (data_width-1 downto 0); signal bus_rising_edge, bus_falling_edge : boolean; signal number_bit : natural range to 24; signal temp : integer range to 50; signal dem : integer range to 24; Code VHDL begin edge : process(clk) begin if rising_edge(clk) then input_sync

Ngày đăng: 01/06/2021, 17:07

Mục lục

  • Các nội dung chính

  • Tổng quan về phần cứng

  • Cảm biến nhiệt độ DHT22

  • Cách đọc nhiệt độ từ cảm biến DHT22

  • Lưu đồ thuật toán và code

  • Lưu đồ thuật toán

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

Tài liệu liên quan