机缘巧合在网上认识一位12岁小同志,从零开始系统辅导其创客开发思维和技巧。

项目专栏:https://blog.csdn.net/m0_38106923/category_11097422.html


所谓密室自动门,就是这门不是轻易能打开的,存在着某些玄关需要你去破解。这里设计的这个门,是通过不断晃动手中的传感器才能开。

有人会说,传感器我知道是那个数字震动传感器,那门呢?你没看错就是舵机,它能控制角度。所以,所谓的门的转动,是靠舵机来完成的。做个来看下效果就知道了~

拓展学习:和12岁小同志搞创客开发:遥控舵机_不脱发的程序猿-CSDN博客

项目连线如下所示:

实现代码如下所示:

#include <Servo.h>             int sensorPin = 3;          //震动传感器 – Digital 3
Servo myservo;
int pos = 0;  void setup() { Serial.begin(9600);pinMode(sensorPin, INPUT);   myservo.attach(9);         //舵机 – Digital 9
}void loop() {int sensorState = digitalRead(sensorPin);//读取震动传感器的状态Serial.println(sensorState);if(!sensorState){  //一旦状态发生变化,舵机加2°,直到加到180°pos = pos +2;if(pos >=180){      pos = 180;                } myservo.write(pos);      //写入舵机的角度       Serial.println(pos);     //串口同时输出角度值delay(100);  } else{  //状态不发生变化,舵机减2°,直到减到0°pos = pos - 2; if(pos <=0){pos = 0;                }myservo.write(pos);              Serial.println(pos);delay(100);    }delay(1);
}

代码的开始先调用<Servo.h>库:

#include <Servo.h>

这个库已经在Arduino IDE中了,可以打开Arduino安装路径,例如我的安装路径:D:\Arduino\libraries\Servo\src,这就是Servo库所在位置。

如果要在代码中用库中函数,是不能直接调用的,需要给库找个中介,让“他”建立代码和库中间的关系,也就是类的使用:

Servo myservo; 

这里的myservo起到的就是这个作用。建立联系,之后调用库中的方法和变量的话,就要按照下面这个模式进行:

myservo.方法名
myservo.变量

如何定义舵机是接到那个引脚呢?用到就是attach()方法了。

myservo.attach(引脚ID);         //舵机 – Digital 9

知道了如何定义一个舵机之后,如何把对应的角度写进去呢?

myservo.write(角度);      //写入舵机的角度   

最后,运行程序,不断的晃动震动传感器,可以看到舵机的角度会随之变大。停止晃动后,舵机角度又开始慢慢减小。好比一扇门慢慢打开,合上。

和12岁小同志搞创客开发:手撕代码,做一款密室自动门相关推荐

  1. 和12岁小同志搞创客开发:手撕代码,做一款遥控灯

    机缘巧合在网上认识一位12岁小同志,从零开始系统辅导其创客开发思维和技巧. 项目专栏:https://blog.csdn.net/m0_38106923/category_11097422.html ...

  2. 和12岁小同志搞创客开发:手撕代码,做一款数字骰子

    机缘巧合在网上认识一位12岁小同志,从零开始系统辅导其创客开发思维和技巧. 项目专栏:https://blog.csdn.net/m0_38106923/category_11097422.html ...

  3. 和12岁小同志搞创客开发:手撕代码,做一款亮度可调节灯

    目录 1.PWM呼吸灯 2.亮度可调节灯 机缘巧合在网上认识一位12岁小同志,从零开始系统辅导其创客开发思维和技巧. 项目专栏:https://blog.csdn.net/m0_38106923/ca ...

  4. 和12岁小同志搞创客开发:手撕代码,做一款声控灯

    机缘巧合在网上认识一位12岁小同志,从零开始系统辅导其创客开发思维和技巧. 项目专栏:https://blog.csdn.net/m0_38106923/category_11097422.html ...

  5. 和12岁小同志搞创客开发:手撕代码,做一款人体感应灯

    目录 1.传感器原理 2.代码实践 机缘巧合在网上认识一位12岁小同志,从零开始系统辅导其创客开发思维和技巧. 项目专栏:https://blog.csdn.net/m0_38106923/categ ...

  6. 和12岁小同志搞创客开发:如何驱动红外遥控器?

    目录 1.红外遥控器通信原理 2.NEC协议 3.实践 机缘巧合在网上认识一位12岁小同志,从零开始系统辅导其创客开发思维和技巧. 项目专栏:https://blog.csdn.net/m0_3810 ...

  7. 和12岁小同志搞创客开发:手撕代码,做一款温湿度检测器

    机缘巧合在网上认识一位12岁小同志,从零开始系统辅导其创客开发思维和技巧. 项目专栏:https://blog.csdn.net/m0_38106923/category_11097422.html ...

  8. 和12岁小同志搞创客开发:手撕代码,做一款火焰报警器

    机缘巧合在网上认识一位12岁小同志,从零开始系统辅导其创客开发思维和技巧. 项目专栏:https://blog.csdn.net/m0_38106923/category_11097422.html ...

  9. 和12岁小同志搞创客开发:手撕代码,做一款节拍电子鼓

    机缘巧合在网上认识一位12岁小同志,从零开始系统辅导其创客开发思维和技巧. 项目专栏:https://blog.csdn.net/m0_38106923/category_11097422.html ...

最新文章

  1. Python Module — asyncio 协程并发
  2. sublime text常用快捷键
  3. 构建之法之单元测试及设计流程
  4. Zynq调试和测试子系统
  5. 学校计算机室电气设计,教学楼配电设计浅析
  6. android 控制手机音量大小,android 控制手机音量的大小 切换声音的模式
  7. 【学习笔记】生物数据库の初步了解
  8. flash读取程序 msp430_MSP430 flash的操作
  9. composer入门教程
  10. ggcor |相关系数矩阵可视化
  11. maven(视频学习)
  12. 二维码怎么制作?手把手教你制作生成
  13. 国家气候气象观测站分类
  14. python空间数据处理_基于Python的空间数据批量处理方法
  15. 如何用企业微信做好私域流量的引流、转化和精细化运营?
  16. 保护水资源公益网站html,保护水资源公益广告策划书
  17. Python之旅计算机基础篇
  18. 【效能平台】接口模块——获取列表数据、查看详情数据、增加以及更新项目接口、删除接口相关功能开发(六)
  19. Highcharts实现下钻多柱series
  20. java初级atm取款机,java基础:模拟ATM取款机

热门文章

  1. 求得到一个字符串@“absdfasdfsdfdsafsd....”所有的排列
  2. 电子表单系列谈之表单数据处理
  3. java面向对象-------静态初始化块
  4. Js时间格式[转载]
  5. 使用MS VS的命令来编译C++程序
  6. Codeforces 903F Clear The Matrix(状态压缩DP)
  7. 2022-2028年中国木制拼板玩具市场调查研究报告
  8. Python 源码函数格式带有*和/说明
  9. NetCore学习实践1__项目创建和配置文件的获取
  10. Hadoop.2.x_HA部署