带定时口罩杀菌灯

2020-04-251.1万
AI 快速预览详细 收起
带定时口罩杀菌灯是一个DIY项目,使用Arduino Uno、LED紫外线灯带和4位数码管,实现两分钟倒计时的口罩杀菌功能。硬件清单包括Arduino Uno、LED紫外线灯带、按键和4位数码管。项目代码通过蜂鸣器语法控制LED紫外线灯带,实现倒计时功能。这个项目适用于家庭防护场景,可以有效延长口罩的使用寿命。
疫情期间,外出归来,总是把口罩乱放,细思不妥,可经常洗会加速口罩的老化,于是想到了做一个口罩杀菌灯,防患于未然吧。

带定时口罩杀菌灯图9
杀菌灯的工作原理是,倒计时两分钟,然后停止,等待下一次主人按Reset按键重新开始。4位数码管会显示倒计时。


==============
硬件清单如下:
带定时口罩杀菌灯图1
Arduino uno
带定时口罩杀菌灯图2
LED紫外线灯带
带定时口罩杀菌灯图3
一个按键,做复位用
带定时口罩杀菌灯图4
4位数码管
带定时口罩杀菌灯图6
传感扩展,方便连线
====================
带定时口罩杀菌灯图5
项目连线图

[mw_shl_code=applescript,false]/*
* This sketch is made by gada888
* 2020-04-24
*/

#include <TM1637Display.h>

// Module connection pins (Digital Pins)
#define CLK 2
#define DIO 3
int pitches[] = {523, 587, 659, 698, 784};
int numPitches = 5;
int relayPin = 8;

// The amount of time (in milliseconds) between tests
#define TEST_DELAY   1000

TM1637Display display(CLK, DIO);

int count = 100;
uint8_t data[] = {0, 0, 0, 0};
  
void setup() {
  pinMode(relayPin, OUTPUT);
}

void loop() {
  display.setBrightness(0x0f);

  data[3] = display.encodeDigit(count/1 % 10);
  data[2] = display.encodeDigit(count/10 % 10);
  data[1] = display.encodeDigit(count/100 % 10);
  data[0] = display.encodeDigit(count/1000 % 10);
  display.setSegments(data);

  if(count <= 0) {
    count = 100;
    while(1);
  }
  else {
    count--;
  }
   int i;
   for( i=0; i<numPitches; i++){
   tone(relayPin, pitches, 20000);
   }
  delay(TEST_DELAY);
}[/mw_shl_code]项目代码
带定时口罩杀菌灯图7
代码运行通过,由于没有外部时钟模块,无论是数码管的计数和灯带的delay的时间都不够精确,好在这里只要求两者时间匹配。另外灯带的控制用的是本来
蜂鸣器的语法。不过这种非常规用法并不影响效果,

带定时口罩杀菌灯图8
效果图




创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(4)
20060606
20060606
这是紫外线灯?
gada888
gada888
作者
回复20060606
是的
20060606
20060606
哈哈哈哈哈哈哈哈哈哈哈哈哈哈
帅猫
帅猫
求你整理下线吧
gada888
gada888
作者
回复帅猫
下次会改进
hnyzcj
hnyzcj
这灯可以吗
gada888
gada888
作者
回复hnyzcj
灯效不好说,毕竟缺少商家的技术文档
- 没有更多了 -