写一个rfid蓝牙控制led灯继电器的代码
时间: 2024-01-24 08:04:27 浏览: 70
一种控制led代码
好的,下面是一个简单的代码示例,它可以使用RFID和蓝牙模块来控制LED灯和继电器。
首先,你需要准备以下材料:
- Arduino UNO板
- RFID模块
- 蓝牙串口模块
- LED灯和继电器模块
- 杜邦线若干
接下来,你需要将RFID模块连接到Arduino板上,并下载RFID库。然后将蓝牙模块连接到Arduino板上,并下载蓝牙库。
将LED灯和继电器模块连接到Arduino板上。根据你的模块类型,接线方式会有所不同。一般来说,LED灯的正极连接到Arduino板的数字引脚,负极连接到GND。继电器模块需要连接到Arduino板的数字引脚,并连接电源和负载。
接下来,你可以使用下面的代码作为参考,进行修改和优化:
```C++
#include <SoftwareSerial.h>
#include <RFID.h>
SoftwareSerial BTserial(10, 11); // RX | TX
RFID rfid(2, 3); // SDA | SCK
int ledPin = 7; // LED灯的数字引脚
int relayPin = 8; // 继电器模块的数字引脚
bool ledState = false; // LED灯的状态
bool relayState = false; // 继电器的状态
void setup(){
pinMode(ledPin, OUTPUT); // 设置LED的数字引脚为输出模式
pinMode(relayPin, OUTPUT); // 设置继电器的数字引脚为输出模式
BTserial.begin(9600); // 初始化蓝牙串口
Serial.begin(9600); // 初始化调试串口
rfid.init(); // 初始化RFID模块
}
void loop(){
if (rfid.isCard()) { // 如果检测到RFID卡
rfid.readCardSerial(); // 读取卡片序列号
Serial.println(rfid.serNum[0], DEC); // 输出RFID卡片序列号
if (rfid.serNum[0] == 0x01) { // 如果是卡片1
ledState = !ledState; // 取反LED灯的状态
digitalWrite(ledPin, ledState); // 设置LED灯的状态
relayState = !relayState; // 取反继电器的状态
digitalWrite(relayPin, relayState); // 设置继电器的状态
BTserial.print("OK\r\n"); // 发送指令响应
}
}
if (BTserial.available()) { // 如果蓝牙串口有数据
char command = BTserial.read(); // 读取数据
Serial.println(command); // 输出数据
if (command == '0') { // 如果收到数字0
ledState = false; // 关闭LED灯
digitalWrite(ledPin, ledState); // 设置LED灯的状态
relayState = false; // 关闭继电器
digitalWrite(relayPin, relayState); // 设置继电器的状态
BTserial.print("OK\r\n"); // 发送指令响应
} else if (command == '1') { // 如果收到数字1
ledState = true; // 打开LED灯
digitalWrite(ledPin, ledState); // 设置LED灯的状态
relayState = true; // 打开继电器
digitalWrite(relayPin, relayState); // 设置继电器的状态
BTserial.print("OK\r\n"); // 发送指令响应
}
}
}
```
上述代码会读取RFID卡的序列号,并根据不同的卡片状态来控制LED灯和继电器的开关。同时,它还可以通过蓝牙串口接收数字指令,来控制LED灯和继电器的开关。你可以根据自己的实际需求进行修改和优化。
阅读全文