大数跨境
0
0

【Arduino中级系列教程】项目九 芝麻开门

【Arduino中级系列教程】项目九 芝麻开门 DF创客社区
2021-01-21
2
导读:所谓的门的转动,其实是靠舵机来完成的。
【点击上方「蓝字」关注DF创客社区,一起成为技术颜控】

上一课:【Arduino中级系列教程】项目八 实时温湿度检测器

友情提示:搭配Gravity:新版Arduino中级套件食用更佳!

👆点击查看👆



所谓芝麻开门,就是这门不是轻易能打开的,存在着某些玄关需要你去破解。我们这里设计的这个门,是通过不断晃动手中的传感器才能开。有人会说,传感器我知道是那个数字震动传感器,那门呢?你没看错就是舵机,它能控制角度。所以,所谓的门的转动,是靠舵机来完成的。做个来看下效果就知道了~

所需材料

  • 1×  数字震动传感器
  • 1×  TowerPro SG50舵机

硬件连接

  • TowerPro SG50
  • 连接数字引脚9
  • 数字震动传感器
  • 连接数字引脚3

输入代码

#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-1.0.5/ libraries/ Servo/ Servo.h,这就是Servo库所在位置。

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

Servo myservo;

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

myservo.函数名();

中间那“.”不要漏了!

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

attach(pin);

attach(pin)函数有一个参数——pin, 任意一个数字引脚(不建议使用数字0,1)。我们这里选择数字引脚9。

myservo.attach(9);

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

write(pos);pos就是写入的角度值。

- END -

小伙伴们在之后的Arduino学习之旅中,不管你遇到奇奇怪怪的问题,都希望你与我们交流,你可以选择登陆我们的DFRobot创客社区!mc.dfrobot.com.cn 发帖提问!

也可以加我们的Arduino官方群:369301430,大家一起交流学习。

硬件军火库


新版Arduino中级套件


点击了解详情👆


大家有什么想法,或是对文章的指正,都欢迎在下方留言

学有余力的小伙伴,可以点击阅读原文,到DF创客社区继续学习!




 往期回顾 



▼ Arduino基础系列教程


点击阅读👆


【声明】内容源于网络
0
0
DF创客社区
我们是专注于创新和开源硬件开发的公司——DFRobot成立的创客社区,无论你是资深创客还是小白,这里都有你的一席之地。一个人玩自己的项目,你只是寂寞宅;一群人看你玩项目,你就是技术牛!快来分享你的项目吧!
内容 1282
粉丝 0
DF创客社区 我们是专注于创新和开源硬件开发的公司——DFRobot成立的创客社区,无论你是资深创客还是小白,这里都有你的一席之地。一个人玩自己的项目,你只是寂寞宅;一群人看你玩项目,你就是技术牛!快来分享你的项目吧!
总阅读2.1k
粉丝0
内容1.3k