和12岁小同志搞创客开发:手撕代码,做一款密室自动门
机缘巧合在网上认识一位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岁小同志搞创客开发:手撕代码,做一款密室自动门相关推荐
- 和12岁小同志搞创客开发:手撕代码,做一款遥控灯
机缘巧合在网上认识一位12岁小同志,从零开始系统辅导其创客开发思维和技巧. 项目专栏:https://blog.csdn.net/m0_38106923/category_11097422.html ...
- 和12岁小同志搞创客开发:手撕代码,做一款数字骰子
机缘巧合在网上认识一位12岁小同志,从零开始系统辅导其创客开发思维和技巧. 项目专栏:https://blog.csdn.net/m0_38106923/category_11097422.html ...
- 和12岁小同志搞创客开发:手撕代码,做一款亮度可调节灯
目录 1.PWM呼吸灯 2.亮度可调节灯 机缘巧合在网上认识一位12岁小同志,从零开始系统辅导其创客开发思维和技巧. 项目专栏:https://blog.csdn.net/m0_38106923/ca ...
- 和12岁小同志搞创客开发:手撕代码,做一款声控灯
机缘巧合在网上认识一位12岁小同志,从零开始系统辅导其创客开发思维和技巧. 项目专栏:https://blog.csdn.net/m0_38106923/category_11097422.html ...
- 和12岁小同志搞创客开发:手撕代码,做一款人体感应灯
目录 1.传感器原理 2.代码实践 机缘巧合在网上认识一位12岁小同志,从零开始系统辅导其创客开发思维和技巧. 项目专栏:https://blog.csdn.net/m0_38106923/categ ...
- 和12岁小同志搞创客开发:如何驱动红外遥控器?
目录 1.红外遥控器通信原理 2.NEC协议 3.实践 机缘巧合在网上认识一位12岁小同志,从零开始系统辅导其创客开发思维和技巧. 项目专栏:https://blog.csdn.net/m0_3810 ...
- 和12岁小同志搞创客开发:手撕代码,做一款温湿度检测器
机缘巧合在网上认识一位12岁小同志,从零开始系统辅导其创客开发思维和技巧. 项目专栏:https://blog.csdn.net/m0_38106923/category_11097422.html ...
- 和12岁小同志搞创客开发:手撕代码,做一款火焰报警器
机缘巧合在网上认识一位12岁小同志,从零开始系统辅导其创客开发思维和技巧. 项目专栏:https://blog.csdn.net/m0_38106923/category_11097422.html ...
- 和12岁小同志搞创客开发:手撕代码,做一款节拍电子鼓
机缘巧合在网上认识一位12岁小同志,从零开始系统辅导其创客开发思维和技巧. 项目专栏:https://blog.csdn.net/m0_38106923/category_11097422.html ...
最新文章
- Python Module — asyncio 协程并发
- sublime text常用快捷键
- 构建之法之单元测试及设计流程
- Zynq调试和测试子系统
- 学校计算机室电气设计,教学楼配电设计浅析
- android 控制手机音量大小,android 控制手机音量的大小 切换声音的模式
- 【学习笔记】生物数据库の初步了解
- flash读取程序 msp430_MSP430 flash的操作
- composer入门教程
- ggcor |相关系数矩阵可视化
- maven(视频学习)
- 二维码怎么制作?手把手教你制作生成
- 国家气候气象观测站分类
- python空间数据处理_基于Python的空间数据批量处理方法
- 如何用企业微信做好私域流量的引流、转化和精细化运营?
- 保护水资源公益网站html,保护水资源公益广告策划书
- Python之旅计算机基础篇
- 【效能平台】接口模块——获取列表数据、查看详情数据、增加以及更新项目接口、删除接口相关功能开发(六)
- Highcharts实现下钻多柱series
- java初级atm取款机,java基础:模拟ATM取款机
热门文章
- 求得到一个字符串@“absdfasdfsdfdsafsd....”所有的排列
- 电子表单系列谈之表单数据处理
- java面向对象-------静态初始化块
- Js时间格式[转载]
- 使用MS VS的命令来编译C++程序
- Codeforces 903F Clear The Matrix(状态压缩DP)
- 2022-2028年中国木制拼板玩具市场调查研究报告
- Python 源码函数格式带有*和/说明
- NetCore学习实践1__项目创建和配置文件的获取
- Hadoop.2.x_HA部署