Arduino使用迷你磁簧

本文介绍37款传感器套件中的迷你磁簧,实物图如下:
Arduino使用迷你磁簧 - gc_2299 - gc_2299的博客
  它总共有三个引脚,上面是GUN引脚,中间是信号输出引脚,下面是VCC引脚。首先是照着商家给的示例代码进行测试。示例代码如下:

const int buttonPin = 8;

const int ledPin = 9;
int buttonState = 0;

void setup() {
pinMode(ledPin, OUTPUT);
pinMode(buttonPin, INPUT);
digitalWrite(buttonPin,LOW);
}

void loop() {
buttonState = digitalRead(buttonPin);
if (buttonState == HIGH) {
digitalWrite(ledPin, HIGH);
}
else {
digitalWrite(ledPin, LOW);
}
}

测试的时候使用的磁铁是我在网上买的扬声器,图形如下所示,它里面有磁铁。开始测试时LED灯一直是亮的,无论磁铁靠近还是离开迷你磁簧,LED灯都没有熄灭,这意味着上面的示例代码中从引脚8读入的值一直都是HIGH,把我整糊涂了。
Arduino使用迷你磁簧 - gc_2299 - gc_2299的博客
  然后多测试了几次,发现磁铁靠近迷你磁簧时LED等变暗,离开迷你磁簧时,LED等亮度恢复正常。这个又是什么原因造成的呢,于是就想到将迷你磁簧的输出引脚连接到模拟口,再用串口将模拟口的读数打印出来。代码如下:

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);
}

将串口中的读数集合放到matlab中画一个示意图,如下图所示。从左往右介绍一下读数的意义。首先是磁铁距离迷你磁簧很远,这时迷你磁簧的输出值为1023,随着磁铁接近迷你磁簧,迷你磁簧的输出值垂直下降,然后磁铁再原理迷你磁簧,它的输出值又恢复到1023,整个图形类似于方波的图形。
Arduino使用迷你磁簧 - gc_2299 - gc_2299的博客
于是将最初的代码改了一下,代码如下:

const int buttonPin = A0;
const int ledPin = 9;
int buttonState = 0;

void setup() {
pinMode(ledPin, OUTPUT);
pinMode(buttonPin, INPUT);
digitalWrite(buttonPin,LOW);
}

void loop() {
inputValue = analogRead(buttonPin);


if (inputValue <900) {
digitalWrite(ledPin, HIGH);
}
else {
digitalWrite(ledPin, LOW);
}
}

实物连接图如下:
Arduino使用迷你磁簧 - gc_2299 - gc_2299的博客
 
最后是一个演示视频:

 

参考文献:
[1]http://robots-store.com/index.php?tpl=content_app_history&id=140&hid=101
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值