大数跨境
0
0

【Arduino中级系列教程】项目十 夜光宝盒

【Arduino中级系列教程】项目十 夜光宝盒 DF创客社区
2021-01-26
1
导读:【点击上方「蓝字」关注DF创客社区,一起成为技术颜控】上一课:【Arduino中级系列教程】项目九 芝麻开门
【点击上方「蓝字」关注DF创客社区,一起成为技术颜控】

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

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

👆点击查看👆

夜光宝盒,听着名字是不是很好玩,实际也是这么好玩儿!我们要做的这个盒子,在白天是闭合的,一旦进入了深夜,就开始慢慢张开,灯光也会慢慢变亮,好似一颗“夜明珠”,一旦到了白天,有慢慢合上了!哈哈⋯先来大致说下原理吧!通过一个模拟环境光传感器,来检测环境光线强弱,随着亮度的不同,输出值不同。到了晚上的设定值,就转动舵机角度,LED同时慢慢变亮。

所需材料

  • 1×  模拟环境光线传感器
  • 1×  TowerPro SG50舵机
  • 1×  数字食人鱼红色LED发光模块

硬件连接

  • TowerPro SG50 连接数字引脚 9
  • 模拟环境光线传感器 连接模拟引脚 0
  • 数字食人鱼红色LED发光模块 连接数字引脚 3

输入代码

样例代码10-1:

#include<Servo.h>   
Servo myservo;
int LED = 3;                      //设置LED灯为数字引脚3
int val = 0;                      //val存储环境光传感器的值
int pos = 0;
int light =0;
void setup(){
     pinMode(LED,OUTPUT);         //LED为输出模式
     Serial.begin(9600);          //串口波特率设置为9600
     myservo.attach(9);           //舵机接到数字口9
     myservo.write(0);            //初始角度为0
}
void loop(){
     val = analogRead(0);         // 读取传感器的值
     Serial.println(val);         // 串口查看电压值的变化
     if(val<40){                   // 一旦小于设定的值,增加角度
          pos = pos +2;
          if(pos >= 90){        //转到了90°后,就保持90°
              pos = 90;              
          }
          myservo.write(pos);      //写入舵机的角度
          delay(100);
          light = map(pos,0,90,0,255);  //随角度增大,LED亮度增大
          analogWrite(LED,light);   //写入亮度值
     }else{                  
          pos = pos -2;    //减2°
          if(pos <= 0){
             pos = 0;       //减到0°为止
          }
          myservo.write(pos);      //写入舵机的角度  
          delay(100);     
          light = map(pos,0,90,0,255);//随角度减小,LED亮度减小
          analogWrite(LED,light);  //写入亮度值
     }
}

把舵机固定在盒子的连接处,灯塞在盒子里面,传感器当然是要露在外面的,需要检测环境光。安装完成后,把盒子置于暗处,看下盒子会不会自动打开。

代码部分,注释已经非常清楚了,涉及函数在前几章也都了解过了,所以就不多做说明了。

- 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