因为13口的LED灯太小,我就外接了一个LED灯,然后进行测试,但是发现,无论怎么把震动开发左右倾斜,LED灯都是亮的,就没有灭的时候,不知道怎么回事。int Led = 13; //定义LED 接口
int Shock = 3; //定义震动传感器接口
int val;//定义数字变量val
void setup()
{
pinMode(Led, OUTPUT); //定义LED 为输出接口
pinMode(Shock, INPUT); //定义震动传感器为输出接口
}
void loop()
{
val = digitalRead(Shock); //将数字接口3的值读取赋给val
if (val == HIGH) //当震动传感器检测有信号时,LED 闪烁
{
digitalWrite(Led, LOW);
}
else
{
digitalWrite(Led, HIGH);
}
}
串口中输出的数据和我想象的不一样,我之前以为震动开关向一边倾斜的时候输出最大,向另外一边倾斜的时候就该输出最小才对,没有想到输出数据是这样的。int Shock = 5; //定义震动传感器接口
int val;//定义数字变量val
void setup()
{
pinMode(Shock, INPUT); //定义震动传感器为输出接口
Serial.begin(9600);
}
void loop()
{
val = analogRead(Shock); //
Serial.println(val);
}
串口输出的部分数据如下:
1023
1023
1023
1023
1023
1023
699
697
696
696
697
697
696
696
695
695
697
696
696
实物连接图如下:int Led =4; //定义LED 接口
int Shock = 5; //定义震动传感器接口
int val;//定义数字变量val
void setup()
{
pinMode(Led, OUTPUT); //定义LED 为输出接口
pinMode(Shock, INPUT); //定义震动传感器为输出接口
}
void loop()
{
val = analogRead(Shock);
if (val >800) //这个800是随意取的,能区分是哪边就可以
{
digitalWrite(Led, HIGH);
}
else
{
digitalWrite(Led,LOW );
}
}