葡萄美酒夜光杯###垫
葡萄美酒夜光杯,一起干了这一杯说来也是凑巧,为了下次mechbattle,我想自己设计机子,打算从建模开始吧。刚好手上还剩一块cheap,刚好还一个LED灯环,刚好有一块锂电池,于是想着设计点东西,顺便练习建模,积累经验这个智能杯垫就是一个开始:lol
功能:一杯热水放在上面,杯垫会根据温度显示不同的颜色。原理分析:利用LM35温度传感器采集外界温度信息,并将温度信息映射到LED灯上。
材料清单:
Cheapduino x 1(可以更换其他芯片如micro pro)24位RGBLED灯环 x 1LM35温度传感器 x 13.7V锂电池 x 14.2V锂电池充电板 x15V升压板 x 1开关 x 1导线若干
电路分析:原本设计的时候没有加升压的模块,可是在测试的时候发现,LED灯和LM35工作不正常,这才想到这两个模块的供电需要5V,所以添加了一块可调升压模块
程序分析:#include <Adafruit_NeoPixel.h>
#include <MsTimer2.h>//
#define PIN 9//控制LED灯环引脚
Adafruit_NeoPixel strip = Adafruit_NeoPixel(24, PIN, NEO_GRB + NEO_KHZ800);//定义一个灯环的对象,控制灯环
uint16_t r, g, b;//记录红绿蓝三种颜色目标值
uint16_t rt, gt, bt;//记录红绿蓝三种颜色当前值
//滤波
uint16_t Filter_Value;
uint16_t Value;
void setup() {
Serial.begin(9600);//设置波特率
strip.begin();
strip.show();
MsTimer2::set(20, LEDshow);
MsTimer2::start();
Filter_Value = Fliter();
rt = gt = bt = 0;
}
void loop() {
if (inspect())Filter_Value = Fliter(); //检测颜色是否达到目标值
Serial.println(Filter_Value);
tempTocolor(Filter_Value);
delay(50);
}
uint16_tGet_AD()//采集温度信息
{
return analogRead(A0);
}
//滤波处理
#define FILTER_N 40
uint16_t filter_buf;
uint16_t Fliter()
{
uint16_t filter_sum = 0;
uint16_t i;
filter_buf = Get_AD();
for (i = 0; i < FILTER_N; i++)
{
filter_buf = filter_buf;
filter_sum += filter_buf;
}
return (uint16_t)(filter_sum / FILTER_N);
}
bool inspect()//检测颜色是否达到目标值
{
if (r != rt || g != gt || b != bt)return false;
else return true;
}
void tempTocolor(uint16_t val)//将温度转换为颜色
{
if (val > 110)
{
r = 127;
b = 127;
g = 0;
}
else if (val > 80)
{
uint16_t k = map(val, 80, 110, 0, 127);
r = 255 - k;
b = k;
g = 0;
}
else if (val > 50)
{
uint16_t k = map(val, 50, 80, 0, 255);
r = k;
b = 0;
g = 255 - k;
}
else if (val > 20)
{
uint16_t k = map(val, 20, 50, 0, 255);
r = 0;
b = 255 - k;
g = k;
}
else
{
r = 0;
b = 255;
g = 0;
}
}
void LEDshow()//显示颜色
{
if (rt < r)rt++;
else if (rt > r)rt--;
if (gt < g)gt++;
else if (gt > g)gt--;
if (bt < b)bt++;
else if (bt > b)bt--;
for (uint16_t i = 0; i < strip.numPixels(); i++) {
strip.setPixelColor(i, strip.Color(rt, gt, bt));
} strip.show();
}
细节图片:
不错的创意。 makerOne重出江湖! jarvis_chan 发表于 2018-4-2 09:32
makerOne重出江湖!
:lol:lol:lol:lol:lol:lol:lol:lol hnyzcj 发表于 2018-4-2 06:12
不错的创意。
:lol:lol:lol:lol:lol 这种应用其实可以选用源代码的板子。 我的想法是在杯子盖上做:lol 安卓机器人 发表于 2018-4-3 22:26
我的想法是在杯子盖上做
哈哈哈,是哦,还能做盖子 66666666666
页:
[1]