亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

多显示模式 LCD 闹钟:可自定义表盘与生物节律

组件与物料

td>
组件 数量 备注
Arduino UNO 1 若用自制 PCB,需 ATmega328P-DIP、16MHz 晶振、2×22pF 电容、7805 稳压、100µF/16V、3×0.1µF、1µF 电容
10 kΩ 电阻 4
470 Ω 电阻 1
Adafruit 1602 LCD (白字蓝底) 1
无源蜂鸣器 1
10 µF 电解电容 1
DS1302 RTC 模块 1
32.768 kHz 晶振 1 RTC 专用
CR2032 纽扣电池 + 座 1 PCB 版建议用 CR1220
倾斜开关 (汞开关)1 用于翻转关闭闹钟
10 kΩ 微调电位器 1 LCD 对比度调节

所需工具

软件

项目详解

作者在网上看到许多 1602 LCD 时钟实现,决定把它们整合成一个支持多种显示风格的综合时钟。新版 10 款表盘已发布,详见链接。

功能特性

面包板原型

多显示模式 LCD 闹钟:可自定义表盘与生物节律

电路简洁,DHT21 接 D9(图中未画)。烧录草图即可运行。

操作说明

三按键:SETUP、INCREMENT、DECREMENT,外加倾斜开关。

多显示模式 LCD 闹钟:可自定义表盘与生物节律

多显示模式 LCD 闹钟:可自定义表盘与生物节律

成品制作(PCB + 3D 外壳)

从面包板进阶需自制 PCB(附 Eagle 文件),采用碳粉法或商业打板。注意 LCD 用弯针排针连接 PCB,建议双面通孔板以便焊接后再装壳。

元件选型:ATmega328P-DIP + 16MHz 晶振 + 22pF×2,7805+100µF 供电,DS1302+32.768kHz 晶振,蜂鸣器经 10µF 直流隔离,电阻 1/8W 或 1/4W,汞开关 5mm 直径,背板三个 6×6mm 轻触开关(13mm 柄)。

多显示模式 LCD 闹钟:可自定义表盘与生物节律

多显示模式 LCD 闹钟:可自定义表盘与生物节律

外壳 3D 打印(0.2mm 层高,无支撑),PCB 安装孔 2.5mm 钻孔攻 M3 螺纹,用 M3×6 螺丝固定。PCB 固定孔扩至 4mm 便于对齐按键。

多显示模式 LCD 闹钟:可自定义表盘与生物节律

致谢

本项目融合多位 Maker 的成果:基础闹钟代码来自 Michalis Vasilakis;双行粗/细体字体来自 Arduino World;斜角字体来自 Arduino Forum;Trek 字体来自 Carrie Sundra;文字时钟概念来自 LAGSILVA;生物节律时钟来自 John Bradnam;天气时钟来自 ARDUinoautoMOTIVE。

更新日志

多显示模式 LCD 闹钟:可自定义表盘与生物节律

多显示模式 LCD 闹钟:可自定义表盘与生物节律

代码

DigitalClockAlarmV7.ino (C/C++)

完整代码含 8 种显示模式驱动、RTC 同步、EEPROM 存储、闹钟逻辑、DHT21 读取、生物节律计算等。关键片段:

/* 1602 LCD 闹钟 - John Bradnam */
#include <Wire.h>
#include <TimeLib.h>
#include <DS1302RTC.h>
#include <LiquidCrystal.h>
#include <EEPROM.h>
#include <dht.h>

#define LIGHT 2
#define LCD_D7 3
#define LCD_D6 4
#define LCD_D5 5
#define LCD_D4 6
#define LCD_E 7
#define LCD_RS 8
#define BTN_SET A0
#define BTN_ADJUST A1
#define BTN_ALARM A2
#define BTN_TILT A3
#define SPEAKER 11
#define DHT21 9
#define RTC_CE 10
#define RTC_IO 12
#define RTC_SCLK 13

LiquidCrystal lcd(LCD_RS, LCD_E, LCD_D4, LCD_D5, LCD_D6, LCD_D7);
DS1302RTC rtc(RTC_CE, RTC_IO, RTC_SCLK);
dht DHT;

enum STYLE { STANDARD, DUAL_THICK, DUAL_BEVEL, DUAL_TREK, DUAL_THIN, WORD, BIO, THERMO };
STYLE currentStyle = STANDARD;
// ... EEPROM 地址定义、自定义字符、字体数组 ...

void setup() {
  Serial.begin(115200);
  // 引脚模式、RTC 初始化、读取 EEPROM 闹钟/生日/风格
  // BLE 无,直接按键设置时间
  // 初始化对应风格的自定义字符
}

void loop() {
  readBtns(); getTimeDate(); getTempHum();
  if (!setupScreen) {
    lcdPrint(); if (alarmON) callAlarm();
    #ifdef BACKLIGHT_TIMEOUT
    if (backlightOn && millis() > backlightTimeout) switchBacklight(false);
    #endif
  } else {
    timeSetup(); switchBacklight(true);
  }
}
// ... 按键处理、时间读取、温湿度读取、背光控制、各风格绘制函数 ...
// 生物节律计算:基于生日天数对 23/28/33 取模,映射为柱状图高度
// 文字时钟:数字转英文单词(HUNDRED, ONE... TWENTY, THIRTY...)

完整代码请下载附件 DigitalClockAlarmV7.ino。

自定义零件与外壳

stl_files_ZuDXHCHZCl.zip

原理图与 PCB

多显示模式 LCD 闹钟:可自定义表盘与生物节律 多显示模式 LCD 闹钟:可自定义表盘与生物节律 多显示模式 LCD 闹钟:可自定义表盘与生物节律 eagle_files_ZN59zdeNf5.zip

制造工艺

  1. 树莓派 2 无头模式水浸报警器:基于 Adafruit T‑Cobbler Plus 构建
  2. Arduino Nano飞行模拟2020控制面板——LCD与CDI显示
  3. 智能动作触发闹钟:赖床不再,起床有保障
  4. 复古 Numitron 管时钟:Arduino Nano 驱动,低温可靠省电
  5. 自制 Arduino 伊斯兰祷告时间实时时钟
  6. 精准文字时钟:分钟级文字显示时间
  7. Arduino Due 驱动 3.2″ TFT 实现温度监测与实时时钟
  8. TM1637 数码管时钟:Arduino Nano 实现时间设定与闹钟
  9. Arduino UNO 驱动 1.17 英寸 TFT 屏显示图片 (SD 卡读取)
  10. Arduino 实时天气时钟:OLED 显示时间、日期与温度
  11. 基于 Arduino 的户外温度计:趋势指示、最高/最低温度记录
  12. 用 DS1302 RTC 和 Arduino UNO 制作可靠闹钟