和12岁小同志搞创客开发:手撕代码,做一款密室自动门(代码片段)

不脱发的程序猿 不脱发的程序猿     2023-03-09     303

关键词:

机缘巧合在网上认识一位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岁小同志,从零开始系统辅导其创客开发思维和技巧。项目专栏:https://blog.csdn.net/m0_38106923/category_11097422.html 本篇博文是创客开发:手撕代码篇的最后一节,项目在之前使用Mind+编程... 查看详情

和12岁小同志搞创客开发:手撕代码,做一款声控灯(代码片段)

机缘巧合在网上认识一位12岁小同志,从零开始系统辅导其创客开发思维和技巧。项目专栏:https://blog.csdn.net/m0_38106923/category_11097422.html 之前两篇博文主要是数字量输入、输出类型传感器的驱动。和12岁小同志搞创客开发... 查看详情

和12岁小同志搞创客开发:手撕代码,做一款声控灯(代码片段)

机缘巧合在网上认识一位12岁小同志,从零开始系统辅导其创客开发思维和技巧。项目专栏:https://blog.csdn.net/m0_38106923/category_11097422.html 之前两篇博文主要是数字量输入、输出类型传感器的驱动。和12岁小同志搞创客开发... 查看详情

和12岁小同志搞创客开发:手撕代码,做一款遥控灯(代码片段)

机缘巧合在网上认识一位12岁小同志,从零开始系统辅导其创客开发思维和技巧。项目专栏:https://blog.csdn.net/m0_38106923/category_11097422.html 本篇博文是创客开发:手撕代码篇的最后一节,项目在之前使用Mind+编程... 查看详情

和12岁小同志搞创客开发:手撕代码,做一款遥控灯(代码片段)

机缘巧合在网上认识一位12岁小同志,从零开始系统辅导其创客开发思维和技巧。项目专栏:https://blog.csdn.net/m0_38106923/category_11097422.html 本篇博文是创客开发:手撕代码篇的最后一节,项目在之前使用Mind+编程... 查看详情

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

...1、PWM呼吸灯2、亮度可调节灯机缘巧合在网上认识一位12岁小同志,从零开始系统辅导其创客开发思维和技巧。项目专栏:https://blog.csdn.net/m0_38106923/category_11097422.html 本篇博文中的项目之前使用Mind+编程软件已经实现过... 查看详情

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

...1、PWM呼吸灯2、亮度可调节灯机缘巧合在网上认识一位12岁小同志,从零开始系统辅导其创客开发思维和技巧。项目专栏:https://blog.csdn.net/m0_38106923/category_11097422.html 本篇博文中的项目之前使用Mind+编程软件已经实现过... 查看详情

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

...1、PWM呼吸灯2、亮度可调节灯机缘巧合在网上认识一位12岁小同志,从零开始系统辅导其创客开发思维和技巧。项目专栏:https://blog.csdn.net/m0_38106923/category_11097422.html 本篇博文中的项目之前使用Mind+编程软件已经实现过... 查看详情

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

机缘巧合在网上认识一位12岁小同志,从零开始系统辅导其创客开发思维和技巧。项目专栏:https://blog.csdn.net/m0_38106923/category_11097422.html 本篇博文将使用DHT11做一款温湿度检测器,检测的温湿度数据将通过LCD1602显示。... 查看详情

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

机缘巧合在网上认识一位12岁小同志,从零开始系统辅导其创客开发思维和技巧。项目专栏:https://blog.csdn.net/m0_38106923/category_11097422.html 本篇博文将使用DHT11做一款温湿度检测器,检测的温湿度数据将通过LCD1602显示。... 查看详情

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

机缘巧合在网上认识一位12岁小同志,从零开始系统辅导其创客开发思维和技巧。项目专栏:https://blog.csdn.net/m0_38106923/category_11097422.html 小时候都玩过飞行棋吧,是不是特别喜欢掷骰子,今天就要通过Arduino来做个... 查看详情

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

机缘巧合在网上认识一位12岁小同志,从零开始系统辅导其创客开发思维和技巧。项目专栏:https://blog.csdn.net/m0_38106923/category_11097422.html 小时候都玩过飞行棋吧,是不是特别喜欢掷骰子,今天就要通过Arduino来做个... 查看详情

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

机缘巧合在网上认识一位12岁小同志,从零开始系统辅导其创客开发思维和技巧。项目专栏:https://blog.csdn.net/m0_38106923/category_11097422.html 在厨房安装一个火焰报警器应该是非常管用的,如果不小心忘关煤气的话,... 查看详情

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

机缘巧合在网上认识一位12岁小同志,从零开始系统辅导其创客开发思维和技巧。项目专栏:https://blog.csdn.net/m0_38106923/category_11097422.html 在厨房安装一个火焰报警器应该是非常管用的,如果不小心忘关煤气的话,... 查看详情

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

...录1、传感器原理2、代码实践机缘巧合在网上认识一位12岁小同志,从零开始系统辅导其创客开发思维和技巧。项目专栏:https://blog.csdn.net/m0_38106923/category_11097422.html 本篇博文我们要手写代码做一款人体感应灯。要求࿱... 查看详情

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

...录1、传感器原理2、代码实践机缘巧合在网上认识一位12岁小同志,从零开始系统辅导其创客开发思维和技巧。项目专栏:https://blog.csdn.net/m0_38106923/category_11097422.html 本篇博文我们要手写代码做一款人体感应灯。要求࿱... 查看详情

和12岁小同志搞创客开发:手撕代码,点亮led灯(代码片段)

...1、Arduino编程架构2、点亮LED灯机缘巧合在网上认识一位12岁小同志,从零开始系统辅导其创客开发思维和技巧。项目专栏:https://blog.csdn.net/m0_38106923/category_11097422.html 本篇博文将在ArduinoIDE软件中手写第一个小Demo,点... 查看详情

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

机缘巧合在网上认识一位12岁小同志,从零开始系统辅导其创客开发思维和技巧。项目专栏:https://blog.csdn.net/m0_38106923/category_11097422.html 本篇博文做一个有趣的小项目,节拍电子鼓:在架子鼓上装上炫彩的LED灯... 查看详情