656浏览
查看: 656|回复: 0

[ESP8266/ESP32] FireBeetle 2 ESP32-C6--数码管的“光污染”

[复制链接]
本帖最后由 派大星ym 于 2024-4-21 20:16 编辑

数码管的“光污染”


FireBeetle 2 ESP32-C6--数码管的“光污染”图2


不知道从什么时候开始友友们进入桌搭热潮,看着大家分享的桌搭像什么模拟辉光管时钟、氛围灯、手办模型,酷是真得酷但贵也是真的贵。其实有料的桌搭不一定全靠买,爆改和DIY也是一种选择,看着自己空落落的桌面和比脸还干净的钱包,买肯定是买不起了,还是自己DIY吧。一开始我只是用了一个4位数码管,实现从0-9999计数循环时间间隔为1秒,希望我单调的桌面增添一点色彩以及动态变化,当我看到数码管上的数值一点点变大,好像时间的流逝有了客观体现。可很快我发现4位数码管从零到最大数值9999大约也就2.7个小时,意思是2.7小时后它又从零开始数,这显示让我感觉不到时间的流逝。既然4位数码管不够用那就多加几位,此时我依稀记得自己还有一个吃灰的8位数码管,从零到99999999大约需要27777小时(大概3.1年)欧克就它了。

FireBeetle 2 ESP32-C6--数码管的“光污染”图1
FireBeetle 2 ESP32-C6--数码管的“光污染”图3


材料清单:





电路连接:
FireBeetle 2 ESP32-C6--数码管的“光污染”图4

ESP32 C6——数码管
VIN   -     VCC
GND  -    GND
D2     -    LATCH
D3     -    CLOCK
D6     -    DATA






程序:
  1. const int latchPin = D2;
  2. const int clockPin = D3;
  3. const int dataPin = D6;
  4. byte Tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};
  5. long times = 0;
  6. int position1,position2,position3,position4,position5,position6,position7,position8;
  7. void setup() {
  8.   pinMode(latchPin, OUTPUT);
  9.   pinMode(dataPin, OUTPUT);
  10.   pinMode(clockPin, OUTPUT);
  11.   Serial.begin(9600);
  12.   Serial.println("reset");
  13. }
  14. void loop() {
  15. times++;
  16. position1=(times/10000000) % 10;
  17. position2=(times/1000000) % 10;
  18. position3=(times/100000) % 10;
  19. position4=(times/10000) % 10;
  20. position5=(times/1000) % 10;
  21. position6=(times/100) % 10;
  22. position7=(times/10) % 10;
  23. position8=times % 10;
  24.   digitalWrite(latchPin, LOW);
  25.   shiftOut(dataPin, clockPin, MSBFIRST, Tab[position8]);
  26.   shiftOut(dataPin, clockPin, MSBFIRST, Tab[position7]);
  27.   shiftOut(dataPin, clockPin, MSBFIRST, Tab[position6]);
  28.   shiftOut(dataPin, clockPin, MSBFIRST, Tab[position5]);
  29.   shiftOut(dataPin, clockPin, MSBFIRST, Tab[position4]);
  30.   shiftOut(dataPin, clockPin, MSBFIRST, Tab[position3]);
  31.   shiftOut(dataPin, clockPin, MSBFIRST, Tab[position2]);
  32.   shiftOut(dataPin, clockPin, MSBFIRST, Tab[position1]);
  33.   digitalWrite(latchPin, HIGH);
  34. delay(1000);
  35. }
复制代码





效果:

FireBeetle 2 ESP32-C6--数码管的“光污染”图6

FireBeetle 2 ESP32-C6--数码管的“光污染”图5

FireBeetle 2 ESP32-C6--数码管的“光污染”图7






哈哈哈,也属于是临时抱佛脚了,外壳还没来得及打印


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail