const int UltrasoundTrig = 2; //设定SR04 trig连接到Arduino引脚2
const int UltrasoundEcho = 3; //设定SR04 echo连接到Arduino引脚3
const int Period = 60; //1分钟检测一次
const int DistanceThreshold = 200;//2米
const int RelayIn = 4;//继电器引脚4
int distance = 0;
void setup()
{
Serial.begin(9600); //设置波特率
pinMode(UltrasoundTrig, OUTPUT); //连接SR04的引脚
pinMode(UltrasoundEcho, INPUT); //设置输入状态
pinMode(RelayIn, OUTPUT); //设置输入状态
}
void loop()
{
digitalWrite(UltrasoundTrig, LOW); //产生一个10US的高脉冲去触发Trigpin
delayMicroseconds(2);
digitalWrite(UltrasoundTrig, HIGH);
delayMicroseconds(10);
digitalWrite(UltrasoundTrig, LOW);
distance = pluseIn(UltrasoundEcho,HIGH)/58.00; //检测脉冲宽度,并计算出距离
if(distance < DistanceThreshold)//距离小于两米,发送关机信号,并断开电源
{
//红外关闭电视假设关机信号编码为{1C,2F,33}
//实际需要发送{A1,F1,1C,2F,33}
Serial.print(695534890803, HEX);
//断开继电器
digitalWrite(RelayIn, HIGH);
delayMicroseconds(10);
digitalWrite(RelayIn, LOW);
}
delaySeconds(Period);
}
const int UltrasoundEcho = 3; //设定SR04 echo连接到Arduino引脚3
const int Period = 60; //1分钟检测一次
const int DistanceThreshold = 200;//2米
const int RelayIn = 4;//继电器引脚4
int distance = 0;
void setup()
{
Serial.begin(9600); //设置波特率
pinMode(UltrasoundTrig, OUTPUT); //连接SR04的引脚
pinMode(UltrasoundEcho, INPUT); //设置输入状态
pinMode(RelayIn, OUTPUT); //设置输入状态
}
void loop()
{
digitalWrite(UltrasoundTrig, LOW); //产生一个10US的高脉冲去触发Trigpin
delayMicroseconds(2);
digitalWrite(UltrasoundTrig, HIGH);
delayMicroseconds(10);
digitalWrite(UltrasoundTrig, LOW);
distance = pluseIn(UltrasoundEcho,HIGH)/58.00; //检测脉冲宽度,并计算出距离
if(distance < DistanceThreshold)//距离小于两米,发送关机信号,并断开电源
{
//红外关闭电视假设关机信号编码为{1C,2F,33}
//实际需要发送{A1,F1,1C,2F,33}
Serial.print(695534890803, HEX);
//断开继电器
digitalWrite(RelayIn, HIGH);
delayMicroseconds(10);
digitalWrite(RelayIn, LOW);
}
delaySeconds(Period);
}