1.串口监视器
电脑与Arduino主控板之间使用串口通讯,主板上的RX/TX指示灯指示的就是串口通讯过程中的信息接收(Receive)与发送(Transmit)。串口监视器是Arduino编程环境内建的一个通讯显示窗口,可以通过串口监视器显示或者发送数据。本例中的“打印”和“打印(自动换行)”便是将内容输出至串口监视器中显示输出。串口通讯需要使用0、1两个数字引脚,所以程序设计中注意端口避让。在编程调试过程中,通过串口监视器监测变量数值变换,可以提高程序设计尤其是程序排错的效率。
2.角度传感器/可调电阻
角度传感器,又称旋转电位器,实际上一个阻值为10K的旋转电阻。三个引脚自左至右分别与Arduino UNO板上的正极(5V)、模拟输入端口、负极(GND)相连。处在不同角度值时,端口VCC、OUT之间电阻阻值不同,按照物理上的分压定律,触角返回的电压值也在0~5V(或3.3V,取决于电路输入电压)之间变化,Arduino UNO板的模拟端口根据返回的电压数值与输入电压之间5V的比例关系,换算成0~1023之间的具体数值,返回给UNO板。角度传感器旋转角度为0°~300°,对应返回电压值为0~5V,对应模拟信号数值为0~1023。

Grove - Rotary Angle Sensor可在0和VCC(3.3或5 VDC)之间产生模拟输出。角度范围为300度,值线性变化。电阻值为10k欧姆,非常适合Arduino使用。这也可称为“旋转角度传感器”。

3.程序

光控灯的设计与制作
常见的光传感器(又叫环境光传感器)和人眼的视杆细胞作用类似,主要用作检测环境光的的亮暗级别。光传感器已经广泛应用在手机、笔记本电脑、显示屏幕、电视等需要自动调节屏幕背光亮度的地方。公共场所或公路的智能灯,以及越来越多的汽车灯,都能在天色或环境光变暗的时候自动开启,变亮的时候自动关闭。越来越多的智能家居系统,都开始使用带光传感器的设备,来获取环境光的数据对灯光等设备进行智能控制。今天我们就来尝试利用入门套件里的光线传感器来制作一个简单的光控灯。
1.用可调电阻制作调光灯
光控灯的实现方法是系统检测到光传感器的数值处于较低值(假设是 200)时,就开启 LED 灯,如果高于200则关闭 LED 灯。
步骤1:监测光的相对强度
我们可以通过串口展示光传感器获取的光强度数值,以此获得对当前环境光强度的数据评估。程序如下图所示,将积木中默认的A0管脚,修改为A6管脚。将程序上传到入门套件,并再次在 Codecraft 里连接设备,确认设备已连接成功。
检测光强
点击“串口图表”按钮,会打开串口图表窗口,如下图所示。可以看到滚动的数字(光传感器的输出数值),尝试遮挡光传感器,可以在图表上方看到数值形成的曲线。

步骤2:制作光控灯
需要用到入门套件的:光传感器和 LED 灯模块

Grove - Light Sensor,也称为光敏电阻(LDR)。通常,当环境光强度增加时,Grove - Light Sensor的电阻将减小。

整理光控灯的功能需求如下:
• 监测到光相对强度(管脚A6)值 小于 200(可以根据自己现场环境的串口图表读数进行预估),就开启 LED灯(管脚 D4)。
• 值 大于 200 就关闭 LED灯。
以此添加程序如下图所示。

用光敏传感器控制LED灯/蜂鸣器/振动马达
声控灯
我们生活的环境充满了声音,无论是城市还是自然,声音充斥着几乎每个角落,风、雨、雷、电,动物或人类活动……无不发出各种声响。赋予机器与“听力”,会带来诸多与设备交互的可能性。今天我们将通过学习制作声控灯与噪音提醒器,来了解如何为入门套件里的声音传感器编程。
1.项目简介
日常生活中,声控灯是声音传感器比较常见的应用之一。很多没有窗户的走廊或楼梯间会用到它。其工作原理就是当声音传感器获取到的声音响度数值大于某个阈值的时候,就开启灯的开关一段时间后再自动关闭。
2.项目制作
任务涉及硬件如下图,需要用到入门套件的:声音传感器和 LED 灯模块。

Grove - Sound sensor 是一个基于LM358运放的简单麦克风,它可以用来探测环境中的声音等级。

步骤1:新建项目及初始化,添加串口图标程序
在 Codecraft 创建新的 Arduino Uno/Mega 程序,并命名项目名称为“声控灯”。向工作区拖拽初始化积木,并添加串口相关积木和“噪声(模拟)积木”,将管脚改为A2,如下图所示。

步骤2:添加声控程序
整理声控灯的功能需求如下:
• 侦测到噪声(管脚A2)值 大于 400(可以根据自己现场环境的串口图表读数进行预估),就开启 LED 灯(管脚 D4)5秒后关闭。
以此添加程序如下图所示。

步骤3:上传程序并测试
将程序上传到入门套件,测试击掌或发声看能否点亮 LED 灯5秒。如果不行或过于敏感,可以连接设备,开启串口图表,获取击掌时的读数,以修改阈值数值(目前是400)。