手机的应用日益增多,很多人选择用手机进行导航。在开车过程中,驾驶员将手机放置于手机支架上,查看地图很方便。目前市场上的手机支架主要通过左右和底部 3 点固定的方式对手机进行支撑,针对不同尺寸的手机,大多需要手动调节左右两个夹臂之间的间距进行夹紧,不够方便。我想 DIY 一个能够检测到手机放入并自动夹紧手机的手机支架。
完成以上功能的前提是,手机支架能检测出手机的靠近并做出响应。我使用了E2S-H4N1 金属感应开关(见图1)。有金属物体出现在金属开关探测范围内时,开关的信号引脚为低电平;没有金属物体在开关的探测范围时,开关的信号引脚为高电平。另外开关的体积非常小巧,上面带有一个 LED,能够直观地显示开关的状态。检测频率在 1kHz 左右,它能做出快速响应,抗干扰能力强,具有 IP67 级防护能力,适用于一般生活环境。因为手机含有较多的金属,实测即使是玻璃后盖的手机和带有手机壳的手机也可以准确地检测出来。E2S-H4N1 完全可以胜任检测手机这项工作。
检测手机的传感器解决了,接下来就是选择主控制器,我选择的是 Beetle BLE。然后我使用了一个 180°微型舵机来控制夹紧手机的机械部分,还使用了一个数字大按钮模块控制松开手机。
制作所需的材料如附表和图2、图3所示,硬件连接如图4 所示。
· 制 作 过 程
· 程 序 编 写
将以下程序下载到 Beetle BLE 控制器中,智能手机支架就可以使用了。
#include <Servo.h>
Servo myservo;i
nt pos = 0;
void setup() {
myservo.attach(3);
pinMode(4, INPUT);
pinMode(5, INPUT);
for (pos = 50; pos <= 180; pos += 1) {
myservo.write(pos);
delay(5);
}
for (pos = 180; pos >= 50; pos -= 1){
myservo.write(pos);
delay(5);
}
}
void loop() {
while(digitalRead(5)==1);
for (pos = 50; pos <= 160; pos += 1) {
myservo.write(pos);
delay(5);
}
delay(1000);
for (pos = 160; pos >= 50; pos -= 1){
myservo.write(pos);
delay(5);
}
delay(1000);
while(digitalRead(4)==0);
for (pos = 50; pos <= 160; pos += 1) {
myservo.write(pos);
delay(5);
}
delay(2000);
while(digitalRead(5)==0);
for (pos = 160; pos >= 50; pos -= 1){
myservo.write(pos);
delay(5);
}
delay(2000);
}
科普 · 创新 · 实作 · 分享
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。