- UID
- 373967
- 帖子
- 8867
- 主題
- 2609
- 精華
- 0
- 積分
- 1000
- 楓幣
- 15
- 威望
- 977
- 存款
- 34822
- 贊助金額
- 0
- 推廣
- 0
- GP
- 1205
- 閱讀權限
- 70
- 在線時間
- 455 小時
- 註冊時間
- 2023-1-12
- 最後登入
- 2024-11-22
|
為了製作溫度濕度監測控制器,您需要以下零件:
PIC16F1786 微控制器
溫濕度傳感器(例如DHT11或DHT22)
LCD顯示屏(例如16x2或20x4字符LCD)
10K電位器
電容(例如100nF電容)
電阻(例如220歐姆電阻)
杜邦線和麵包板
下面是PIC16F1786的引腳分配:
RA0 - 不使用
RA1 - 不使用
RA2 - 不使用
RA3 - 不使用
RA4 - 不使用
RA5 - 不使用
RA6 - LCD數據線D4
RA7 - LCD數據線D5
RB0 - 溫濕度傳感器數據線
RB1 - 不使用
RB2 - LCD數據線D6
RB3 - LCD數據線D7
RB4 - LCD RS引腳
RB5 - LCD EN引腳
RB6 - 不使用
RB7 - 不使用
下面是PIC16F1786的程式碼,這個程式碼是用MPLAB X IDE和XC8編譯器撰寫的。
請注意,這僅僅是一個示例程式碼,您可以根據您的需求進行修改:
#include <xc.h>
#include <stdio.h>
#include "lcd.h"
#include "dht.h"
// 配置配置字1
#pragma config FOSC = INTOSC // 使用內部振盪器
#pragma config WDTE = OFF // 禁用看門狗定時器
#pragma config PWRTE = OFF // 禁用上電定時器
#pragma config MCLRE = ON // 啟用MCLR輸入
#pragma config CP = OFF // 禁用代碼保護
#pragma config BOREN = OFF // 禁用低壓檢測
#pragma config CLKOUTEN = OFF // 禁用CLKOUT輸出
#pragma config IESO = OFF // 禁用內部/外部切換
#pragma config FCMEN = OFF // 禁用失敗時安全模式
// 設置內部時鐘為8MHz
#define _XTAL_FREQ 8000000
int main() {
// 初始化LCD
lcd_init();
// 初始化DHT11/22傳感器
dht_init();
// 無窮循環
while (1) {
// 讀取溫度和濕度值
float temp, hum;
dht_read(&temp, &hum);
// 在LCD上顯示溫度和濕度值
lcd_gotoxy(0, 0);
printf("Temp: %.1f C", temp);
lcd_gotoxy(0, 1);
printf("Hum : %.1f %%", hum);
// 等待1秒鐘
__delay_ms(1000);
}
return 0;
}
這個程式碼使用LCD和DHT庫來顯示溫度和濕度值。
您需要將這些庫添加到您的項目中。
您可以在互聯網上找到這些庫的下載鏈接。 |
|