4143| 2
|
夜间好物--小汪变色夜灯 |
本帖最后由 好奇吖斌 于 2022-10-6 19:59 编辑 欢迎访问我的个人网站:www.haoqiabin.cn 更多精彩等您发掘!!! 最近的我在沉迷造灯,有了激光切割机学习了新技能,那当然要运用起来啦,以前就一直想做一个激光镭射那种小夜灯,这次终于能自己做出来了,我用的是单面磨砂亚克力+3D打印的底座做的,没错就是下面那个小汪 ![]() 我们先来看看面向入门的Grove Beginner Kit for Arduino套件长什么样吧↓ ![]() ![]() 2.采用实验板拼版的方式,入门实验的时候无需拆下,编程的时候使用上面编号的引脚即可,做项目的时候就可以拆下来 3.兼容Mixly图形化编程,可以更方便的入门开始使用,但部分模块不兼容,这部分可作为进阶代码学习 4.推荐对硬件入门,创客教育教学,新媒体艺术家,电子专业的大学生和广大对创客入门的爱好者使用。 改进后的小汪夜灯 ![]() 零件清单(电子模块基于Grove Beginner Kit for Arduino套件) ![]()
代码十分简单,首先光线传感器会检测环境亮度,如果小于设定的阈值就会执行亮灯的模式,否则就灭灯;亮灯模式是利用巡线模块检测人手靠近,程序里计数加1改变灯的模式,到了最后的那个模式计数归0,重新计数实现循环切换灯模式,里面有4个不同的模式,1.淡红,2.淡绿,3.淡蓝,4.七彩循环变色然后停在淡黄。程序用到一个RGB灯软件库:https://github.com/pjpmarques/ChainableLED/archive/v1.2.zip [mw_shl_code=c,false]#include <ChainableLED.h> #define NUM_LEDS 1 //1个RGB灯 #define LightSensor A0 //光线传感器接A0引脚 #define LineFinder 6 //巡线传感器接D6引脚 ChainableLED leds(7, 8, NUM_LEDS); //RGB灯模块接D7,D8引脚 void setup() { Serial.begin(9600); leds.init(); } int lightMode = 0; void loop() { int value = analogRead(LightSensor); Serial.println(value); if(value < 300){ if(!digitalRead(6)){ lightMode += 1; delay(1000); switch(lightMode){ case 1: leds.setColorRGB(0, 255, 30, 30);//rbg值可以自定义 Serial.println(lightMode); break; case 2: leds.setColorRGB(0, 100, 255, 10);//rbg值可以自定义 Serial.println(lightMode); break; case 3: leds.setColorRGB(0, 0, 255, 255);//rbg值可以自定义 Serial.println(lightMode); break; case 4: Serial.println(lightMode); for(float hue=0;hue<1;hue+=0.02){ leds.setColorHSB(0, hue, 1.0, 0.5); Serial.println(hue); delay(50); } for(float hue=1;hue>0;hue-=0.02){ leds.setColorHSB(0, hue, 1.0, 0.5); Serial.println(hue); delay(50); } leds.setColorRGB(0, 247, 247, 9); lightMode = 0; break; } } }else{ leds.setColorRGB(0, 0, 0, 0); } }[/mw_shl_code] 安装步骤 ![]() 1.主板安装上底座,四周拧上螺丝 ![]() 2.把尼龙六角柱安装到四周的螺丝上 ![]() 3.把RGB灯用螺丝固定到上盖板上 ![]() 4.巡线模块安装到上盖板右边,光线传感器安装到下方 ![]() 5.接线,A0接到光线传感器,D7,D8接到RGB灯,D6接到巡线模块 ![]() 6.盖板四周螺丝拧上 ![]() 7.安装上灯罩完成 制作起来简直一气呵成,grove接头的就是接线快 3D打印文件: ![]() |
© 2013-2025 Comsenz Inc. Powered by Discuz! X3.4 Licensed