照着之前的老方法,将倾斜开关中间的输出引脚接模拟引脚,向串口中输出模拟引脚的输入值,测试代码如下:int Led = 9; //定义LED 接口
int buttonpin = 3; //定义倾斜开关传感器接口
int val;//定义数字变量val
void setup()
{
pinMode(Led, OUTPUT); //定义LED 为输出接口
pinMode(buttonpin, INPUT); //定义倾斜开关传感器为输出接口
digitalWrite(buttonpin,LOW);
}
void loop()
{
val = digitalRead(buttonpin);
if (val == HIGH) //当倾斜开关传感器检测有信号时,LED 闪烁
{
digitalWrite(Led, HIGH);
}
else
{
digitalWrite(Led, LOW);
}
}
将串口中获取到的数据导入到matlab中绘制图形,得到的图形如下所示,倾斜开关水平放置时,其输出引脚输出值为1023,当倾斜开关以一定的角度倾斜时,倾斜开关的输出值急剧下降到600以下,但没有下降到0,这估计也是第一段代码中用 digitalRead函数获取倾斜开关输出值始终为1的原因。测试的时候发现,并不是倾斜开关一倾斜输出引脚的值就会发生变化,const int buttonPin = A0;
int inputValue = 0;
void setup() {
pinMode(buttonPin, INPUT);
digitalWrite(buttonPin,LOW);
Serial.begin(9600);
}
void loop() {
inputValue = analogRead(buttonPin);
Serial.println(inputValue);
}
实物连接图如下:int Led = 9; //定义LED 接口
int buttonpin = A0; //定义倾斜开关传感器接口
int val;//定义数字变量val
void setup()
{
pinMode(Led, OUTPUT); //定义LED 为输出接口
}
void loop()
{
val = analogRead(buttonpin); //将数字接口3的值读取赋给val
if (val <650 )//650是随意取的值
{
digitalWrite(Led, HIGH);
}
else
{
digitalWrite(Led, LOW);
}
}