首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

51 單片機 HC-05 藍牙模塊控制 8 路繼電器接線與代碼邏輯

     編輯:程式設計疑難解答

硬件接線

HC-05 腳位單片機腳位說明
VCC3.3V/5V供電(模塊帶 LDO 通常支持 5V)
GNDGND共地
TXDRXD (P3.0)模塊發送 → 單片機接收
RXDTXD (P3.1)單片機發送 → 模塊接收(需分壓 3.3V)
EN/KEY懸空或高電平AT 模式配置時拉高
STATE懸空連接狀態指示

AT 模式說明

上電前拉高 EN/KEY 進入 AT 命令模式(波特率 38400),可配置名稱、密碼、角色。配置完成後斷電重啟自動進入透傳模式,無需保持 EN 高電平。

8 路繼電器控制邏輯

// 串口中斷接收
uchar cmd[10];
uchar idx = 0;

void UART_ISR() interrupt 4 {
    if (RI) {
        RI = 0;
        char c = SBUF;
        if (c == '\n') {
            cmd[idx] = '\0';
            processCommand(cmd);
            idx = 0;
        } else {
            cmd[idx++] = c;
        }
    }
}

void processCommand(uchar* cmd) {
    // 格式: "RELAY,1,ON" 或 "ALL,OFF"
    if (strncmp(cmd, "RELAY,", 6) == 0) {
        int ch = cmd[6] - '0';
        if (strstr(cmd, "ON")) RELAY_ON(ch);
        else if (strstr(cmd, "OFF")) RELAY_OFF(ch);
    } else if (strcmp(cmd, "ALL,ON") == 0) {
        RELAY_ALL_ON();
    } else if (strcmp(cmd, "ALL,OFF") == 0) {
        RELAY_ALL_OFF();
    }
}

手機端 APP

使用藍牙串口調試助手(如「Bluetooth Terminal」)發送 ASCII 指令即可控制。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved